123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892 |
- # Open Document Format for Office Applications (OpenDocument) Version 1.3
- # OASIS Standard, In progress
- # Relax-NG Schema
- # Source: https://tools.oasis-open.org/version-control/svn/office/
- # Copyright (c) OASIS Open 2002-2015. All Rights Reserved.
- #
- # All capitalized terms in the following text have the meanings assigned to them
- # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
- # full Policy may be found at the OASIS website.
- #
- # This document and translations of it may be copied and furnished to others, and
- # derivative works that comment on or otherwise explain it or assist in its
- # implementation may be prepared, copied, published, and distributed, in whole or
- # in part, without restriction of any kind, provided that the above copyright
- # notice and this section are included on all such copies and derivative works.
- # However, this document itself may not be modified in any way, including by
- # removing the copyright notice or references to OASIS, except as needed for the
- # purpose of developing any document or deliverable produced by an OASIS
- # Technical Committee (in which case the rules applicable to copyrights, as set
- # forth in the OASIS IPR Policy, must be followed) or as required to translate it
- # into languages other than English.
- #
- # The limited permissions granted above are perpetual and will not be revoked by
- # OASIS or its successors or assigns.
- #
- # This document and the information contained herein is provided on an "AS IS"
- # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
- # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
- # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
- # FITNESS FOR A PARTICULAR PURPOSE.
- namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
- namespace calcext =
- "urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
- namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- namespace chartooo = "http://openoffice.org/2010/chart"
- namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- namespace css3t = "http://www.w3.org/TR/css3-text/"
- namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
- namespace dc = "http://purl.org/dc/elements/1.1/"
- namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- namespace drawooo = "http://openoffice.org/2010/draw"
- namespace field =
- "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
- namespace fo =
- "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- namespace grddl = "http://www.w3.org/2003/g/data-view#"
- namespace loext =
- "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
- namespace math = "http://www.w3.org/1998/Math/MathML"
- namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- namespace officeooo = "http://openoffice.org/2009/office"
- namespace presentation =
- "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
- namespace rng = "http://relaxng.org/ns/structure/1.0"
- namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- namespace smil =
- "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
- namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- namespace svg =
- "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- namespace tableooo = "http://openoffice.org/2009/table"
- namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- namespace xforms = "http://www.w3.org/2002/xforms"
- namespace xhtml = "http://www.w3.org/1999/xhtml"
- namespace xlink = "http://www.w3.org/1999/xlink"
- include "OpenDocument-schema-v1.3.rnc" {
- office-document-common-attrs =
- attribute office:version {
- # FIXME remove this hack once we write 1.3
- "1.3" | "1.2"
- }
- & attribute grddl:transformation {
- list { anyIRI* }
- }?
- style-graphic-properties-attlist =
- attribute draw:stroke { "none" | "dash" | "solid" }?
- & attribute draw:stroke-dash { styleNameRef }?
- & attribute draw:stroke-dash-names { styleNameRefs }?
- & attribute svg:stroke-width { length }?
- & attribute svg:stroke-color { color }?
- & attribute draw:marker-start { styleNameRef }?
- & attribute draw:marker-end { styleNameRef }?
- & attribute draw:marker-start-width { length }?
- & attribute draw:marker-end-width { length }?
- & attribute draw:marker-start-center { boolean }?
- & attribute draw:marker-end-center { boolean }?
- & attribute svg:stroke-opacity {
- xsd:double { minInclusive = "0" maxInclusive = "1" }
- | zeroToHundredPercent
- }?
- & attribute draw:stroke-linejoin {
- "miter" | "round" | "bevel" | "middle" | "none"
- }?
- & attribute svg:stroke-linecap { "butt" | "square" | "round" }?
- & attribute draw:symbol-color { color }?
- & attribute text:animation {
- "none" | "scroll" | "alternate" | "slide"
- }?
- & attribute text:animation-direction {
- "left" | "right" | "up" | "down"
- }?
- & attribute text:animation-start-inside { boolean }?
- & attribute text:animation-stop-inside { boolean }?
- & attribute text:animation-repeat { nonNegativeInteger }?
- & attribute text:animation-delay { duration }?
- & attribute text:animation-steps { length }?
- & attribute draw:auto-grow-width { boolean }?
- & attribute draw:auto-grow-height { boolean }?
- & # FIXME remove this once the export bug is fixed
- attribute draw:fit-to-size {
- "true" | "false" | "all" | "shrink-to-fit"
- }?
- & attribute draw:fit-to-contour { boolean }?
- & attribute draw:textarea-vertical-align {
- "top" | "middle" | "bottom" | "justify"
- }?
- & attribute draw:textarea-horizontal-align {
- "left" | "center" | "right" | "justify"
- }?
- & attribute fo:wrap-option { "no-wrap" | "wrap" }?
- & attribute style:shrink-to-fit { boolean }?
- & attribute draw:color-mode {
- "greyscale" | "mono" | "watermark" | "standard"
- }?
- & attribute draw:color-inversion { boolean }?
- & attribute draw:luminance { signedZeroToHundredPercent }
- # https://issues.oasis-open.org/browse/OFFICE-3821
- ?
- & attribute draw:contrast { percent }?
- & attribute draw:gamma { percent }?
- & attribute draw:red { signedZeroToHundredPercent }?
- & attribute draw:green { signedZeroToHundredPercent }?
- & attribute draw:blue { signedZeroToHundredPercent }?
- & attribute draw:image-opacity { zeroToHundredPercent }?
- & attribute draw:shadow { "visible" | "hidden" }?
- & attribute draw:shadow-offset-x { length }?
- & attribute draw:shadow-offset-y { length }?
- & attribute draw:shadow-color { color }?
- & attribute draw:shadow-opacity { zeroToHundredPercent }?
- & # TODO: no proposal for loext:shadow-blur
- attribute loext:shadow-blur { length }?
- & attribute draw:start-line-spacing-horizontal { distance }?
- & attribute draw:start-line-spacing-vertical { distance }?
- & attribute draw:end-line-spacing-horizontal { distance }?
- & attribute draw:end-line-spacing-vertical { distance }?
- & attribute draw:line-distance { distance }?
- & attribute draw:guide-overhang { length }?
- & attribute draw:guide-distance { distance }?
- & attribute draw:start-guide { length }?
- & attribute draw:end-guide { length }?
- & attribute draw:placing { "below" | "above" }?
- & attribute draw:parallel { boolean }?
- & attribute draw:measure-align {
- "automatic" | "left-outside" | "inside" | "right-outside"
- }?
- & attribute draw:measure-vertical-align {
- "automatic" | "above" | "below" | "center"
- }?
- & attribute draw:unit {
- "automatic"
- | "mm"
- | "cm"
- | "m"
- | "km"
- | "pt"
- | "pc"
- | "inch"
- | "ft"
- | "mi"
- }?
- & attribute draw:show-unit { boolean }?
- & attribute draw:decimal-places { nonNegativeInteger }?
- & attribute draw:caption-type {
- "straight-line" | "angled-line" | "angled-connector-line"
- }?
- & attribute draw:caption-angle-type { "fixed" | "free" }?
- & attribute draw:caption-angle { angle }?
- & attribute draw:caption-gap { distance }?
- & attribute draw:caption-escape-direction {
- "horizontal" | "vertical" | "auto"
- }?
- & attribute draw:caption-escape { length | percent }?
- & attribute draw:caption-line-length { length }?
- & attribute draw:caption-fit-line-length { boolean }?
- & attribute dr3d:horizontal-segments { nonNegativeInteger }?
- & attribute dr3d:vertical-segments { nonNegativeInteger }?
- & attribute dr3d:edge-rounding { percent }?
- & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
- & attribute dr3d:back-scale { percent }?
- & attribute dr3d:depth { length }?
- & attribute dr3d:backface-culling { "enabled" | "disabled" }?
- & attribute dr3d:end-angle { angle }?
- & attribute dr3d:close-front { boolean }?
- & attribute dr3d:close-back { boolean }?
- & attribute dr3d:lighting-mode { "standard" | "double-sided" }?
- & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
- & attribute dr3d:normals-direction { "normal" | "inverse" }?
- & attribute dr3d:texture-generation-mode-x {
- "object" | "parallel" | "sphere"
- }?
- & attribute dr3d:texture-generation-mode-y {
- "object" | "parallel" | "sphere"
- }?
- & attribute dr3d:texture-kind {
- "luminance" | "intensity" | "color"
- }?
- & attribute dr3d:texture-filter { "enabled" | "disabled" }?
- & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
- & attribute dr3d:ambient-color { color }?
- & attribute dr3d:emissive-color { color }?
- & attribute dr3d:specular-color { color }?
- & attribute dr3d:diffuse-color { color }?
- & attribute dr3d:shininess { percent }?
- & attribute dr3d:shadow { "visible" | "hidden" }?
- & common-draw-rel-size-attlist
- & attribute fo:min-width { length | percent }?
- & attribute fo:min-height { length | percent }?
- & attribute fo:max-height { length | percent }?
- & attribute fo:max-width { length | percent }?
- & common-horizontal-margin-attlist
- & common-vertical-margin-attlist
- & common-margin-attlist
- & attribute style:print-content { boolean }?
- & attribute style:protect {
- "none"
- | list { ("content" | "position" | "size")+ }
- }?
- & attribute style:horizontal-pos {
- "left"
- | "center"
- | "right"
- | "from-left"
- | "inside"
- | "outside"
- | "from-inside"
- }?
- & attribute svg:x { coordinate }?
- & attribute style:horizontal-rel {
- "page"
- | "page-content"
- | "page-start-margin"
- | "page-end-margin"
- | "frame"
- | "frame-content"
- | "frame-start-margin"
- | "frame-end-margin"
- | "paragraph"
- | "paragraph-content"
- | "paragraph-start-margin"
- | "paragraph-end-margin"
- | "char"
- }?
- & common-vertical-pos-attlist
- & common-vertical-rel-attlist
- & common-text-anchor-attlist
- & common-border-attlist
- & common-border-line-width-attlist
- & common-padding-attlist
- & common-shadow-attlist
- & common-background-color-attlist
- & common-background-transparency-attlist
- & common-editable-attlist
- & attribute style:wrap {
- "none"
- | "left"
- | "right"
- | "parallel"
- | "dynamic"
- | "run-through"
- | "biggest"
- }?
- & attribute style:wrap-dynamic-threshold { nonNegativeLength }?
- & attribute style:number-wrapped-paragraphs {
- "no-limit" | positiveInteger
- }?
- & attribute style:wrap-contour { boolean }?
- & attribute style:wrap-contour-mode { "full" | "outside" }?
- & attribute style:run-through { "foreground" | "background" }?
- & attribute style:flow-with-text { boolean }?
- & attribute style:overflow-behavior {
- "clip" | "auto-create-new-frame"
- }?
- & attribute style:mirror {
- "none"
- | "vertical"
- | horizontal-mirror
- | list { "vertical", horizontal-mirror }
- | list { horizontal-mirror, "vertical" }
- }?
- & attribute fo:clip { "auto" | clipShape }?
- & attribute draw:wrap-influence-on-position {
- "iterative" | "once-concurrent" | "once-successive"
- }?
- & common-writing-mode-attlist
- & attribute draw:frame-display-scrollbar { boolean }?
- & attribute draw:frame-display-border { boolean }?
- & attribute draw:frame-margin-horizontal { nonNegativePixelLength }?
- & attribute draw:frame-margin-vertical { nonNegativePixelLength }?
- & attribute draw:visible-area-left { nonNegativeLength }?
- & attribute draw:visible-area-top { nonNegativeLength }?
- & attribute draw:visible-area-width { positiveLength }?
- & attribute draw:visible-area-height { positiveLength }?
- & attribute draw:draw-aspect {
- "content" | "thumbnail" | "icon" | "print-view"
- }?
- & attribute draw:ole-draw-aspect { nonNegativeInteger }?
- & # https://issues.oasis-open.org/browse/OFFICE-4047
- attribute loext:allow-overlap { boolean }?
- & # TODO: no proposal for loext:glow*
- attribute loext:glow-radius { length }?
- & attribute loext:glow-color { color }?
- & attribute loext:glow-transparency { zeroToHundredPercent }?
- & # TODO: no proposal for loext:softedge-radius
- attribute loext:softedge-radius { length }?
- draw-text =
- (text-p
- | text-list
- | # https://issues.oasis-open.org/browse/OFFICE-3761
- loext-table)*
- office-annotation-attlist &=
- attribute office:display { boolean }?
- & common-office-annotation-name-attlist?
- & attribute loext:resolved { boolean }?
- style-style-content =
- (attribute style:family { "text" },
- style-text-properties?)
- | (attribute style:family { "paragraph" },
- # TODO no proposal
- loext-graphic-properties?,
- style-paragraph-properties?,
- style-text-properties?)
- | (attribute style:family { "section" },
- style-section-properties?)
- | (attribute style:family { "ruby" },
- style-ruby-properties?)
- | (attribute style:family { "table" },
- style-table-properties?)
- | (attribute style:family { "table-column" },
- style-table-column-properties?)
- | (attribute style:family { "table-row" },
- style-table-row-properties?)
- | (attribute style:family { "table-cell" },
- # TODO no proposal
- loext-graphic-properties?,
- style-table-cell-properties?,
- style-paragraph-properties?,
- style-text-properties?)
- | (attribute style:family { "graphic" | "presentation" },
- style-graphic-properties?,
- style-paragraph-properties?,
- style-text-properties?)
- | (attribute style:family { "drawing-page" },
- style-drawing-page-properties?)
- | (attribute style:family { "chart" },
- style-chart-properties?,
- style-graphic-properties?,
- style-paragraph-properties?,
- style-text-properties?)
- table-table-template =
- element table:table-template {
- table-table-template-attlist,
- table-first-row?,
- table-last-row?,
- table-first-column?,
- table-last-column?,
- table-body,
- table-even-rows?,
- table-odd-rows?,
- table-even-columns?,
- table-odd-columns?,
- table-background?,
- # TODO no proposal
- table-first-row-even-column?,
- table-last-row-even-column?,
- table-first-row-end-column?,
- table-first-row-start-column?,
- table-last-row-end-column?,
- table-last-row-start-column?
- }
- draw-frame =
- element draw:frame {
- common-draw-shape-with-text-and-styles-attlist,
- common-draw-position-attlist,
- common-draw-rel-size-attlist,
- common-draw-caption-id-attlist,
- presentation-shape-attlist,
- draw-frame-attlist,
- (draw-text-box
- | draw-image
- | draw-object
- | draw-object-ole
- | draw-applet
- | draw-floating-frame
- | draw-plugin
- | table-table)*,
- office-event-listeners?,
- draw-glue-point*,
- draw-image-map?,
- svg-title?,
- svg-desc?,
- (draw-contour-polygon | draw-contour-path)?,
- # TODO no proposal
- loext-signatureline?,
- loext-qrcode?
- }
- common-value-and-type-attlist =
- (attribute office:value-type { "float" },
- attribute calcext:value-type { "float" }?,
- attribute office:value { double })
- | (attribute office:value-type { "percentage" },
- attribute calcext:value-type { "percentage" }?,
- attribute office:value { double })
- | (attribute office:value-type { "currency" },
- attribute calcext:value-type { "currency" }?,
- attribute office:value { double },
- attribute office:currency { \string }?)
- | (attribute office:value-type { "date" },
- attribute calcext:value-type { "date" }?,
- attribute office:date-value { dateOrDateTime })
- | (attribute office:value-type { "time" },
- attribute calcext:value-type { "time" }?,
- attribute office:time-value { duration })
- | (attribute office:value-type { "boolean" },
- attribute calcext:value-type { "boolean" }?,
- attribute office:boolean-value { boolean })
- | (attribute office:value-type { "string" },
- # OFFICE-3759
- attribute calcext:value-type { "string" | "error" }?,
- attribute office:string-value { \string }?)
- chart-axis =
- element chart:axis {
- chart-axis-attlist,
- # OFFICE-2119
- ((attribute chartooo:axis-type { "auto" },
- chartooo-date-scale?)
- | (attribute chartooo:axis-type { "date" },
- chartooo-date-scale)
- | attribute chartooo:axis-type { "text" })?,
- chart-title?,
- chart-categories?,
- chart-grid*
- }
- table-table =
- element table:table {
- table-table-attlist,
- table-title?,
- table-desc?,
- # TODO add to proposal, OFFICE-2112
- table-table-protection?,
- table-table-source?,
- office-dde-source?,
- table-scenario?,
- office-forms?,
- table-shapes?,
- table-columns-and-groups,
- table-rows-and-groups,
- table-named-expressions?,
- # TODO no proposal, this is wild guessing, OFFICE-3785
- element calcext:conditional-formats {
- element calcext:conditional-format {
- attribute calcext:target-range-address { cellRangeAddress },
- (element calcext:condition {
- attribute calcext:apply-style-name { styleNameRef },
- attribute calcext:value { \string },
- attribute calcext:base-cell-address { cellAddress }
- }+
- | element calcext:data-bar {
- attribute calcext:max-length { \string },
- attribute calcext:negative-color { color },
- attribute calcext:positive-color { color },
- attribute calcext:axis-color { color },
- attribute calcext:axis-position { "middle" }?,
- element calcext:formatting-entry {
- attribute calcext:value { \string },
- attribute calcext:type {
- "auto-minimum"
- | "auto-maximum"
- | "minimum"
- | "maximum"
- | "percent"
- | "percentile"
- | "number"
- | "formula"
- }
- },
- element calcext:formatting-entry {
- attribute calcext:value { \string },
- attribute calcext:type {
- "auto-minimum"
- | "auto-maximum"
- | "minimum"
- | "maximum"
- | "percent"
- | "percentile"
- | "number"
- | "formula"
- }
- }
- }
- | element calcext:color-scale {
- element calcext:color-scale-entry {
- attribute calcext:value { \string },
- attribute calcext:type {
- "minimum"
- | "maximum"
- | "percent"
- | "percentile"
- | "number"
- | "formula"
- },
- attribute calcext:color { color }
- },
- element calcext:color-scale-entry {
- attribute calcext:value { \string },
- attribute calcext:type {
- "minimum"
- | "maximum"
- | "percent"
- | "percentile"
- | "number"
- | "formula"
- },
- attribute calcext:color { color }
- },
- element calcext:color-scale-entry {
- attribute calcext:value { \string },
- attribute calcext:type {
- "minimum"
- | "maximum"
- | "percent"
- | "percentile"
- | "number"
- | "formula"
- },
- attribute calcext:color { color }
- }?
- })
- }+
- }?
- }
- # TODO no proposal
- draw-object =
- element draw:object {
- draw-object-attlist,
- loext-text,
- (common-draw-data-attlist | office-document | math-math)
- }
- draw-object-ole =
- element draw:object-ole {
- draw-object-ole-attlist,
- loext-text,
- (common-draw-data-attlist | office-binary-data)
- }
- # FIXME: one test exports 250 here, which is probably a bug
- fontWeight =
- "normal"
- | "bold"
- | "100"
- | "200"
- | "250"
- | "300"
- | "400"
- | "500"
- | "600"
- | "700"
- | "800"
- | "900"
- }
- # TODO no proposal
- loext-p =
- element loext:p { paragraph-attrs, paragraph-content-or-hyperlink* }
- loext-text = (loext-p | text-list | loext-table)*
- # OFFICE-2119
- chartooo-date-scale =
- element chartooo:date-scale {
- attribute chart:base-time-unit { chart-time-unit }?
- & (attribute chart:major-interval-value { positiveInteger },
- attribute chart:major-interval-unit { chart-time-unit })?
- & (attribute chart:minor-interval-value { positiveInteger },
- attribute chart:minor-interval-unit { chart-time-unit })?
- }
- chart-time-unit = "days" | "months" | "years"
- # TODO no proposal
- loext-signatureline =
- element loext:signatureline {
- attribute loext:id { \string },
- attribute loext:suggested-signer-name { \string },
- attribute loext:suggested-signer-title { \string },
- attribute loext:suggested-signer-email { \string },
- attribute loext:signing-instructions { \string },
- attribute loext:show-sign-date { boolean },
- attribute loext:can-add-comment { boolean }
- }
- loext-qrcode =
- element loext:qrcode {
- attribute office:string-value { \string },
- attribute loext:qrcode-errorcorrection {
- "low" | "medium" | "quartile" | "high"
- },
- attribute loext:qrcode-border { nonNegativeInteger }
- }
- # https://issues.oasis-open.org/browse/OFFICE-3761
- loext-table =
- element loext:table {
- table-table-attlist,
- table-title?,
- table-desc?,
- table-table-source?,
- office-dde-source?,
- table-scenario?,
- office-forms?,
- table-shapes?,
- loext-columns-and-groups,
- loext-rows-and-groups,
- table-named-expressions?
- }
- loext-rows-and-groups = (table-table-row-group | loext-rows-no-group)+
- loext-rows-no-group =
- (loext-rows, (table-table-header-rows, loext-rows?)?)
- | (table-table-header-rows, loext-rows?)
- loext-rows =
- table-table-rows | (text-soft-page-break?, loext-table-row)+
- loext-table-row =
- element loext:table-row {
- table-table-row-attlist,
- (loext-table-cell | loext-covered-table-cell)+
- }
- loext-table-cell =
- element loext:table-cell {
- table-table-cell-attlist,
- table-table-cell-attlist-extra,
- table-table-cell-content
- }
- loext-covered-table-cell =
- element loext:covered-table-cell {
- table-table-cell-attlist, table-table-cell-content
- }
- loext-columns-and-groups =
- (table-table-column-group | loext-columns-no-group)+
- loext-columns-no-group =
- (loext-columns, (table-table-header-columns, loext-columns?)?)
- | (table-table-header-columns, loext-columns?)
- loext-columns = loext-table-columns | loext-table-column+
- loext-table-columns =
- element loext:table-columns { loext-table-column+ }
- loext-table-column =
- element loext:table-column { table-table-column-attlist, empty }
- loext-graphic-properties =
- element loext:graphic-properties {
- style-graphic-properties-content-strict
- }
- table-first-row-even-column =
- element loext:first-row-even-column {
- common-table-template-attlist, empty
- }
- table-last-row-even-column =
- element loext:last-row-even-column {
- common-table-template-attlist, empty
- }
- table-first-row-end-column =
- element loext:first-row-end-column {
- common-table-template-attlist, empty
- }
- table-first-row-start-column =
- element loext:first-row-start-column {
- common-table-template-attlist, empty
- }
- table-last-row-end-column =
- element loext:last-row-end-column {
- common-table-template-attlist, empty
- }
- table-last-row-start-column =
- element loext:last-row-start-column {
- common-table-template-attlist, empty
- }
- common-draw-rel-size-attlist &=
- # OFFICE-3854
- attribute loext:rel-width-rel {
- "page"
- | [
- # TODO layout-environment ?
- ]
- "paragraph"
- }?,
- attribute loext:rel-height-rel { "page" | "paragraph" }?
- common-svg-font-face-xlink-attlist &=
- # TODO no proposal
- attribute loext:font-style { fontStyle }?,
- attribute loext:font-weight { fontWeight }?
- # TODO no proposal
- # there's no ref-attrs so add it here
- text-common-ref-content &=
- attribute loext:reference-language { language }?
- style-list-level-label-alignment-attlist &=
- # TODO no proposal
- attribute loext:label-followed-by {
- "listtab" | "space" | "nothing" | "newline"
- }?
- style-ruby-properties-attlist &=
- # TODO proposal, OFFICE-3944
- attribute loext:ruby-position {
- "above" | "below" | "inter-character"
- }?
- style-text-properties-attlist &=
- # TODO no proposal
- attribute officeooo:rsid { \string }?,
- attribute officeooo:paragraph-rsid { \string }?,
- # https://issues.oasis-open.org/browse/OFFICE-4049
- attribute loext:opacity { zeroToHundredPercent }?
- style-text-properties-attlist &=
- # OFFICE-3843
- attribute loext:padding { nonNegativeLength }?,
- attribute loext:padding-left { nonNegativeLength }?,
- attribute loext:padding-right { nonNegativeLength }?,
- attribute loext:padding-top { nonNegativeLength }?,
- attribute loext:padding-bottom { nonNegativeLength }?,
- attribute loext:border { \string }?,
- attribute loext:border-left { \string }?,
- attribute loext:border-right { \string }?,
- attribute loext:border-top { \string }?,
- attribute loext:border-bottom { \string }?,
- attribute loext:shadow { shadowType }?
- # TODO no proposal
- style-chart-properties-attlist &=
- attribute loext:try-staggering-first { boolean }?
- # TODO no proposal
- style-chart-properties-attlist &=
- attribute loext:std-weight { \string }?
- # TODO no proposal
- chart-series-attlist &= attribute loext:label-string { \string }?
- # OFFICE-1148
- style-chart-properties-attlist &=
- attribute loext:regression-max-degree { positiveInteger }?,
- attribute loext:regression-force-intercept { boolean }?,
- attribute loext:regression-intercept-value { double }?,
- attribute loext:regression-name { \string }?,
- attribute loext:regression-period { \string }?,
- attribute loext:regression-extrapolate-forward { \string }?,
- attribute loext:regression-extrapolate-backward { \string }?
- # TODO no proposal
- table-data-pilot-field-attlist &=
- attribute tableooo:display-name { \string }?
- # TODO no proposal, 9009663d
- chart-chart-attlist &= attribute loext:data-pilot-source { \string }?
- # OFFICE-2112, TODO half of this missing in proposal
- table-table-protection =
- element loext:table-protection {
- attribute loext:select-protected-cells { boolean }?,
- attribute loext:select-unprotected-cells { boolean }?,
- attribute loext:insert-columns { boolean }?,
- attribute loext:insert-rows { boolean }?,
- attribute loext:delete-columns { boolean }?,
- attribute loext:delete-rows { boolean }?
- }
- office-spreadsheet-attlist &=
- attribute loext:protection-key-digest-algorithm-2 { anyURI }?
- table-table-attlist &=
- attribute loext:protection-key-digest-algorithm-2 { anyURI }?
- # https://issues.oasis-open.org/browse/OFFICE-2317
- vertJustifyValues = "auto" | "distribute"
- common-text-justify =
- attribute css3t:text-justify { vertJustifyValues }?
- style-vertical-justify =
- attribute loext:vertical-justify { vertJustifyValues }?,
- attribute style:vertical-justify { vertJustifyValues }?
- style-paragraph-properties-attlist &=
- (common-text-justify, style-vertical-justify)?
- style-table-cell-properties-attlist &=
- (common-text-justify, style-vertical-justify)?
- number-fraction-attlist &=
- # OFFICE-3695
- # TODO no proposal, 1544a26ac9f7dd60605dd21e9cbe29d490aafdce
- attribute loext:max-numerator-digits { positiveInteger }?
- # TODO no proposal
- table-data-pilot-level-attlist &=
- attribute calcext:repeat-item-labels { boolean }?
- # TODO no proposal
- draw-enhanced-geometry-attlist &=
- attribute drawooo:sub-view-size { \string }?,
- attribute drawooo:enhanced-path { \string }?
- # TODO no proposal
- draw-custom-shape-attlist &= common-draw-rel-size-attlist
- # TODO no proposal
- style-page-layout-properties-attlist &=
- style-graphic-fill-properties-attlist
- style-header-footer-properties-attlist &=
- style-graphic-fill-properties-attlist
- # TODO no proposal
- text-index-entry-tab-stop-attrs &= attribute style:with-tab { boolean }?
- # TODO no proposal
- style-text-properties-attlist &=
- attribute loext:char-shading-value { \string }?
- # TODO no proposal
- text-bookmark-start-attlist &=
- (attribute loext:hidden { boolean },
- attribute loext:condition { \string }?)?
- # TODO no proposal; see 7a5d79f2297a43d0a854e304b0792164272edfe0
- # FIXME this is almost certainly incomplete: need to figure out which elements can have this and which named pattern can be extended with it to get exactly these elements
- form-checkbox-attlist &= attribute form:input-required { boolean }?
- # https://issues.oasis-open.org/browse/OFFICE-4030
- common-writing-mode-attlist &= attribute loext:writing-mode { "bt-lr" }?
- # https://issues.oasis-open.org/browse/OFFICE-4073
- common-vertical-rel-attlist &=
- attribute loext:vertical-rel {
- "page-content-top" | "page-content-bottom"
- }?
- # https://issues.oasis-open.org/browse/OFFICE-4105
- style-page-layout-properties-attlist &=
- attribute loext:margin-gutter { length }?
- # just a test-case for user-defined attributes, move along, nothing to see here...
- style-table-cell-properties-attlist &= attribute proName { \string }?
- # TODO no proposal
- chart-data-point-attlist &=
- attribute loext:custom-label-field { \string }?
- # TODO no proposal
- style-text-properties-attlist &=
- attribute loext:hyphenation-no-caps { boolean }?
- # TODO no proposal
- chart-data-point-attlist &=
- (attribute loext:custom-label-pos-x { double },
- attribute loext:custom-label-pos-y { double })?
- # TODO no proposal
- chart-legend-attlist &= attribute loext:overlay { boolean }?
- # https://issues.oasis-open.org/browse/OFFICE-3936
- style-chart-properties-attlist &=
- attribute loext:major-origin { double }?
- # TODO no proposal
- text-index-entry-chapter-attrs &=
- attribute loext:outline-content-visible { boolean }?
- # https://issues.oasis-open.org/browse/OFFICE-2096
- paragraph-content |=
- element field:fieldmark-start {
- attribute text:name { \string },
- attribute field:type {
- # TODO <rng:ref name="namespacedToken"/>
- \string
- },
- element field:param {
- attribute field:name { \string },
- attribute field:value { \string }
- }*
- }
- paragraph-content |= element field:fieldmark-end { empty }
- paragraph-content |=
- element field:fieldmark {
- attribute text:name { \string },
- attribute field:type {
- # TODO <rng:ref name="namespacedToken"/>
- \string
- },
- element field:param {
- attribute field:name { \string },
- attribute field:value { \string }
- }*
- }
- # TODO no proposal
- animation-element |=
- element loext:animatePhysics {
- common-anim-target-attlist,
- common-timing-attlist,
- animate-physics-attlist
- }
- animate-physics-attlist =
- # default value: 0
- attribute loext:velocity-x { double }?,
- # default value: 0
- attribute loext:velocity-y { double }?,
- # default value: 0.1
- attribute loext:bounciness {
- xsd:double { minInclusive = "0" maxInclusive = "1" }
- }?,
- # default value: 1
- attribute loext:density {
- xsd:double { minInclusive = "0" }
- }?
- # TODO no proposal
- style-chart-properties-attlist &=
- attribute loext:custom-leader-lines { boolean }?
- # TODO no proposal
- style-chart-properties-attlist &=
- attribute loext:external-data { \string }?
|