| # Open Document Format for Office Applications (OpenDocument) Version 1.2 |
| # OASIS Standard, 29 September 2011 |
| # Relax-NG Schema |
| # Source: http://docs.oasis-open.org/office/v1.2/os/ |
| # Copyright (c) OASIS Open 2002-2011. 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 chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0" |
| namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0" |
| 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 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 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 presentation = |
| "urn:oasis:names:tc:opendocument:xmlns:presentation: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 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" |
| |
| office-process-content = attribute office:process-content { boolean }? |
| office-document-attrs = attribute office:mimetype { \string } |
| office-drawing-attlist = empty |
| office-drawing-content-prelude = text-decls, table-decls |
| office-drawing-content-main = draw-page* |
| office-drawing-content-epilogue = table-functions |
| office-presentation-attlist = empty |
| office-presentation-content-prelude = |
| text-decls, table-decls, presentation-decls |
| office-presentation-content-main = draw-page* |
| office-presentation-content-epilogue = |
| presentation-settings, table-functions |
| office-spreadsheet-content-prelude = |
| table-tracked-changes?, text-decls, table-decls |
| office-spreadsheet-content-main = table-table* |
| office-spreadsheet-content-epilogue = table-functions |
| table-functions = |
| table-named-expressions?, |
| table-database-ranges?, |
| table-data-pilot-tables?, |
| table-consolidation?, |
| table-dde-links? |
| office-chart-attlist = empty |
| office-chart-content-prelude = text-decls, table-decls |
| office-chart-content-main = chart-chart |
| office-chart-content-epilogue = table-functions |
| office-image-attlist = empty |
| office-image-content-prelude = empty |
| office-image-content-main = draw-frame |
| office-image-content-epilogue = empty |
| office-settings = element office:settings { config-config-item-set+ }? |
| config-config-item-set = |
| element config:config-item-set { |
| config-config-item-set-attlist, config-items |
| } |
| config-items = |
| (config-config-item |
| | config-config-item-set |
| | config-config-item-map-named |
| | config-config-item-map-indexed)+ |
| config-config-item-set-attlist = attribute config:name { \string } |
| config-config-item = |
| element config:config-item { config-config-item-attlist, text } |
| config-config-item-attlist = |
| attribute config:name { \string } |
| & attribute config:type { |
| "boolean" |
| | "short" |
| | "int" |
| | "long" |
| | "double" |
| | "string" |
| | "datetime" |
| | "base64Binary" |
| } |
| config-config-item-map-indexed = |
| element config:config-item-map-indexed { |
| config-config-item-map-indexed-attlist, |
| config-config-item-map-entry+ |
| } |
| config-config-item-map-indexed-attlist = |
| attribute config:name { \string } |
| config-config-item-map-entry = |
| element config:config-item-map-entry { |
| config-config-item-map-entry-attlist, config-items |
| } |
| config-config-item-map-entry-attlist = |
| attribute config:name { \string }? |
| config-config-item-map-named = |
| element config:config-item-map-named { |
| config-config-item-map-named-attlist, config-config-item-map-entry+ |
| } |
| config-config-item-map-named-attlist = attribute config:name { \string } |
| |
| |
| |
| |
| |
| |
| |
| text-tracked-changes = |
| element text:tracked-changes { |
| text-tracked-changes-attr, text-changed-region* |
| }? |
| text-tracked-changes-attr = attribute text:track-changes { boolean }? |
| text-changed-region = |
| element text:changed-region { |
| text-changed-region-attr, text-changed-region-content |
| } |
| text-changed-region-attr = |
| attribute xml:id { ID }, |
| attribute text:id { NCName }? |
| text-changed-region-content = |
| element text:insertion { office-change-info } |
| | element text:deletion { office-change-info, text-content* } |
| | element text:format-change { office-change-info } |
| change-marks = |
| element text:change { change-mark-attr } |
| | element text:change-start { change-mark-attr } |
| | element text:change-end { change-mark-attr } |
| change-mark-attr = attribute text:change-id { IDREF } |
| text-tab-attr = attribute text:tab-ref { nonNegativeInteger }? |
| text-bookmark = element text:bookmark { text-bookmark-attlist, empty } |
| text-bookmark-start = |
| element text:bookmark-start { text-bookmark-start-attlist, empty } |
| text-bookmark-end = |
| element text:bookmark-end { text-bookmark-end-attlist, empty } |
| text-bookmark-attlist = |
| attribute text:name { \string } |
| & attribute xml:id { ID }? |
| text-bookmark-start-attlist = |
| attribute text:name { \string } |
| & attribute xml:id { ID }? |
| & common-in-content-meta-attlist? |
| text-bookmark-end-attlist = attribute text:name { \string } |
| text-note-class = attribute text:note-class { "footnote" | "endnote" } |
| text-date-attlist = |
| (common-field-fixed-attlist & common-field-data-style-name-attlist) |
| & attribute text:date-value { dateOrDateTime }? |
| & attribute text:date-adjust { duration }? |
| text-time-attlist = |
| (common-field-fixed-attlist & common-field-data-style-name-attlist) |
| & attribute text:time-value { timeOrDateTime }? |
| & attribute text:time-adjust { duration }? |
| text-page-number-attlist = |
| (common-field-num-format-attlist & common-field-fixed-attlist) |
| & attribute text:page-adjust { integer }? |
| & attribute text:select-page { "previous" | "current" | "next" }? |
| text-page-continuation-attlist = |
| attribute text:select-page { "previous" | "next" } |
| & attribute text:string-value { \string }? |
| text-chapter-attlist = |
| attribute text:display { |
| "name" |
| | "number" |
| | "number-and-name" |
| | "plain-number-and-name" |
| | "plain-number" |
| } |
| & attribute text:outline-level { nonNegativeInteger } |
| text-file-name-attlist = |
| attribute text:display { |
| "full" | "path" | "name" | "name-and-extension" |
| }? |
| & common-field-fixed-attlist |
| text-template-name-attlist = |
| attribute text:display { |
| "full" | "path" | "name" | "name-and-extension" | "area" | "title" |
| }? |
| text-variable-decl = |
| element text:variable-decl { |
| common-field-name-attlist, common-value-type-attlist |
| } |
| text-user-field-decl = |
| element text:user-field-decl { |
| common-field-name-attlist, |
| common-field-formula-attlist?, |
| common-value-and-type-attlist |
| } |
| text-sequence-decl = |
| element text:sequence-decl { text-sequence-decl-attlist } |
| text-sequence-decl-attlist = |
| common-field-name-attlist |
| & attribute text:display-outline-level { nonNegativeInteger } |
| & attribute text:separation-character { character }? |
| text-sequence-ref-name = attribute text:ref-name { \string }? |
| common-field-database-table = |
| common-field-database-table-attlist, common-field-database-name |
| common-field-database-name = |
| attribute text:database-name { \string }? |
| | form-connection-resource |
| common-field-database-table-attlist = |
| attribute text:table-name { \string } |
| & attribute text:table-type { "table" | "query" | "command" }? |
| text-database-display-attlist = |
| common-field-database-table |
| & common-field-data-style-name-attlist |
| & attribute text:column-name { \string } |
| text-database-next-attlist = |
| common-field-database-table |
| & attribute text:condition { \string }? |
| text-database-row-select-attlist = |
| common-field-database-table |
| & attribute text:condition { \string }? |
| & attribute text:row-number { nonNegativeInteger }? |
| text-set-page-variable-attlist = |
| attribute text:active { boolean }? |
| & attribute text:page-adjust { integer }? |
| text-get-page-variable-attlist = common-field-num-format-attlist |
| text-placeholder-attlist = |
| attribute text:placeholder-type { |
| "text" | "table" | "text-box" | "image" | "object" |
| } |
| & common-field-description-attlist |
| text-conditional-text-attlist = |
| attribute text:condition { \string } |
| & attribute text:string-value-if-true { \string } |
| & attribute text:string-value-if-false { \string } |
| & attribute text:current-value { boolean }? |
| text-hidden-text-attlist = |
| attribute text:condition { \string } |
| & attribute text:string-value { \string } |
| & attribute text:is-hidden { boolean }? |
| text-common-ref-content = |
| text |
| & attribute text:ref-name { \string }? |
| text-bookmark-ref-content = |
| attribute text:reference-format { |
| common-ref-format-values |
| | "number-no-superior" |
| | "number-all-superior" |
| | "number" |
| }? |
| text-note-ref-content = |
| attribute text:reference-format { common-ref-format-values }? |
| & text-note-class |
| text-sequence-ref-content = |
| attribute text:reference-format { |
| common-ref-format-values |
| | "category-and-value" |
| | "caption" |
| | "value" |
| }? |
| common-ref-format-values = "page" | "chapter" | "direction" | "text" |
| text-hidden-paragraph-attlist = |
| attribute text:condition { \string } |
| & attribute text:is-hidden { boolean }? |
| text-meta-field-attlist = attribute xml:id { ID } & common-field-data-style-name-attlist |
| common-value-type-attlist = attribute office:value-type { valueType } |
| common-value-and-type-attlist = |
| (attribute office:value-type { "float" }, |
| attribute office:value { double }) |
| | (attribute office:value-type { "percentage" }, |
| attribute office:value { double }) |
| | (attribute office:value-type { "currency" }, |
| attribute office:value { double }, |
| attribute office:currency { \string }?) |
| | (attribute office:value-type { "date" }, |
| attribute office:date-value { dateOrDateTime }) |
| | (attribute office:value-type { "time" }, |
| attribute office:time-value { duration }) |
| | (attribute office:value-type { "boolean" }, |
| attribute office:boolean-value { boolean }) |
| | (attribute office:value-type { "string" }, |
| attribute office:string-value { \string }?) |
| common-field-fixed-attlist = attribute text:fixed { boolean }? |
| common-field-name-attlist = attribute text:name { variableName } |
| common-field-description-attlist = |
| attribute text:description { \string }? |
| common-field-display-value-none-attlist = |
| attribute text:display { "value" | "none" }? |
| common-field-display-value-formula-none-attlist = |
| attribute text:display { "value" | "formula" | "none" }? |
| common-field-display-value-formula-attlist = |
| attribute text:display { "value" | "formula" }? |
| common-field-formula-attlist = attribute text:formula { \string }? |
| common-field-data-style-name-attlist = |
| attribute style:data-style-name { styleNameRef }? |
| common-field-num-format-attlist = common-num-format-attlist? |
| text-toc-mark-start-attrs = text-id, text-outline-level |
| text-outline-level = attribute text:outline-level { positiveInteger }? |
| text-id = attribute text:id { \string } |
| text-index-name = attribute text:index-name { \string } |
| text-alphabetical-index-mark-attrs = |
| attribute text:key1 { \string }? |
| & attribute text:key2 { \string }? |
| & attribute text:string-value-phonetic { \string }? |
| & attribute text:key1-phonetic { \string }? |
| & attribute text:key2-phonetic { \string }? |
| & attribute text:main-entry { boolean }? |
| text-bibliography-types = |
| "article" |
| | "book" |
| | "booklet" |
| | "conference" |
| | "custom1" |
| | "custom2" |
| | "custom3" |
| | "custom4" |
| | "custom5" |
| | "email" |
| | "inbook" |
| | "incollection" |
| | "inproceedings" |
| | "journal" |
| | "manual" |
| | "mastersthesis" |
| | "misc" |
| | "phdthesis" |
| | "proceedings" |
| | "techreport" |
| | "unpublished" |
| | "www" |
| cellAddress = |
| xsd:string { |
| pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+" |
| } |
| cellRangeAddress = |
| xsd:string { |
| pattern = |
| "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?" |
| } |
| | xsd:string { |
| pattern = |
| "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+" |
| } |
| | xsd:string { |
| pattern = |
| "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+" |
| } |
| cellRangeAddressList = |
| xsd:string |
| >> dc:description [ |
| 'Value is a space separated list of "cellRangeAddress" patterns' |
| ] |
| table-table-source = |
| element table:table-source { |
| table-table-source-attlist, table-linked-source-attlist, empty |
| } |
| table-table-source-attlist = |
| attribute table:mode { "copy-all" | "copy-results-only" }? |
| & attribute table:table-name { \string }? |
| table-linked-source-attlist = |
| attribute xlink:type { "simple" } |
| & attribute xlink:href { anyIRI } |
| & attribute xlink:actuate { "onRequest" }? |
| & attribute table:filter-name { \string }? |
| & attribute table:filter-options { \string }? |
| & attribute table:refresh-delay { duration }? |
| table-scenario = |
| element table:scenario { table-scenario-attlist, empty } |
| table-scenario-attlist = |
| attribute table:scenario-ranges { cellRangeAddressList } |
| & attribute table:is-active { boolean } |
| & attribute table:display-border { boolean }? |
| & attribute table:border-color { color }? |
| & attribute table:copy-back { boolean }? |
| & attribute table:copy-styles { boolean }? |
| & attribute table:copy-formulas { boolean }? |
| & attribute table:comment { \string }? |
| & attribute table:protected { boolean }? |
| table-shapes = element table:shapes { shape+ } |
| table-cell-range-source = |
| element table:cell-range-source { |
| table-table-cell-range-source-attlist, |
| table-linked-source-attlist, |
| empty |
| } |
| table-table-cell-range-source-attlist = |
| attribute table:name { \string } |
| & attribute table:last-column-spanned { positiveInteger } |
| & attribute table:last-row-spanned { positiveInteger } |
| table-detective = |
| element table:detective { table-highlighted-range*, table-operation* } |
| table-operation = |
| element table:operation { table-operation-attlist, empty } |
| table-operation-attlist = |
| attribute table:name { |
| "trace-dependents" |
| | "remove-dependents" |
| | "trace-precedents" |
| | "remove-precedents" |
| | "trace-errors" |
| } |
| & attribute table:index { nonNegativeInteger } |
| table-highlighted-range = |
| element table:highlighted-range { |
| (table-highlighted-range-attlist |
| | table-highlighted-range-attlist-invalid), |
| empty |
| } |
| table-highlighted-range-attlist = |
| attribute table:cell-range-address { cellRangeAddress }? |
| & attribute table:direction { |
| "from-another-table" | "to-another-table" | "from-same-table" |
| } |
| & attribute table:contains-error { boolean }? |
| table-highlighted-range-attlist-invalid = |
| attribute table:marked-invalid { boolean } |
| office-spreadsheet-attlist = |
| attribute table:structure-protected { boolean }?, |
| attribute table:protection-key { \string }?, |
| attribute table:protection-key-digest-algorithm { anyIRI }? |
| table-calculation-settings = |
| element table:calculation-settings { |
| table-calculation-setting-attlist, |
| table-null-date?, |
| table-iteration? |
| } |
| table-calculation-setting-attlist = |
| attribute table:case-sensitive { boolean }? |
| & attribute table:precision-as-shown { boolean }? |
| & attribute table:search-criteria-must-apply-to-whole-cell { |
| boolean |
| }? |
| & attribute table:automatic-find-labels { boolean }? |
| & attribute table:use-regular-expressions { boolean }? |
| & attribute table:use-wildcards { boolean }? |
| & attribute table:null-year { positiveInteger }? |
| table-null-date = |
| element table:null-date { |
| attribute table:value-type { "date" }?, |
| attribute table:date-value { date }?, |
| empty |
| } |
| table-iteration = |
| element table:iteration { |
| attribute table:status { "enable" | "disable" }?, |
| attribute table:steps { positiveInteger }?, |
| attribute table:maximum-difference { double }?, |
| empty |
| } |
| table-content-validations = |
| element table:content-validations { table-content-validation+ } |
| table-content-validation = |
| element table:content-validation { |
| table-validation-attlist, |
| table-help-message?, |
| (table-error-message | (table-error-macro, office-event-listeners))? |
| } |
| table-validation-attlist = |
| attribute table:name { \string } |
| & attribute table:condition { \string }? |
| & attribute table:base-cell-address { cellAddress }? |
| & attribute table:allow-empty-cell { boolean }? |
| & attribute table:display-list { |
| "none" | "unsorted" | "sort-ascending" |
| }? |
| table-help-message = |
| element table:help-message { |
| attribute table:title { \string }?, |
| attribute table:display { boolean }?, |
| text-p* |
| } |
| table-error-message = |
| element table:error-message { |
| attribute table:title { \string }?, |
| attribute table:display { boolean }?, |
| attribute table:message-type { |
| "stop" | "warning" | "information" |
| }?, |
| text-p* |
| } |
| table-error-macro = |
| element table:error-macro { |
| attribute table:execute { boolean }? |
| } |
| table-label-ranges = element table:label-ranges { table-label-range* } |
| table-label-range = |
| element table:label-range { table-label-range-attlist, empty } |
| table-label-range-attlist = |
| attribute table:label-cell-range-address { cellRangeAddress } |
| & attribute table:data-cell-range-address { cellRangeAddress } |
| & attribute table:orientation { "column" | "row" } |
| table-named-expressions = |
| element table:named-expressions { |
| (table-named-range | table-named-expression)* |
| } |
| table-named-range = |
| element table:named-range { table-named-range-attlist, empty } |
| table-named-range-attlist = |
| attribute table:name { \string }, |
| attribute table:cell-range-address { cellRangeAddress }, |
| attribute table:base-cell-address { cellAddress }?, |
| attribute table:range-usable-as { |
| "none" |
| | list { |
| ("print-range" | "filter" | "repeat-row" | "repeat-column")+ |
| } |
| }? |
| table-named-expression = |
| element table:named-expression { |
| table-named-expression-attlist, empty |
| } |
| table-named-expression-attlist = |
| attribute table:name { \string }, |
| attribute table:expression { \string }, |
| attribute table:base-cell-address { cellAddress }? |
| table-database-ranges = |
| element table:database-ranges { table-database-range* } |
| table-database-range = |
| element table:database-range { |
| table-database-range-attlist, |
| (table-database-source-sql |
| | table-database-source-table |
| | table-database-source-query)?, |
| table-filter?, |
| table-sort?, |
| table-subtotal-rules? |
| } |
| table-database-range-attlist = |
| attribute table:name { \string }? |
| & attribute table:is-selection { boolean }? |
| & attribute table:on-update-keep-styles { boolean }? |
| & attribute table:on-update-keep-size { boolean }? |
| & attribute table:has-persistent-data { boolean }? |
| & attribute table:orientation { "column" | "row" }? |
| & attribute table:contains-header { boolean }? |
| & attribute table:display-filter-buttons { boolean }? |
| & attribute table:target-range-address { cellRangeAddress } |
| & attribute table:refresh-delay { boolean }? |
| table-database-source-sql = |
| element table:database-source-sql { |
| table-database-source-sql-attlist, empty |
| } |
| table-database-source-sql-attlist = |
| attribute table:database-name { \string } |
| & attribute table:sql-statement { \string } |
| & attribute table:parse-sql-statement { boolean }? |
| table-database-source-query = |
| element table:database-source-table { |
| table-database-source-table-attlist, empty |
| } |
| table-database-source-table-attlist = |
| attribute table:database-name { \string } |
| & attribute table:database-table-name { \string } |
| table-database-source-table = |
| element table:database-source-query { |
| table-database-source-query-attlist, empty |
| } |
| table-database-source-query-attlist = |
| attribute table:database-name { \string } |
| & attribute table:query-name { \string } |
| table-sort = element table:sort { table-sort-attlist, table-sort-by+ } |
| table-sort-attlist = |
| attribute table:bind-styles-to-content { boolean }? |
| & attribute table:target-range-address { cellRangeAddress }? |
| & attribute table:case-sensitive { boolean }? |
| & attribute table:language { languageCode }? |
| & attribute table:country { countryCode }? |
| & attribute table:script { scriptCode }? |
| & attribute table:rfc-language-tag { language }? |
| & attribute table:algorithm { \string }? |
| & attribute table:embedded-number-behavior { |
| "alpha-numeric" | "integer" | "double" |
| }? |
| table-sort-by = element table:sort-by { table-sort-by-attlist, empty } |
| table-sort-by-attlist = |
| attribute table:field-number { nonNegativeInteger } |
| & attribute table:data-type { |
| "text" | "number" | "automatic" | \string |
| }? |
| & attribute table:order { "ascending" | "descending" }? |
| table-subtotal-rules = |
| element table:subtotal-rules { |
| table-subtotal-rules-attlist, |
| table-sort-groups?, |
| table-subtotal-rule* |
| } |
| table-subtotal-rules-attlist = |
| attribute table:bind-styles-to-content { boolean }? |
| & attribute table:case-sensitive { boolean }? |
| & attribute table:page-breaks-on-group-change { boolean }? |
| table-sort-groups = |
| element table:sort-groups { table-sort-groups-attlist, empty } |
| table-sort-groups-attlist = |
| attribute table:data-type { |
| "text" | "number" | "automatic" | \string |
| }? |
| & attribute table:order { "ascending" | "descending" }? |
| table-subtotal-rule = |
| element table:subtotal-rule { |
| table-subtotal-rule-attlist, table-subtotal-field* |
| } |
| table-subtotal-rule-attlist = |
| attribute table:group-by-field-number { nonNegativeInteger } |
| table-subtotal-field = |
| element table:subtotal-field { table-subtotal-field-attlist, empty } |
| table-subtotal-field-attlist = |
| attribute table:field-number { nonNegativeInteger } |
| & attribute table:function { |
| "average" |
| | "count" |
| | "countnums" |
| | "max" |
| | "min" |
| | "product" |
| | "stdev" |
| | "stdevp" |
| | "sum" |
| | "var" |
| | "varp" |
| | \string |
| } |
| table-filter = |
| element table:filter { |
| table-filter-attlist, |
| (table-filter-condition | table-filter-and | table-filter-or) |
| } |
| table-filter-attlist = |
| attribute table:target-range-address { cellRangeAddress }? |
| & attribute table:condition-source { "self" | "cell-range" }? |
| & attribute table:condition-source-range-address { cellRangeAddress }? |
| & attribute table:display-duplicates { boolean }? |
| table-filter-and = |
| element table:filter-and { |
| (table-filter-or | table-filter-condition)+ |
| } |
| table-filter-or = |
| element table:filter-or { |
| (table-filter-and | table-filter-condition)+ |
| } |
| table-filter-condition = |
| element table:filter-condition { |
| table-filter-condition-attlist, table-filter-set-item* |
| } |
| table-filter-condition-attlist = |
| attribute table:field-number { nonNegativeInteger } |
| & attribute table:value { \string | double } |
| & attribute table:operator { \string } |
| & attribute table:case-sensitive { \string }? |
| & attribute table:data-type { "text" | "number" }? |
| table-filter-set-item = |
| element table:filter-set-item { |
| attribute table:value { \string }, |
| empty |
| } |
| table-data-pilot-tables = |
| element table:data-pilot-tables { table-data-pilot-table* } |
| table-data-pilot-table = |
| element table:data-pilot-table { |
| table-data-pilot-table-attlist, |
| (table-database-source-sql |
| | table-database-source-table |
| | table-database-source-query |
| | table-source-service |
| | table-source-cell-range)?, |
| table-data-pilot-field+ |
| } |
| table-data-pilot-table-attlist = |
| attribute table:name { \string } |
| & attribute table:application-data { \string }? |
| & attribute table:grand-total { "none" | "row" | "column" | "both" }? |
| & attribute table:ignore-empty-rows { boolean }? |
| & attribute table:identify-categories { boolean }? |
| & attribute table:target-range-address { cellRangeAddress } |
| & attribute table:buttons { cellRangeAddressList }? |
| & attribute table:show-filter-button { boolean }? |
| & attribute table:drill-down-on-double-click { boolean }? |
| table-source-cell-range = |
| element table:source-cell-range { |
| table-source-cell-range-attlist, table-filter? |
| } |
| table-source-cell-range-attlist = |
| attribute table:cell-range-address { cellRangeAddress } |
| table-source-service = |
| element table:source-service { table-source-service-attlist, empty } |
| table-source-service-attlist = |
| attribute table:name { \string } |
| & attribute table:source-name { \string } |
| & attribute table:object-name { \string } |
| & attribute table:user-name { \string }? |
| & attribute table:password { \string }? |
| table-data-pilot-field = |
| element table:data-pilot-field { |
| table-data-pilot-field-attlist, |
| table-data-pilot-level?, |
| table-data-pilot-field-reference?, |
| table-data-pilot-groups? |
| } |
| table-data-pilot-field-attlist = |
| attribute table:source-field-name { \string } |
| & (attribute table:orientation { |
| "row" | "column" | "data" | "hidden" |
| } |
| | (attribute table:orientation { "page" }, |
| attribute table:selected-page { \string })) |
| & attribute table:is-data-layout-field { \string }? |
| & attribute table:function { |
| "auto" |
| | "average" |
| | "count" |
| | "countnums" |
| | "max" |
| | "min" |
| | "product" |
| | "stdev" |
| | "stdevp" |
| | "sum" |
| | "var" |
| | "varp" |
| | \string |
| }? |
| & attribute table:used-hierarchy { integer }? |
| table-data-pilot-level = |
| element table:data-pilot-level { |
| table-data-pilot-level-attlist, |
| table-data-pilot-subtotals?, |
| table-data-pilot-members?, |
| table-data-pilot-display-info?, |
| table-data-pilot-sort-info?, |
| table-data-pilot-layout-info? |
| } |
| table-data-pilot-level-attlist = attribute table:show-empty { boolean }? |
| table-data-pilot-subtotals = |
| element table:data-pilot-subtotals { table-data-pilot-subtotal* } |
| table-data-pilot-subtotal = |
| element table:data-pilot-subtotal { |
| table-data-pilot-subtotal-attlist, empty |
| } |
| table-data-pilot-subtotal-attlist = |
| attribute table:function { |
| "auto" |
| | "average" |
| | "count" |
| | "countnums" |
| | "max" |
| | "min" |
| | "product" |
| | "stdev" |
| | "stdevp" |
| | "sum" |
| | "var" |
| | "varp" |
| | \string |
| } |
| table-data-pilot-members = |
| element table:data-pilot-members { table-data-pilot-member* } |
| table-data-pilot-member = |
| element table:data-pilot-member { |
| table-data-pilot-member-attlist, empty |
| } |
| table-data-pilot-member-attlist = |
| attribute table:name { \string } |
| & attribute table:display { boolean }? |
| & attribute table:show-details { boolean }? |
| table-data-pilot-display-info = |
| element table:data-pilot-display-info { |
| table-data-pilot-display-info-attlist, empty |
| } |
| table-data-pilot-display-info-attlist = |
| attribute table:enabled { boolean } |
| & attribute table:data-field { \string } |
| & attribute table:member-count { nonNegativeInteger } |
| & attribute table:display-member-mode { "from-top" | "from-bottom" } |
| table-data-pilot-sort-info = |
| element table:data-pilot-sort-info { |
| table-data-pilot-sort-info-attlist, empty |
| } |
| table-data-pilot-sort-info-attlist = |
| ((attribute table:sort-mode { "data" }, |
| attribute table:data-field { \string }) |
| | attribute table:sort-mode { "none" | "manual" | "name" }) |
| & attribute table:order { "ascending" | "descending" } |
| table-data-pilot-layout-info = |
| element table:data-pilot-layout-info { |
| table-data-pilot-layout-info-attlist, empty |
| } |
| table-data-pilot-layout-info-attlist = |
| attribute table:layout-mode { |
| "tabular-layout" |
| | "outline-subtotals-top" |
| | "outline-subtotals-bottom" |
| } |
| & attribute table:add-empty-lines { boolean } |
| table-data-pilot-field-reference = |
| element table:data-pilot-field-reference { |
| table-data-pilot-field-reference-attlist |
| } |
| table-data-pilot-field-reference-attlist = |
| attribute table:field-name { \string } |
| & ((attribute table:member-type { "named" }, |
| attribute table:member-name { \string }) |
| | attribute table:member-type { "previous" | "next" }) |
| & attribute table:type { |
| "none" |
| | "member-difference" |
| | "member-percentage" |
| | "member-percentage-difference" |
| | "running-total" |
| | "row-percentage" |
| | "column-percentage" |
| | "total-percentage" |
| | "index" |
| } |
| table-data-pilot-groups = |
| element table:data-pilot-groups { |
| table-data-pilot-groups-attlist, table-data-pilot-group+ |
| } |
| table-data-pilot-groups-attlist = |
| attribute table:source-field-name { \string } |
| & (attribute table:date-start { dateOrDateTime | "auto" } |
| | attribute table:start { double | "auto" }) |
| & (attribute table:date-end { dateOrDateTime | "auto" } |
| | attribute table:end { double | "auto" }) |
| & attribute table:step { double } |
| & attribute table:grouped-by { |
| "seconds" |
| | "minutes" |
| | "hours" |
| | "days" |
| | "months" |
| | "quarters" |
| | "years" |
| } |
| table-data-pilot-group = |
| element table:data-pilot-group { |
| table-data-pilot-group-attlist, table-data-pilot-group-member+ |
| } |
| table-data-pilot-group-attlist = attribute table:name { \string } |
| table-data-pilot-group-member = |
| element table:data-pilot-group-member { |
| table-data-pilot-group-member-attlist |
| } |
| table-data-pilot-group-member-attlist = attribute table:name { \string } |
| table-consolidation = |
| element table:consolidation { table-consolidation-attlist, empty } |
| table-consolidation-attlist = |
| attribute table:function { |
| "average" |
| | "count" |
| | "countnums" |
| | "max" |
| | "min" |
| | "product" |
| | "stdev" |
| | "stdevp" |
| | "sum" |
| | "var" |
| | "varp" |
| | \string |
| } |
| & attribute table:source-cell-range-addresses { cellRangeAddressList } |
| & attribute table:target-cell-address { cellAddress } |
| & attribute table:use-labels { "none" | "row" | "column" | "both" }? |
| & attribute table:link-to-source-data { boolean }? |
| table-dde-links = element table:dde-links { table-dde-link+ } |
| table-tracked-changes = |
| element table:tracked-changes { |
| table-tracked-changes-attlist, |
| (table-cell-content-change |
| | table-insertion |
| | table-deletion |
| | table-movement)* |
| } |
| table-tracked-changes-attlist = |
| attribute table:track-changes { boolean }? |
| table-insertion = |
| element table:insertion { |
| table-insertion-attlist, |
| common-table-change-attlist, |
| office-change-info, |
| table-dependencies?, |
| table-deletions? |
| } |
| table-insertion-attlist = |
| attribute table:type { "row" | "column" | "table" } |
| & attribute table:position { integer } |
| & attribute table:count { positiveInteger }? |
| & attribute table:table { integer }? |
| table-dependencies = element table:dependencies { table-dependency+ } |
| table-dependency = |
| element table:dependency { |
| attribute table:id { \string }, |
| empty |
| } |
| table-deletions = |
| element table:deletions { |
| (table-cell-content-deletion | table-change-deletion)+ |
| } |
| table-cell-content-deletion = |
| element table:cell-content-deletion { |
| attribute table:id { \string }?, |
| table-cell-address?, |
| table-change-track-table-cell? |
| } |
| table-change-deletion = |
| element table:change-deletion { |
| attribute table:id { \string }?, |
| empty |
| } |
| table-deletion = |
| element table:deletion { |
| table-deletion-attlist, |
| common-table-change-attlist, |
| office-change-info, |
| table-dependencies?, |
| table-deletions?, |
| table-cut-offs? |
| } |
| table-deletion-attlist = |
| attribute table:type { "row" | "column" | "table" } |
| & attribute table:position { integer } |
| & attribute table:table { integer }? |
| & attribute table:multi-deletion-spanned { integer }? |
| table-cut-offs = |
| element table:cut-offs { |
| table-movement-cut-off+ |
| | (table-insertion-cut-off, table-movement-cut-off*) |
| } |
| table-insertion-cut-off = |
| element table:insertion-cut-off { |
| table-insertion-cut-off-attlist, empty |
| } |
| table-insertion-cut-off-attlist = |
| attribute table:id { \string } |
| & attribute table:position { integer } |
| table-movement-cut-off = |
| element table:movement-cut-off { |
| table-movement-cut-off-attlist, empty |
| } |
| table-movement-cut-off-attlist = |
| attribute table:position { integer } |
| | (attribute table:start-position { integer }, |
| attribute table:end-position { integer }) |
| table-movement = |
| element table:movement { |
| common-table-change-attlist, |
| table-source-range-address, |
| table-target-range-address, |
| office-change-info, |
| table-dependencies?, |
| table-deletions? |
| } |
| table-source-range-address = |
| element table:source-range-address { |
| common-table-range-attlist, empty |
| } |
| table-target-range-address = |
| element table:target-range-address { |
| common-table-range-attlist, empty |
| } |
| common-table-range-attlist = |
| common-table-cell-address-attlist |
| | common-table-cell-range-address-attlist |
| common-table-cell-address-attlist = |
| attribute table:column { integer }, |
| attribute table:row { integer }, |
| attribute table:table { integer } |
| common-table-cell-range-address-attlist = |
| attribute table:start-column { integer }, |
| attribute table:start-row { integer }, |
| attribute table:start-table { integer }, |
| attribute table:end-column { integer }, |
| attribute table:end-row { integer }, |
| attribute table:end-table { integer } |
| table-change-track-table-cell = |
| element table:change-track-table-cell { |
| table-change-track-table-cell-attlist, text-p* |
| } |
| table-change-track-table-cell-attlist = |
| attribute table:cell-address { cellAddress }? |
| & attribute table:matrix-covered { boolean }? |
| & attribute table:formula { \string }? |
| & attribute table:number-matrix-columns-spanned { positiveInteger }? |
| & attribute table:number-matrix-rows-spanned { positiveInteger }? |
| & common-value-and-type-attlist? |
| table-cell-content-change = |
| element table:cell-content-change { |
| common-table-change-attlist, |
| table-cell-address, |
| office-change-info, |
| table-dependencies?, |
| table-deletions?, |
| table-previous |
| } |
| table-cell-address = |
| element table:cell-address { |
| common-table-cell-address-attlist, empty |
| } |
| table-previous = |
| element table:previous { |
| attribute table:id { \string }?, |
| table-change-track-table-cell |
| } |
| common-table-change-attlist = |
| attribute table:id { \string } |
| & attribute table:acceptance-state { |
| "accepted" | "rejected" | "pending" |
| }? |
| & attribute table:rejecting-change-id { \string }? |
| style-handout-master = |
| element style:handout-master { |
| common-presentation-header-footer-attlist, |
| style-handout-master-attlist, |
| shape* |
| } |
| style-handout-master-attlist = |
| attribute presentation:presentation-page-layout-name { styleNameRef }? |
| & attribute style:page-layout-name { styleNameRef } |
| & attribute draw:style-name { styleNameRef }? |
| draw-layer-set = element draw:layer-set { draw-layer* } |
| draw-layer = |
| element draw:layer { draw-layer-attlist, svg-title?, svg-desc? } |
| draw-layer-attlist = |
| attribute draw:name { \string } |
| & attribute draw:protected { boolean }? |
| & attribute draw:display { "always" | "screen" | "printer" | "none" }? |
| draw-page = |
| element draw:page { |
| common-presentation-header-footer-attlist, |
| draw-page-attlist, |
| svg-title?, |
| svg-desc?, |
| draw-layer-set?, |
| office-forms?, |
| shape*, |
| (presentation-animations | animation-element)?, |
| presentation-notes? |
| } |
| draw-page-attlist = |
| attribute draw:name { \string }? |
| & attribute draw:style-name { styleNameRef }? |
| & attribute draw:master-page-name { styleNameRef } |
| & attribute presentation:presentation-page-layout-name { |
| styleNameRef |
| }? |
| & (attribute xml:id { ID }, |
| attribute draw:id { NCName }?)? |
| & attribute draw:nav-order { IDREFS }? |
| common-presentation-header-footer-attlist = |
| attribute presentation:use-header-name { \string }? |
| & attribute presentation:use-footer-name { \string }? |
| & attribute presentation:use-date-time-name { \string }? |
| shape = shape-instance | draw-a |
| shape-instance = |
| draw-rect |
| | draw-line |
| | draw-polyline |
| | draw-polygon |
| | draw-regular-polygon |
| | draw-path |
| | draw-circle |
| | draw-ellipse |
| | draw-g |
| | draw-page-thumbnail |
| | draw-frame |
| | draw-measure |
| | draw-caption |
| | draw-connector |
| | draw-control |
| | dr3d-scene |
| | draw-custom-shape |
| draw-rect = |
| element draw:rect { |
| draw-rect-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-rect-attlist = |
| attribute draw:corner-radius { nonNegativeLength }? |
| | (attribute svg:rx { nonNegativeLength }?, |
| attribute svg:ry { nonNegativeLength }?) |
| draw-line = |
| element draw:line { |
| draw-line-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-line-attlist = |
| attribute svg:x1 { coordinate } |
| & attribute svg:y1 { coordinate } |
| & attribute svg:x2 { coordinate } |
| & attribute svg:y2 { coordinate } |
| draw-polyline = |
| element draw:polyline { |
| common-draw-points-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| common-draw-points-attlist = attribute draw:points { points } |
| draw-polygon = |
| element draw:polygon { |
| common-draw-points-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-regular-polygon = |
| element draw:regular-polygon { |
| draw-regular-polygon-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-regular-polygon-attlist = |
| (attribute draw:concave { "false" } |
| | (attribute draw:concave { "true" }, |
| draw-regular-polygon-sharpness-attlist)) |
| & attribute draw:corners { positiveInteger } |
| draw-regular-polygon-sharpness-attlist = |
| attribute draw:sharpness { percent } |
| draw-path = |
| element draw:path { |
| common-draw-path-data-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| common-draw-path-data-attlist = attribute svg:d { pathData } |
| draw-circle = |
| element draw:circle { |
| ((draw-circle-attlist, common-draw-circle-ellipse-pos-attlist) |
| | (common-draw-position-attlist, common-draw-size-attlist)), |
| common-draw-circle-ellipse-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| common-draw-circle-ellipse-pos-attlist = |
| attribute svg:cx { coordinate }, |
| attribute svg:cy { coordinate } |
| draw-circle-attlist = attribute svg:r { length } |
| common-draw-circle-ellipse-attlist = |
| attribute draw:kind { "full" | "section" | "cut" | "arc" }? |
| & attribute draw:start-angle { angle }? |
| & attribute draw:end-angle { angle }? |
| draw-ellipse = |
| element draw:ellipse { |
| ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist) |
| | (common-draw-position-attlist, common-draw-size-attlist)), |
| common-draw-circle-ellipse-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-ellipse-attlist = |
| attribute svg:rx { length }, |
| attribute svg:ry { length } |
| draw-connector = |
| element draw:connector { |
| draw-connector-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| common-draw-viewbox-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-connector-attlist = |
| attribute draw:type { "standard" | "lines" | "line" | "curve" }? |
| & (attribute svg:x1 { coordinate }, |
| attribute svg:y1 { coordinate })? |
| & attribute draw:start-shape { IDREF }? |
| & attribute draw:start-glue-point { nonNegativeInteger }? |
| & (attribute svg:x2 { coordinate }, |
| attribute svg:y2 { coordinate })? |
| & attribute draw:end-shape { IDREF }? |
| & attribute draw:end-glue-point { nonNegativeInteger }? |
| & attribute draw:line-skew { |
| list { length, (length, length?)? } |
| }? |
| & attribute svg:d { pathData }? |
| draw-caption = |
| element draw:caption { |
| draw-caption-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-caption-attlist = |
| (attribute draw:caption-point-x { coordinate }, |
| attribute draw:caption-point-y { coordinate })? |
| & attribute draw:corner-radius { nonNegativeLength }? |
| draw-measure = |
| element draw:measure { |
| draw-measure-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text |
| } |
| draw-measure-attlist = |
| attribute svg:x1 { coordinate } |
| & attribute svg:y1 { coordinate } |
| & attribute svg:x2 { coordinate } |
| & attribute svg:y2 { coordinate } |
| draw-control = |
| element draw:control { |
| draw-control-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| draw-glue-point* |
| } |
| draw-control-attlist = attribute draw:control { IDREF } |
| draw-page-thumbnail = |
| element draw:page-thumbnail { |
| draw-page-thumbnail-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| presentation-shape-attlist, |
| common-draw-shape-with-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc? |
| } |
| draw-page-thumbnail-attlist = |
| attribute draw:page-number { positiveInteger }? |
| draw-g = |
| element draw:g { |
| draw-g-attlist, |
| common-draw-z-index-attlist, |
| common-draw-name-attlist, |
| common-draw-id-attlist, |
| common-draw-style-name-attlist, |
| common-text-spreadsheet-shape-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| shape* |
| } |
| draw-g-attlist = attribute svg:y { coordinate }? |
| common-draw-name-attlist = attribute draw:name { \string }? |
| common-draw-caption-id-attlist = attribute draw:caption-id { IDREF }? |
| common-draw-position-attlist = |
| attribute svg:x { coordinate }?, |
| attribute svg:y { coordinate }? |
| common-draw-size-attlist = |
| attribute svg:width { length }?, |
| attribute svg:height { length }? |
| common-draw-transform-attlist = attribute draw:transform { \string }? |
| common-draw-viewbox-attlist = |
| attribute svg:viewBox { |
| list { integer, integer, integer, integer } |
| } |
| common-draw-style-name-attlist = |
| (attribute draw:style-name { styleNameRef }?, |
| attribute draw:class-names { styleNameRefs }?) |
| | (attribute presentation:style-name { styleNameRef }?, |
| attribute presentation:class-names { styleNameRefs }?) |
| common-draw-text-style-name-attlist = |
| attribute draw:text-style-name { styleNameRef }? |
| common-draw-layer-name-attlist = attribute draw:layer { \string }? |
| common-draw-id-attlist = |
| (attribute xml:id { ID }, |
| attribute draw:id { NCName }?)? |
| common-draw-z-index-attlist = |
| attribute draw:z-index { nonNegativeInteger }? |
| common-text-spreadsheet-shape-attlist = |
| attribute table:end-cell-address { cellAddress }? |
| & attribute table:end-x { coordinate }? |
| & attribute table:end-y { coordinate }? |
| & attribute table:table-background { boolean }? |
| & common-text-anchor-attlist |
| common-text-anchor-attlist = |
| attribute text:anchor-type { |
| "page" | "frame" | "paragraph" | "char" | "as-char" |
| }? |
| & attribute text:anchor-page-number { positiveInteger }? |
| draw-text = (text-p | text-list)* |
| common-draw-shape-with-styles-attlist = |
| common-draw-z-index-attlist, |
| common-draw-id-attlist, |
| common-draw-layer-name-attlist, |
| common-draw-style-name-attlist, |
| common-draw-transform-attlist, |
| common-draw-name-attlist, |
| common-text-spreadsheet-shape-attlist |
| common-draw-shape-with-text-and-styles-attlist = |
| common-draw-shape-with-styles-attlist, |
| common-draw-text-style-name-attlist |
| draw-glue-point = |
| element draw:glue-point { draw-glue-point-attlist, empty } |
| draw-glue-point-attlist = |
| attribute draw:id { nonNegativeInteger } |
| & attribute svg:x { distance | percent } |
| & attribute svg:y { distance | percent } |
| & attribute draw:align { |
| "top-left" |
| | "top" |
| | "top-right" |
| | "left" |
| | "center" |
| | "right" |
| | "bottom-left" |
| | "bottom-right" |
| }? |
| & attribute draw:escape-direction { |
| "auto" |
| | "left" |
| | "right" |
| | "up" |
| | "down" |
| | "horizontal" |
| | "vertical" |
| } |
| svg-title = element svg:title { text } |
| svg-desc = element svg:desc { text } |
| 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)? |
| } |
| common-draw-rel-size-attlist = |
| common-draw-size-attlist, |
| attribute style:rel-width { percent | "scale" | "scale-min" }?, |
| attribute style:rel-height { percent | "scale" | "scale-min" }? |
| draw-frame-attlist = attribute draw:copy-of { \string }? |
| draw-text-box = |
| element draw:text-box { draw-text-box-attlist, text-content* } |
| draw-text-box-attlist = |
| attribute draw:chain-next-name { \string }? |
| & attribute draw:corner-radius { nonNegativeLength }? |
| & attribute fo:min-height { length | percent }? |
| & attribute fo:min-width { length | percent }? |
| & attribute fo:max-height { length | percent }? |
| & attribute fo:max-width { length | percent }? |
| & (attribute xml:id { ID }, |
| attribute text:id { NCName }?)? |
| draw-image = |
| element draw:image { |
| draw-image-attlist, |
| (common-draw-data-attlist | office-binary-data), |
| draw-text |
| } |
| common-draw-data-attlist = |
| attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:show { "embed" }?, |
| attribute xlink:actuate { "onLoad" }? |
| office-binary-data = element office:binary-data { base64Binary } |
| draw-image-attlist = |
| attribute draw:filter-name { \string }? |
| & attribute xml:id { ID }? |
| draw-object = |
| element draw:object { |
| draw-object-attlist, |
| (common-draw-data-attlist | office-document | math-math) |
| } |
| draw-object-ole = |
| element draw:object-ole { |
| draw-object-ole-attlist, |
| (common-draw-data-attlist | office-binary-data) |
| } |
| draw-object-attlist = |
| attribute draw:notify-on-update-of-ranges { |
| cellRangeAddressList | \string |
| }? |
| & attribute xml:id { ID }? |
| draw-object-ole-attlist = |
| attribute draw:class-id { \string }? |
| & attribute xml:id { ID }? |
| draw-applet = |
| element draw:applet { |
| draw-applet-attlist, common-draw-data-attlist?, draw-param* |
| } |
| draw-applet-attlist = |
| attribute draw:code { \string }? |
| & attribute draw:object { \string }? |
| & attribute draw:archive { \string }? |
| & attribute draw:may-script { boolean }? |
| & attribute xml:id { ID }? |
| draw-plugin = |
| element draw:plugin { |
| draw-plugin-attlist, common-draw-data-attlist, draw-param* |
| } |
| draw-plugin-attlist = |
| attribute draw:mime-type { \string }? |
| & attribute xml:id { ID }? |
| draw-param = element draw:param { draw-param-attlist, empty } |
| draw-param-attlist = |
| attribute draw:name { \string }? |
| & attribute draw:value { \string }? |
| draw-floating-frame = |
| element draw:floating-frame { |
| draw-floating-frame-attlist, common-draw-data-attlist |
| } |
| draw-floating-frame-attlist = |
| attribute draw:frame-name { \string }? |
| & attribute xml:id { ID }? |
| draw-contour-polygon = |
| element draw:contour-polygon { |
| common-contour-attlist, |
| common-draw-size-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-points-attlist, |
| empty |
| } |
| draw-contour-path = |
| element draw:contour-path { |
| common-contour-attlist, |
| common-draw-size-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-path-data-attlist, |
| empty |
| } |
| common-contour-attlist = attribute draw:recreate-on-edit { boolean } |
| draw-a = element draw:a { draw-a-attlist, shape-instance } |
| draw-a-attlist = |
| attribute xlink:type { "simple" } |
| & attribute xlink:href { anyIRI } |
| & attribute xlink:actuate { "onRequest" }? |
| & attribute office:target-frame-name { targetFrameName }? |
| & attribute xlink:show { "new" | "replace" }? |
| & attribute office:name { \string }? |
| & attribute office:title { \string }? |
| & attribute office:server-map { boolean }? |
| & attribute xml:id { ID }? |
| draw-image-map = |
| element draw:image-map { |
| (draw-area-rectangle | draw-area-circle | draw-area-polygon)* |
| } |
| draw-area-rectangle = |
| element draw:area-rectangle { |
| common-draw-area-attlist, |
| attribute svg:x { coordinate }, |
| attribute svg:y { coordinate }, |
| attribute svg:width { length }, |
| attribute svg:height { length }, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners? |
| } |
| draw-area-circle = |
| element draw:area-circle { |
| common-draw-area-attlist, |
| attribute svg:cx { coordinate }, |
| attribute svg:cy { coordinate }, |
| attribute svg:r { length }, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners? |
| } |
| draw-area-polygon = |
| element draw:area-polygon { |
| common-draw-area-attlist, |
| attribute svg:x { coordinate }, |
| attribute svg:y { coordinate }, |
| attribute svg:width { length }, |
| attribute svg:height { length }, |
| common-draw-viewbox-attlist, |
| common-draw-points-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners? |
| } |
| common-draw-area-attlist = |
| (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute office:target-frame-name { targetFrameName }?, |
| attribute xlink:show { "new" | "replace" }?)? |
| & attribute office:name { \string }? |
| & attribute draw:nohref { "nohref" }? |
| dr3d-scene = |
| element dr3d:scene { |
| dr3d-scene-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-style-name-attlist, |
| common-draw-z-index-attlist, |
| common-draw-id-attlist, |
| common-draw-layer-name-attlist, |
| common-text-spreadsheet-shape-attlist, |
| common-dr3d-transform-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| dr3d-light*, |
| shapes3d*, |
| draw-glue-point* |
| } |
| shapes3d = |
| dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cube |
| dr3d-scene-attlist = |
| attribute dr3d:vrp { vector3D }? |
| & attribute dr3d:vpn { vector3D }? |
| & attribute dr3d:vup { vector3D }? |
| & attribute dr3d:projection { "parallel" | "perspective" }? |
| & attribute dr3d:distance { length }? |
| & attribute dr3d:focal-length { length }? |
| & attribute dr3d:shadow-slant { angle }? |
| & attribute dr3d:shade-mode { |
| "flat" | "phong" | "gouraud" | "draft" |
| }? |
| & attribute dr3d:ambient-color { color }? |
| & attribute dr3d:lighting-mode { boolean }? |
| common-dr3d-transform-attlist = attribute dr3d:transform { \string }? |
| dr3d-light = element dr3d:light { dr3d-light-attlist, empty } |
| dr3d-light-attlist = |
| attribute dr3d:diffuse-color { color }? |
| & attribute dr3d:direction { vector3D } |
| & attribute dr3d:enabled { boolean }? |
| & attribute dr3d:specular { boolean }? |
| dr3d-cube = |
| element dr3d:cube { |
| dr3d-cube-attlist, |
| common-draw-z-index-attlist, |
| common-draw-id-attlist, |
| common-draw-layer-name-attlist, |
| common-draw-style-name-attlist, |
| common-dr3d-transform-attlist, |
| empty |
| } |
| dr3d-cube-attlist = |
| attribute dr3d:min-edge { vector3D }?, |
| attribute dr3d:max-edge { vector3D }? |
| dr3d-sphere = |
| element dr3d:sphere { |
| dr3d-sphere-attlist, |
| common-draw-z-index-attlist, |
| common-draw-id-attlist, |
| common-draw-layer-name-attlist, |
| common-draw-style-name-attlist, |
| common-dr3d-transform-attlist, |
| empty |
| } |
| dr3d-sphere-attlist = |
| attribute dr3d:center { vector3D }? |
| & attribute dr3d:size { vector3D }? |
| dr3d-extrude = |
| element dr3d:extrude { |
| common-draw-path-data-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-id-attlist, |
| common-draw-z-index-attlist, |
| common-draw-layer-name-attlist, |
| common-draw-style-name-attlist, |
| common-dr3d-transform-attlist, |
| empty |
| } |
| dr3d-rotate = |
| element dr3d:rotate { |
| common-draw-viewbox-attlist, |
| common-draw-path-data-attlist, |
| common-draw-z-index-attlist, |
| common-draw-id-attlist, |
| common-draw-layer-name-attlist, |
| common-draw-style-name-attlist, |
| common-dr3d-transform-attlist, |
| empty |
| } |
| draw-custom-shape = |
| element draw:custom-shape { |
| draw-custom-shape-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| common-draw-caption-id-attlist, |
| svg-title?, |
| svg-desc?, |
| office-event-listeners?, |
| draw-glue-point*, |
| draw-text, |
| draw-enhanced-geometry? |
| } |
| draw-custom-shape-attlist = |
| attribute draw:engine { namespacedToken }? |
| & attribute draw:data { \string }? |
| draw-enhanced-geometry = |
| element draw:enhanced-geometry { |
| draw-enhanced-geometry-attlist, draw-equation*, draw-handle* |
| } |
| draw-enhanced-geometry-attlist = |
| attribute draw:type { custom-shape-type }? |
| & attribute svg:viewBox { |
| list { integer, integer, integer, integer } |
| }? |
| & attribute draw:mirror-vertical { boolean }? |
| & attribute draw:mirror-horizontal { boolean }? |
| & attribute draw:text-rotate-angle { angle }? |
| & attribute draw:extrusion-allowed { boolean }? |
| & attribute draw:text-path-allowed { boolean }? |
| & attribute draw:concentric-gradient-fill-allowed { boolean }? |
| & attribute draw:extrusion { boolean }? |
| & attribute draw:extrusion-brightness { zeroToHundredPercent }? |
| & attribute draw:extrusion-depth { |
| list { length, double } |
| }? |
| & attribute draw:extrusion-diffusion { percent }? |
| & attribute draw:extrusion-number-of-line-segments { integer }? |
| & attribute draw:extrusion-light-face { boolean }? |
| & attribute draw:extrusion-first-light-harsh { boolean }? |
| & attribute draw:extrusion-second-light-harsh { boolean }? |
| & attribute draw:extrusion-first-light-level { zeroToHundredPercent }? |
| & attribute draw:extrusion-second-light-level { |
| zeroToHundredPercent |
| }? |
| & attribute draw:extrusion-first-light-direction { vector3D }? |
| & attribute draw:extrusion-second-light-direction { vector3D }? |
| & attribute draw:extrusion-metal { boolean }? |
| & attribute dr3d:shade-mode { |
| "flat" | "phong" | "gouraud" | "draft" |
| }? |
| & attribute draw:extrusion-rotation-angle { |
| list { angle, angle } |
| }? |
| & attribute draw:extrusion-rotation-center { vector3D }? |
| & attribute draw:extrusion-shininess { zeroToHundredPercent }? |
| & attribute draw:extrusion-skew { |
| list { double, angle } |
| }? |
| & attribute draw:extrusion-specularity { zeroToHundredPercent }? |
| & attribute dr3d:projection { "parallel" | "perspective" }? |
| & attribute draw:extrusion-viewpoint { point3D }? |
| & attribute draw:extrusion-origin { |
| list { extrusionOrigin, extrusionOrigin } |
| }? |
| & attribute draw:extrusion-color { boolean }? |
| & attribute draw:enhanced-path { \string }? |
| & attribute draw:path-stretchpoint-x { double }? |
| & attribute draw:path-stretchpoint-y { double }? |
| & attribute draw:text-areas { \string }? |
| & attribute draw:glue-points { \string }? |
| & attribute draw:glue-point-type { |
| "none" | "segments" | "rectangle" |
| }? |
| & attribute draw:glue-point-leaving-directions { \string }? |
| & attribute draw:text-path { boolean }? |
| & attribute draw:text-path-mode { "normal" | "path" | "shape" }? |
| & attribute draw:text-path-scale { "path" | "shape" }? |
| & attribute draw:text-path-same-letter-heights { boolean }? |
| & attribute draw:modifiers { \string }? |
| custom-shape-type = "non-primitive" | \string |
| point3D = |
| xsd:string { |
| pattern = |
| "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)" |
| } |
| extrusionOrigin = |
| xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" } |
| draw-equation = element draw:equation { draw-equation-attlist, empty } |
| draw-equation-attlist = |
| attribute draw:name { \string }? |
| & attribute draw:formula { \string }? |
| draw-handle = element draw:handle { draw-handle-attlist, empty } |
| draw-handle-attlist = |
| attribute draw:handle-mirror-vertical { boolean }? |
| & attribute draw:handle-mirror-horizontal { boolean }? |
| & attribute draw:handle-switched { boolean }? |
| & attribute draw:handle-position { \string } |
| & attribute draw:handle-range-x-minimum { \string }? |
| & attribute draw:handle-range-x-maximum { \string }? |
| & attribute draw:handle-range-y-minimum { \string }? |
| & attribute draw:handle-range-y-maximum { \string }? |
| & attribute draw:handle-polar { \string }? |
| & attribute draw:handle-radius-range-minimum { \string }? |
| & attribute draw:handle-radius-range-maximum { \string }? |
| presentation-shape-attlist = |
| attribute presentation:class { presentation-classes }? |
| & attribute presentation:placeholder { boolean }? |
| & attribute presentation:user-transformed { boolean }? |
| presentation-classes = |
| "title" |
| | "outline" |
| | "subtitle" |
| | "text" |
| | "graphic" |
| | "object" |
| | "chart" |
| | "table" |
| | "orgchart" |
| | "page" |
| | "notes" |
| | "handout" |
| | "header" |
| | "footer" |
| | "date-time" |
| | "page-number" |
| presentation-animations = |
| element presentation:animations { |
| (presentation-animation-elements | presentation-animation-group)* |
| } |
| presentation-animation-elements = |
| presentation-show-shape |
| | presentation-show-text |
| | presentation-hide-shape |
| | presentation-hide-text |
| | presentation-dim |
| | presentation-play |
| presentation-sound = |
| element presentation:sound { |
| presentation-sound-attlist, |
| attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:actuate { "onRequest" }?, |
| attribute xlink:show { "new" | "replace" }?, |
| empty |
| } |
| presentation-sound-attlist = |
| attribute presentation:play-full { boolean }? |
| & attribute xml:id { ID }? |
| presentation-show-shape = |
| element presentation:show-shape { |
| common-presentation-effect-attlist, presentation-sound? |
| } |
| common-presentation-effect-attlist = |
| attribute draw:shape-id { IDREF } |
| & attribute presentation:effect { presentationEffects }? |
| & attribute presentation:direction { presentationEffectDirections }? |
| & attribute presentation:speed { presentationSpeeds }? |
| & attribute presentation:delay { duration }? |
| & attribute presentation:start-scale { percent }? |
| & attribute presentation:path-id { \string }? |
| presentationEffects = |
| "none" |
| | "fade" |
| | "move" |
| | "stripes" |
| | "open" |
| | "close" |
| | "dissolve" |
| | "wavyline" |
| | "random" |
| | "lines" |
| | "laser" |
| | "appear" |
| | "hide" |
| | "move-short" |
| | "checkerboard" |
| | "rotate" |
| | "stretch" |
| presentationEffectDirections = |
| "none" |
| | "from-left" |
| | "from-top" |
| | "from-right" |
| | "from-bottom" |
| | "from-center" |
| | "from-upper-left" |
| | "from-upper-right" |
| | "from-lower-left" |
| | "from-lower-right" |
| | "to-left" |
| | "to-top" |
| | "to-right" |
| | "to-bottom" |
| | "to-upper-left" |
| | "to-upper-right" |
| | "to-lower-right" |
| | "to-lower-left" |
| | "path" |
| | "spiral-inward-left" |
| | "spiral-inward-right" |
| | "spiral-outward-left" |
| | "spiral-outward-right" |
| | "vertical" |
| | "horizontal" |
| | "to-center" |
| | "clockwise" |
| | "counter-clockwise" |
| presentationSpeeds = "slow" | "medium" | "fast" |
| presentation-show-text = |
| element presentation:show-text { |
| common-presentation-effect-attlist, presentation-sound? |
| } |
| presentation-hide-shape = |
| element presentation:hide-shape { |
| common-presentation-effect-attlist, presentation-sound? |
| } |
| presentation-hide-text = |
| element presentation:hide-text { |
| common-presentation-effect-attlist, presentation-sound? |
| } |
| presentation-dim = |
| element presentation:dim { |
| presentation-dim-attlist, presentation-sound? |
| } |
| presentation-dim-attlist = |
| attribute draw:shape-id { IDREF } |
| & attribute draw:color { color } |
| presentation-play = |
| element presentation:play { presentation-play-attlist, empty } |
| presentation-play-attlist = |
| attribute draw:shape-id { IDREF }, |
| attribute presentation:speed { presentationSpeeds }? |
| presentation-animation-group = |
| element presentation:animation-group { |
| presentation-animation-elements* |
| } |
| common-anim-attlist = |
| attribute presentation:node-type { |
| "default" |
| | "on-click" |
| | "with-previous" |
| | "after-previous" |
| | "timing-root" |
| | "main-sequence" |
| | "interactive-sequence" |
| }? |
| & attribute presentation:preset-id { \string }? |
| & attribute presentation:preset-sub-type { \string }? |
| & attribute presentation:preset-class { |
| "custom" |
| | "entrance" |
| | "exit" |
| | "emphasis" |
| | "motion-path" |
| | "ole-action" |
| | "media-call" |
| }? |
| & attribute presentation:master-element { IDREF }? |
| & attribute presentation:group-id { \string }? |
| & (attribute xml:id { ID }, |
| attribute anim:id { NCName }?)? |
| presentation-event-listener = |
| element presentation:event-listener { |
| presentation-event-listener-attlist, presentation-sound? |
| } |
| presentation-event-listener-attlist = |
| attribute script:event-name { \string } |
| & attribute presentation:action { |
| "none" |
| | "previous-page" |
| | "next-page" |
| | "first-page" |
| | "last-page" |
| | "hide" |
| | "stop" |
| | "execute" |
| | "show" |
| | "verb" |
| | "fade-out" |
| | "sound" |
| | "last-visited-page" |
| } |
| & attribute presentation:effect { presentationEffects }? |
| & attribute presentation:direction { presentationEffectDirections }? |
| & attribute presentation:speed { presentationSpeeds }? |
| & attribute presentation:start-scale { percent }? |
| & (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:show { "embed" }?, |
| attribute xlink:actuate { "onRequest" }?)? |
| & attribute presentation:verb { nonNegativeInteger }? |
| presentation-decls = presentation-decl* |
| presentation-decl = |
| element presentation:header-decl { |
| presentation-header-decl-attlist, text |
| } |
| | element presentation:footer-decl { |
| presentation-footer-decl-attlist, text |
| } |
| | element presentation:date-time-decl { |
| presentation-date-time-decl-attlist, text |
| } |
| presentation-header-decl-attlist = |
| attribute presentation:name { \string } |
| presentation-footer-decl-attlist = |
| attribute presentation:name { \string } |
| presentation-date-time-decl-attlist = |
| attribute presentation:name { \string } |
| & attribute presentation:source { "fixed" | "current-date" } |
| & attribute style:data-style-name { styleNameRef }? |
| presentation-settings = |
| element presentation:settings { |
| presentation-settings-attlist, presentation-show* |
| }? |
| presentation-settings-attlist = |
| attribute presentation:start-page { \string }? |
| & attribute presentation:show { \string }? |
| & attribute presentation:full-screen { boolean }? |
| & attribute presentation:endless { boolean }? |
| & attribute presentation:pause { duration }? |
| & attribute presentation:show-logo { boolean }? |
| & attribute presentation:force-manual { boolean }? |
| & attribute presentation:mouse-visible { boolean }? |
| & attribute presentation:mouse-as-pen { boolean }? |
| & attribute presentation:start-with-navigator { boolean }? |
| & attribute presentation:animations { "enabled" | "disabled" }? |
| & attribute presentation:transition-on-click { |
| "enabled" | "disabled" |
| }? |
| & attribute presentation:stay-on-top { boolean }? |
| & attribute presentation:show-end-of-presentation-slide { boolean }? |
| presentation-show = |
| element presentation:show { presentation-show-attlist, empty } |
| presentation-show-attlist = |
| attribute presentation:name { \string } |
| & attribute presentation:pages { \string } |
| chart-chart = |
| element chart:chart { |
| chart-chart-attlist, |
| chart-title?, |
| chart-subtitle?, |
| chart-footer?, |
| chart-legend?, |
| chart-plot-area, |
| table-table? |
| } |
| chart-chart-attlist = |
| attribute chart:class { namespacedToken } |
| & common-draw-size-attlist |
| & attribute chart:column-mapping { \string }? |
| & attribute chart:row-mapping { \string }? |
| & attribute chart:style-name { styleNameRef }? |
| & (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI })? |
| & attribute xml:id { ID }? |
| chart-title = element chart:title { chart-title-attlist, text-p? } |
| chart-title-attlist = |
| attribute table:cell-range { cellRangeAddressList }? |
| & common-draw-position-attlist |
| & attribute chart:style-name { styleNameRef }? |
| chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? } |
| chart-footer = element chart:footer { chart-title-attlist, text-p? } |
| chart-legend = element chart:legend { chart-legend-attlist, text-p? } |
| chart-legend-attlist = |
| ((attribute chart:legend-position { |
| "start" | "end" | "top" | "bottom" |
| }, |
| attribute chart:legend-align { "start" | "center" | "end" }?) |
| | attribute chart:legend-position { |
| "top-start" | "bottom-start" | "top-end" | "bottom-end" |
| } |
| | empty) |
| & common-draw-position-attlist |
| & (attribute style:legend-expansion { "wide" | "high" | "balanced" } |
| | (attribute style:legend-expansion { "custom" }, |
| attribute style:legend-expansion-aspect-ratio { double }) |
| | empty) |
| & attribute chart:style-name { styleNameRef }? |
| chart-plot-area = |
| element chart:plot-area { |
| chart-plot-area-attlist, |
| dr3d-light*, |
| chart-axis*, |
| chart-series*, |
| chart-stock-gain-marker?, |
| chart-stock-loss-marker?, |
| chart-stock-range-line?, |
| chart-wall?, |
| chart-floor? |
| } |
| chart-plot-area-attlist = |
| common-draw-position-attlist |
| & common-draw-size-attlist |
| & attribute chart:style-name { styleNameRef }? |
| & attribute table:cell-range-address { cellRangeAddressList }? |
| & attribute chart:data-source-has-labels { |
| "none" | "row" | "column" | "both" |
| }? |
| & dr3d-scene-attlist |
| & common-dr3d-transform-attlist |
| & attribute xml:id { ID }? |
| chart-wall = element chart:wall { chart-wall-attlist, empty } |
| chart-wall-attlist = |
| attribute svg:width { length }? |
| & attribute chart:style-name { styleNameRef }? |
| chart-floor = element chart:floor { chart-floor-attlist, empty } |
| chart-floor-attlist = |
| attribute svg:width { length }? |
| & attribute chart:style-name { styleNameRef }? |
| chart-axis = |
| element chart:axis { |
| chart-axis-attlist, chart-title?, chart-categories?, chart-grid* |
| } |
| chart-axis-attlist = |
| attribute chart:dimension { chart-dimension } |
| & attribute chart:name { \string }? |
| & attribute chart:style-name { styleNameRef }? |
| chart-dimension = "x" | "y" | "z" |
| chart-categories = |
| element chart:categories { |
| attribute table:cell-range-address { cellRangeAddressList }? |
| } |
| chart-grid = element chart:grid { chart-grid-attlist } |
| chart-grid-attlist = |
| attribute chart:class { "major" | "minor" }? |
| & attribute chart:style-name { styleNameRef }? |
| chart-series = |
| element chart:series { |
| chart-series-attlist, |
| chart-domain*, |
| chart-mean-value?, |
| chart-regression-curve*, |
| chart-error-indicator*, |
| chart-data-point*, |
| chart-data-label? |
| } |
| chart-series-attlist = |
| attribute chart:values-cell-range-address { cellRangeAddressList }? |
| & attribute chart:label-cell-address { cellRangeAddressList }? |
| & attribute chart:class { namespacedToken }? |
| & attribute chart:attached-axis { \string }? |
| & attribute chart:style-name { styleNameRef }? |
| & attribute xml:id { ID }? |
| chart-domain = |
| element chart:domain { |
| attribute table:cell-range-address { cellRangeAddressList }? |
| } |
| chart-data-point = |
| element chart:data-point { |
| chart-data-point-attlist, chart-data-label? |
| } |
| chart-data-point-attlist = |
| attribute chart:repeated { positiveInteger }? |
| & attribute chart:style-name { styleNameRef }? |
| & attribute xml:id { ID }? |
| chart-data-label = |
| element chart:data-label { chart-data-label-attlist, text-p? } |
| chart-data-label-attlist = |
| common-draw-position-attlist |
| & attribute chart:style-name { styleNameRef }? |
| chart-mean-value = |
| element chart:mean-value { chart-mean-value-attlist, empty } |
| chart-mean-value-attlist = attribute chart:style-name { styleNameRef }? |
| chart-error-indicator = |
| element chart:error-indicator { chart-error-indicator-attlist, empty } |
| chart-error-indicator-attlist = |
| attribute chart:style-name { styleNameRef }? |
| & attribute chart:dimension { chart-dimension } |
| chart-regression-curve = |
| element chart:regression-curve { |
| chart-regression-curve-attlist, chart-equation? |
| } |
| chart-regression-curve-attlist = |
| attribute chart:style-name { styleNameRef }? |
| chart-equation = |
| element chart:equation { chart-equation-attlist, text-p? } |
| chart-equation-attlist = |
| attribute chart:automatic-content { boolean }? |
| & attribute chart:display-r-square { boolean }? |
| & attribute chart:display-equation { boolean }? |
| & common-draw-position-attlist |
| & attribute chart:style-name { styleNameRef }? |
| chart-stock-gain-marker = |
| element chart:stock-gain-marker { common-stock-marker-attlist } |
| chart-stock-loss-marker = |
| element chart:stock-loss-marker { common-stock-marker-attlist } |
| chart-stock-range-line = |
| element chart:stock-range-line { common-stock-marker-attlist } |
| common-stock-marker-attlist = |
| attribute chart:style-name { styleNameRef }? |
| office-database = |
| element office:database { |
| db-data-source, |
| db-forms?, |
| db-reports?, |
| db-queries?, |
| db-table-presentations?, |
| db-schema-definition? |
| } |
| db-data-source = |
| element db:data-source { |
| db-data-source-attlist, |
| db-connection-data, |
| db-driver-settings?, |
| db-application-connection-settings? |
| } |
| db-data-source-attlist = empty |
| db-connection-data = |
| element db:connection-data { |
| db-connection-data-attlist, |
| (db-database-description | db-connection-resource), |
| db-login? |
| } |
| db-connection-data-attlist = empty |
| db-database-description = |
| element db:database-description { |
| db-database-description-attlist, |
| (db-file-based-database | db-server-database) |
| } |
| db-database-description-attlist = empty |
| db-file-based-database = |
| element db:file-based-database { db-file-based-database-attlist } |
| db-file-based-database-attlist = |
| attribute xlink:type { "simple" } |
| & attribute xlink:href { anyIRI } |
| & attribute db:media-type { \string } |
| & attribute db:extension { \string }? |
| db-server-database = |
| element db:server-database { db-server-database-attlist, empty } |
| db-server-database-attlist = |
| attribute db:type { namespacedToken } |
| & (db-host-and-port | db-local-socket-name) |
| & attribute db:database-name { \string }? |
| db-host-and-port = |
| attribute db:hostname { \string }, |
| attribute db:port { positiveInteger }? |
| db-local-socket-name = attribute db:local-socket { \string }? |
| db-connection-resource = |
| element db:connection-resource { |
| db-connection-resource-attlist, empty |
| } |
| db-connection-resource-attlist = |
| attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:show { "none" }?, |
| attribute xlink:actuate { "onRequest" }? |
| db-login = element db:login { db-login-attlist, empty } |
| db-login-attlist = |
| (attribute db:user-name { \string } |
| | attribute db:use-system-user { boolean })? |
| & attribute db:is-password-required { boolean }? |
| & attribute db:login-timeout { positiveInteger }? |
| db-driver-settings = |
| element db:driver-settings { |
| db-driver-settings-attlist, |
| db-auto-increment?, |
| db-delimiter?, |
| db-character-set?, |
| db-table-settings? |
| } |
| db-driver-settings-attlist = |
| db-show-deleted |
| & attribute db:system-driver-settings { \string }? |
| & attribute db:base-dn { \string }? |
| & db-is-first-row-header-line |
| & attribute db:parameter-name-substitution { boolean }? |
| db-show-deleted = attribute db:show-deleted { boolean }? |
| db-is-first-row-header-line = |
| attribute db:is-first-row-header-line { boolean }? |
| db-auto-increment = |
| element db:auto-increment { db-auto-increment-attlist, empty } |
| db-auto-increment-attlist = |
| attribute db:additional-column-statement { \string }? |
| & attribute db:row-retrieving-statement { \string }? |
| db-delimiter = element db:delimiter { db-delimiter-attlist, empty } |
| db-delimiter-attlist = |
| attribute db:field { \string }? |
| & attribute db:string { \string }? |
| & attribute db:decimal { \string }? |
| & attribute db:thousand { \string }? |
| db-character-set = |
| element db:character-set { db-character-set-attlist, empty } |
| db-character-set-attlist = attribute db:encoding { textEncoding }? |
| db-table-settings = element db:table-settings { db-table-setting* } |
| db-table-setting = |
| element db:table-setting { |
| db-table-setting-attlist, db-delimiter?, db-character-set?, empty |
| } |
| db-table-setting-attlist = db-is-first-row-header-line, db-show-deleted |
| db-application-connection-settings = |
| element db:application-connection-settings { |
| db-application-connection-settings-attlist, |
| db-table-filter?, |
| db-table-type-filter?, |
| db-data-source-settings? |
| } |
| db-application-connection-settings-attlist = |
| attribute db:is-table-name-length-limited { boolean }? |
| & attribute db:enable-sql92-check { boolean }? |
| & attribute db:append-table-alias-name { boolean }? |
| & attribute db:ignore-driver-privileges { boolean }? |
| & attribute db:boolean-comparison-mode { |
| "equal-integer" |
| | "is-boolean" |
| | "equal-boolean" |
| | "equal-use-only-zero" |
| }? |
| & attribute db:use-catalog { boolean }? |
| & attribute db:max-row-count { integer }? |
| & attribute db:suppress-version-columns { boolean }? |
| db-table-filter = |
| element db:table-filter { |
| db-table-filter-attlist, |
| db-table-include-filter?, |
| db-table-exclude-filter? |
| } |
| db-table-filter-attlist = empty |
| db-table-include-filter = |
| element db:table-include-filter { |
| db-table-include-filter-attlist, db-table-filter-pattern+ |
| } |
| db-table-include-filter-attlist = empty |
| db-table-exclude-filter = |
| element db:table-exclude-filter { |
| db-table-exclude-filter-attlist, db-table-filter-pattern+ |
| } |
| db-table-exclude-filter-attlist = empty |
| db-table-filter-pattern = |
| element db:table-filter-pattern { |
| db-table-filter-pattern-attlist, \string |
| } |
| db-table-filter-pattern-attlist = empty |
| db-table-type-filter = |
| element db:table-type-filter { |
| db-table-type-filter-attlist, db-table-type* |
| } |
| db-table-type-filter-attlist = empty |
| db-table-type = element db:table-type { db-table-type-attlist, \string } |
| db-table-type-attlist = empty |
| db-data-source-settings = |
| element db:data-source-settings { |
| db-data-source-settings-attlist, db-data-source-setting+ |
| } |
| db-data-source-settings-attlist = empty |
| db-data-source-setting = |
| element db:data-source-setting { |
| db-data-source-setting-attlist, db-data-source-setting-value+ |
| } |
| db-data-source-setting-attlist = |
| attribute db:data-source-setting-is-list { boolean }? |
| & attribute db:data-source-setting-name { \string } |
| & attribute db:data-source-setting-type { |
| db-data-source-setting-types |
| } |
| db-data-source-setting-types = |
| "boolean" | "short" | "int" | "long" | "double" | "string" |
| db-data-source-setting-value = |
| element db:data-source-setting-value { |
| db-data-source-setting-value-attlist, \string |
| } |
| db-data-source-setting-value-attlist = empty |
| db-forms = |
| element db:forms { |
| db-forms-attlist, (db-component | db-component-collection)* |
| } |
| db-forms-attlist = empty |
| db-reports = |
| element db:reports { |
| db-reports-attlist, (db-component | db-component-collection)* |
| } |
| db-reports-attlist = empty |
| db-component-collection = |
| element db:component-collection { |
| db-component-collection-attlist, |
| common-db-object-name, |
| common-db-object-title, |
| common-db-object-description, |
| (db-component | db-component-collection)* |
| } |
| db-component-collection-attlist = empty |
| db-component = |
| element db:component { |
| db-component-attlist, |
| common-db-object-name, |
| common-db-object-title, |
| common-db-object-description, |
| (office-document | math-math)? |
| } |
| db-component-attlist = |
| (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:show { "none" }?, |
| attribute xlink:actuate { "onRequest" }?)? |
| & attribute db:as-template { boolean }? |
| db-queries = |
| element db:queries { |
| db-queries-attlist, (db-query | db-query-collection)* |
| } |
| db-queries-attlist = empty |
| db-query-collection = |
| element db:query-collection { |
| db-query-collection-attlist, |
| common-db-object-name, |
| common-db-object-title, |
| common-db-object-description, |
| (db-query | db-query-collection)* |
| } |
| db-query-collection-attlist = empty |
| db-query = |
| element db:query { |
| db-query-attlist, |
| common-db-object-name, |
| common-db-object-title, |
| common-db-object-description, |
| common-db-table-style-name, |
| db-order-statement?, |
| db-filter-statement?, |
| db-columns?, |
| db-update-table? |
| } |
| db-query-attlist = |
| attribute db:command { \string } |
| & attribute db:escape-processing { boolean }? |
| db-order-statement = |
| element db:order-statement { db-command, db-apply-command, empty } |
| db-filter-statement = |
| element db:filter-statement { db-command, db-apply-command, empty } |
| db-update-table = |
| element db:update-table { common-db-table-name-attlist } |
| db-table-presentations = |
| element db:table-representations { |
| db-table-presentations-attlist, db-table-presentation* |
| } |
| db-table-presentations-attlist = empty |
| db-table-presentation = |
| element db:table-representation { |
| db-table-presentation-attlist, |
| common-db-table-name-attlist, |
| common-db-object-title, |
| common-db-object-description, |
| common-db-table-style-name, |
| db-order-statement?, |
| db-filter-statement?, |
| db-columns? |
| } |
| db-table-presentation-attlist = empty |
| db-columns = element db:columns { db-columns-attlist, db-column+ } |
| db-columns-attlist = empty |
| db-column = |
| element db:column { |
| db-column-attlist, |
| common-db-object-name, |
| common-db-object-title, |
| common-db-object-description, |
| common-db-default-value |
| } |
| db-column-attlist = |
| attribute db:visible { boolean }? |
| & attribute db:style-name { styleNameRef }? |
| & attribute db:default-cell-style-name { styleNameRef }? |
| db-command = attribute db:command { \string } |
| db-apply-command = attribute db:apply-command { boolean }? |
| common-db-table-name-attlist = |
| attribute db:name { \string } |
| & attribute db:catalog-name { \string }? |
| & attribute db:schema-name { \string }? |
| common-db-object-name = attribute db:name { \string } |
| common-db-object-title = attribute db:title { \string }? |
| common-db-object-description = attribute db:description { \string }? |
| common-db-table-style-name = |
| attribute db:style-name { styleNameRef }? |
| & attribute db:default-row-style-name { styleNameRef }? |
| common-db-default-value = common-value-and-type-attlist? |
| db-schema-definition = |
| element db:schema-definition { |
| db-schema-definition-attlist, db-table-definitions |
| } |
| db-schema-definition-attlist = empty |
| db-table-definitions = |
| element db:table-definitions { |
| db-table-definitions-attlist, db-table-definition* |
| } |
| db-table-definitions-attlist = empty |
| db-table-definition = |
| element db:table-definition { |
| common-db-table-name-attlist, |
| db-table-definition-attlist, |
| db-column-definitions, |
| db-keys?, |
| db-indices? |
| } |
| db-table-definition-attlist = attribute db:type { \string }? |
| db-column-definitions = |
| element db:column-definitions { |
| db-column-definitions-attlist, db-column-definition+ |
| } |
| db-column-definitions-attlist = empty |
| db-column-definition = |
| element db:column-definition { |
| db-column-definition-attlist, common-db-default-value |
| } |
| db-column-definition-attlist = |
| attribute db:name { \string } |
| & attribute db:data-type { db-data-types }? |
| & attribute db:type-name { \string }? |
| & attribute db:precision { positiveInteger }? |
| & attribute db:scale { positiveInteger }? |
| & attribute db:is-nullable { "no-nulls" | "nullable" }? |
| & attribute db:is-empty-allowed { boolean }? |
| & attribute db:is-autoincrement { boolean }? |
| db-data-types = |
| "bit" |
| | "boolean" |
| | "tinyint" |
| | "smallint" |
| | "integer" |
| | "bigint" |
| | "float" |
| | "real" |
| | "double" |
| | "numeric" |
| | "decimal" |
| | "char" |
| | "varchar" |
| | "longvarchar" |
| | "date" |
| | "time" |
| | "timestmp" |
| | "binary" |
| | "varbinary" |
| | "longvarbinary" |
| | "sqlnull" |
| | "other" |
| | "object" |
| | "distinct" |
| | "struct" |
| | "array" |
| | "blob" |
| | "clob" |
| | "ref" |
| db-keys = element db:keys { db-keys-attlist, db-key+ } |
| db-keys-attlist = empty |
| db-key = element db:key { db-key-attlist, db-key-columns+ } |
| db-key-attlist = |
| attribute db:name { \string }? |
| & attribute db:type { "primary" | "unique" | "foreign" } |
| & attribute db:referenced-table-name { \string }? |
| & attribute db:update-rule { |
| "cascade" | "restrict" | "set-null" | "no-action" | "set-default" |
| }? |
| & attribute db:delete-rule { |
| "cascade" | "restrict" | "set-null" | "no-action" | "set-default" |
| }? |
| db-key-columns = |
| element db:key-columns { db-key-columns-attlist, db-key-column+ } |
| db-key-columns-attlist = empty |
| db-key-column = element db:key-column { db-key-column-attlist, empty } |
| db-key-column-attlist = |
| attribute db:name { \string }? |
| & attribute db:related-column-name { \string }? |
| db-indices = element db:indices { db-indices-attlist, db-index+ } |
| db-indices-attlist = empty |
| db-index = element db:index { db-index-attlist, db-index-columns+ } |
| db-index-attlist = |
| attribute db:name { \string } |
| & attribute db:catalog-name { \string }? |
| & attribute db:is-unique { boolean }? |
| & attribute db:is-clustered { boolean }? |
| db-index-columns = element db:index-columns { db-index-column+ } |
| db-index-column = |
| element db:index-column { db-index-column-attlist, empty } |
| db-index-column-attlist = |
| attribute db:name { \string } |
| & attribute db:is-ascending { boolean }? |
| office-forms = |
| element office:forms { |
| office-forms-attlist, (form-form | xforms-model)* |
| }? |
| office-forms-attlist = |
| attribute form:automatic-focus { boolean }? |
| & attribute form:apply-design-mode { boolean }? |
| form-form = |
| element form:form { |
| common-form-control-attlist, |
| form-form-attlist, |
| form-properties?, |
| office-event-listeners?, |
| (controls | form-form)*, |
| form-connection-resource? |
| } |
| form-form-attlist = |
| (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:actuate { "onRequest" }?)? |
| & attribute office:target-frame { targetFrameName }? |
| & attribute form:method { "get" | "post" | \string }? |
| & attribute form:enctype { \string }? |
| & attribute form:allow-deletes { boolean }? |
| & attribute form:allow-inserts { boolean }? |
| & attribute form:allow-updates { boolean }? |
| & attribute form:apply-filter { boolean }? |
| & attribute form:command-type { "table" | "query" | "command" }? |
| & attribute form:command { \string }? |
| & attribute form:datasource { anyIRI | \string }? |
| & attribute form:master-fields { \string }? |
| & attribute form:detail-fields { \string }? |
| & attribute form:escape-processing { boolean }? |
| & attribute form:filter { \string }? |
| & attribute form:ignore-result { boolean }? |
| & attribute form:navigation-mode { navigation }? |
| & attribute form:order { \string }? |
| & attribute form:tab-cycle { tab-cycles }? |
| navigation = "none" | "current" | "parent" |
| tab-cycles = "records" | "current" | "page" |
| form-connection-resource = |
| element form:connection-resource { |
| attribute xlink:href { anyIRI }, |
| empty |
| } |
| xforms-model = element xforms:model { anyAttListOrElements } |
| column-controls = |
| element form:text { form-text-attlist, common-form-control-content } |
| | element form:textarea { |
| form-textarea-attlist, common-form-control-content, text-p* |
| } |
| | element form:formatted-text { |
| form-formatted-text-attlist, common-form-control-content |
| } |
| | element form:number { |
| form-number-attlist, |
| common-numeric-control-attlist, |
| common-form-control-content, |
| common-linked-cell, |
| common-spin-button, |
| common-repeat, |
| common-delay-for-repeat |
| } |
| | element form:date { |
| form-date-attlist, |
| common-numeric-control-attlist, |
| common-form-control-content, |
| common-linked-cell, |
| common-spin-button, |
| common-repeat, |
| common-delay-for-repeat |
| } |
| | element form:time { |
| form-time-attlist, |
| common-numeric-control-attlist, |
| common-form-control-content, |
| common-linked-cell, |
| common-spin-button, |
| common-repeat, |
| common-delay-for-repeat |
| } |
| | element form:combobox { |
| form-combobox-attlist, common-form-control-content, form-item* |
| } |
| | element form:listbox { |
| form-listbox-attlist, common-form-control-content, form-option* |
| } |
| | element form:checkbox { |
| form-checkbox-attlist, common-form-control-content |
| } |
| controls = |
| column-controls |
| | element form:password { |
| form-password-attlist, common-form-control-content |
| } |
| | element form:file { form-file-attlist, common-form-control-content } |
| | element form:fixed-text { |
| form-fixed-text-attlist, common-form-control-content |
| } |
| | element form:button { |
| form-button-attlist, common-form-control-content |
| } |
| | element form:image { |
| form-image-attlist, common-form-control-content |
| } |
| | element form:radio { |
| form-radio-attlist, common-form-control-content |
| } |
| | element form:frame { |
| form-frame-attlist, common-form-control-content |
| } |
| | element form:image-frame { |
| form-image-frame-attlist, common-form-control-content |
| } |
| | element form:hidden { |
| form-hidden-attlist, common-form-control-content |
| } |
| | element form:grid { |
| form-grid-attlist, common-form-control-content, form-column* |
| } |
| | element form:value-range { |
| form-value-range-attlist, common-form-control-content |
| } |
| | element form:generic-control { |
| form-generic-control-attlist, common-form-control-content |
| } |
| form-text-attlist = |
| form-control-attlist, |
| common-current-value-attlist, |
| common-disabled-attlist, |
| common-maxlength-attlist, |
| common-printable-attlist, |
| common-readonly-attlist, |
| common-tab-attlist, |
| common-title-attlist, |
| common-value-attlist, |
| common-convert-empty-attlist, |
| common-data-field-attlist, |
| common-linked-cell |
| form-control-attlist = |
| common-form-control-attlist, |
| common-control-id-attlist, |
| xforms-bind-attlist |
| common-form-control-content = form-properties?, office-event-listeners? |
| form-textarea-attlist = |
| form-control-attlist, |
| common-current-value-attlist, |
| common-disabled-attlist, |
| common-maxlength-attlist, |
| common-printable-attlist, |
| common-readonly-attlist, |
| common-tab-attlist, |
| common-title-attlist, |
| common-value-attlist, |
| common-convert-empty-attlist, |
| common-data-field-attlist, |
| common-linked-cell |
| form-password-attlist = |
| form-control-attlist |
| & common-disabled-attlist |
| & common-maxlength-attlist |
| & common-printable-attlist |
| & common-tab-attlist |
| & common-title-attlist |
| & common-value-attlist |
| & common-convert-empty-attlist |
| & common-linked-cell |
| & attribute form:echo-char { character }? |
| form-file-attlist = |
| form-control-attlist, |
| common-current-value-attlist, |
| common-disabled-attlist, |
| common-maxlength-attlist, |
| common-printable-attlist, |
| common-readonly-attlist, |
| common-tab-attlist, |
| common-title-attlist, |
| common-value-attlist, |
| common-linked-cell |
| form-formatted-text-attlist = |
| form-control-attlist |
| & common-current-value-attlist |
| & common-disabled-attlist |
| & common-maxlength-attlist |
| & common-printable-attlist |
| & common-readonly-attlist |
| & common-tab-attlist |
| & common-title-attlist |
| & common-value-attlist |
| & common-convert-empty-attlist |
| & common-data-field-attlist |
| & common-linked-cell |
| & common-spin-button |
| & common-repeat |
| & common-delay-for-repeat |
| & attribute form:max-value { \string }? |
| & attribute form:min-value { \string }? |
| & attribute form:validation { boolean }? |
| common-numeric-control-attlist = |
| form-control-attlist, |
| common-disabled-attlist, |
| common-maxlength-attlist, |
| common-printable-attlist, |
| common-readonly-attlist, |
| common-tab-attlist, |
| common-title-attlist, |
| common-convert-empty-attlist, |
| common-data-field-attlist |
| form-number-attlist = |
| attribute form:value { double }? |
| & attribute form:current-value { double }? |
| & attribute form:min-value { double }? |
| & attribute form:max-value { double }? |
| form-date-attlist = |
| attribute form:value { date }? |
| & attribute form:current-value { date }? |
| & attribute form:min-value { date }? |
| & attribute form:max-value { date }? |
| form-time-attlist = |
| attribute form:value { time }? |
| & attribute form:current-value { time }? |
| & attribute form:min-value { time }? |
| & attribute form:max-value { time }? |
| form-fixed-text-attlist = |
| form-control-attlist |
| & for |
| & common-disabled-attlist |
| & label |
| & common-printable-attlist |
| & common-title-attlist |
| & attribute form:multi-line { boolean }? |
| form-combobox-attlist = |
| form-control-attlist |
| & common-current-value-attlist |
| & common-disabled-attlist |
| & dropdown |
| & common-maxlength-attlist |
| & common-printable-attlist |
| & common-readonly-attlist |
| & size |
| & common-tab-attlist |
| & common-title-attlist |
| & common-value-attlist |
| & common-convert-empty-attlist |
| & common-data-field-attlist |
| & list-source |
| & list-source-type |
| & common-linked-cell |
| & common-source-cell-range |
| & attribute form:auto-complete { boolean }? |
| form-item = element form:item { form-item-attlist, text } |
| form-item-attlist = label |
| form-listbox-attlist = |
| form-control-attlist |
| & common-disabled-attlist |
| & dropdown |
| & common-printable-attlist |
| & size |
| & common-tab-attlist |
| & common-title-attlist |
| & bound-column |
| & common-data-field-attlist |
| & list-source |
| & list-source-type |
| & common-linked-cell |
| & list-linkage-type |
| & common-source-cell-range |
| & attribute form:multiple { boolean }? |
| & attribute form:xforms-list-source { \string }? |
| list-linkage-type = |
| attribute form:list-linkage-type { |
| "selection" | "selection-indices" |
| }? |
| form-option = element form:option { form-option-attlist, text } |
| form-option-attlist = |
| current-selected, selected, label, common-value-attlist |
| form-button-attlist = |
| form-control-attlist |
| & button-type |
| & common-disabled-attlist |
| & label |
| & image-data |
| & common-printable-attlist |
| & common-tab-attlist |
| & target-frame |
| & target-location |
| & common-title-attlist |
| & common-value-attlist |
| & common-form-relative-image-position-attlist |
| & common-repeat |
| & common-delay-for-repeat |
| & attribute form:default-button { boolean }? |
| & attribute form:toggle { boolean }? |
| & attribute form:focus-on-click { boolean }? |
| & attribute form:xforms-submission { \string }? |
| form-image-attlist = |
| form-control-attlist, |
| button-type, |
| common-disabled-attlist, |
| image-data, |
| common-printable-attlist, |
| common-tab-attlist, |
| target-frame, |
| target-location, |
| common-title-attlist, |
| common-value-attlist |
| form-checkbox-attlist = |
| form-control-attlist |
| & common-disabled-attlist |
| & label |
| & common-printable-attlist |
| & common-tab-attlist |
| & common-title-attlist |
| & common-value-attlist |
| & common-data-field-attlist |
| & common-form-visual-effect-attlist |
| & common-form-relative-image-position-attlist |
| & common-linked-cell |
| & attribute form:current-state { states }? |
| & attribute form:is-tristate { boolean }? |
| & attribute form:state { states }? |
| states = "unchecked" | "checked" | "unknown" |
| form-radio-attlist = |
| form-control-attlist, |
| current-selected, |
| common-disabled-attlist, |
| label, |
| common-printable-attlist, |
| selected, |
| common-tab-attlist, |
| common-title-attlist, |
| common-value-attlist, |
| common-data-field-attlist, |
| common-form-visual-effect-attlist, |
| common-form-relative-image-position-attlist, |
| common-linked-cell |
| form-frame-attlist = |
| form-control-attlist, |
| common-disabled-attlist, |
| for, |
| label, |
| common-printable-attlist, |
| common-title-attlist |
| form-image-frame-attlist = |
| form-control-attlist, |
| common-disabled-attlist, |
| image-data, |
| common-printable-attlist, |
| common-readonly-attlist, |
| common-title-attlist, |
| common-data-field-attlist |
| form-hidden-attlist = form-control-attlist, common-value-attlist |
| form-grid-attlist = |
| form-control-attlist, |
| common-disabled-attlist, |
| common-printable-attlist, |
| common-tab-attlist, |
| common-title-attlist |
| form-column = |
| element form:column { form-column-attlist, column-controls+ } |
| form-column-attlist = |
| common-form-control-attlist, label, text-style-name |
| text-style-name = attribute form:text-style-name { styleNameRef }? |
| form-value-range-attlist = |
| form-control-attlist |
| & common-disabled-attlist |
| & common-printable-attlist |
| & common-tab-attlist |
| & common-title-attlist |
| & common-value-attlist |
| & common-linked-cell |
| & common-repeat |
| & common-delay-for-repeat |
| & attribute form:max-value { integer }? |
| & attribute form:min-value { integer }? |
| & attribute form:step-size { positiveInteger }? |
| & attribute form:page-step-size { positiveInteger }? |
| & attribute form:orientation { "horizontal" | "vertical" }? |
| form-generic-control-attlist = form-control-attlist |
| common-form-control-attlist = |
| attribute form:name { \string }? |
| & attribute form:control-implementation { namespacedToken }? |
| xforms-bind-attlist = attribute xforms:bind { \string }? |
| types = "submit" | "reset" | "push" | "url" |
| button-type = attribute form:button-type { types }? |
| common-control-id-attlist = |
| attribute xml:id { ID }, |
| attribute form:id { NCName }? |
| current-selected = attribute form:current-selected { boolean }? |
| common-value-attlist = attribute form:value { \string }? |
| common-current-value-attlist = attribute form:current-value { \string }? |
| common-disabled-attlist = attribute form:disabled { boolean }? |
| dropdown = attribute form:dropdown { boolean }? |
| for = attribute form:for { \string }? |
| image-data = attribute form:image-data { anyIRI }? |
| label = attribute form:label { \string }? |
| common-maxlength-attlist = |
| attribute form:max-length { nonNegativeInteger }? |
| common-printable-attlist = attribute form:printable { boolean }? |
| common-readonly-attlist = attribute form:readonly { boolean }? |
| selected = attribute form:selected { boolean }? |
| size = attribute form:size { nonNegativeInteger }? |
| common-tab-attlist = |
| attribute form:tab-index { nonNegativeInteger }? |
| & attribute form:tab-stop { boolean }? |
| target-frame = attribute office:target-frame { targetFrameName }? |
| target-location = attribute xlink:href { anyIRI }? |
| common-title-attlist = attribute form:title { \string }? |
| common-form-visual-effect-attlist = |
| attribute form:visual-effect { "flat" | "3d" }? |
| common-form-relative-image-position-attlist = |
| attribute form:image-position { "center" }? |
| | (attribute form:image-position { |
| "start" | "end" | "top" | "bottom" |
| }, |
| attribute form:image-align { "start" | "center" | "end" }?) |
| bound-column = attribute form:bound-column { \string }? |
| common-convert-empty-attlist = |
| attribute form:convert-empty-to-null { boolean }? |
| common-data-field-attlist = attribute form:data-field { \string }? |
| list-source = attribute form:list-source { \string }? |
| list-source-type = |
| attribute form:list-source-type { |
| "table" |
| | "query" |
| | "sql" |
| | "sql-pass-through" |
| | "value-list" |
| | "table-fields" |
| }? |
| common-linked-cell = |
| attribute form:linked-cell { cellAddress | \string }? |
| common-source-cell-range = |
| attribute form:source-cell-range { cellRangeAddress | \string }? |
| common-spin-button = attribute form:spin-button { boolean }? |
| common-repeat = attribute form:repeat { boolean }? |
| common-delay-for-repeat = attribute form:delay-for-repeat { duration }? |
| form-properties = element form:properties { form-property+ } |
| form-property = |
| element form:property { |
| form-property-name, form-property-value-and-type-attlist |
| } |
| | element form:list-property { |
| form-property-name, form-property-type-and-value-list |
| } |
| form-property-name = attribute form:property-name { \string } |
| form-property-value-and-type-attlist = |
| common-value-and-type-attlist |
| | attribute office:value-type { "void" } |
| form-property-type-and-value-list = |
| (attribute office:value-type { "float" }, |
| element form:list-value { |
| attribute office:value { double } |
| }*) |
| | (attribute office:value-type { "percentage" }, |
| element form:list-value { |
| attribute office:value { double } |
| }*) |
| | (attribute office:value-type { "currency" }, |
| element form:list-value { |
| attribute office:value { double }, |
| attribute office:currency { \string }? |
| }*) |
| | (attribute office:value-type { "date" }, |
| element form:list-value { |
| attribute office:date-value { dateOrDateTime } |
| }*) |
| | (attribute office:value-type { "time" }, |
| element form:list-value { |
| attribute office:time-value { duration } |
| }*) |
| | (attribute office:value-type { "boolean" }, |
| element form:list-value { |
| attribute office:boolean-value { boolean } |
| }*) |
| | (attribute office:value-type { "string" }, |
| element form:list-value { |
| attribute office:string-value { \string } |
| }*) |
| | attribute office:value-type { "void" } |
| office-annotation = |
| element office:annotation { |
| office-annotation-attlist, |
| draw-caption-attlist, |
| common-draw-position-attlist, |
| common-draw-size-attlist, |
| common-draw-shape-with-text-and-styles-attlist, |
| element dc:creator { \string }?, |
| element dc:date { dateTime }?, |
| meta-date-string?, |
| (text-p | text-list)* |
| } |
| office-annotation-end = |
| element office:annotation-end { office-annotation-end-attlist } |
| office-annotation-attlist = |
| attribute office:display { boolean }? |
| & common-office-annotation-name-attlist? |
| office-annotation-end-attlist = common-office-annotation-name-attlist |
| common-office-annotation-name-attlist = |
| attribute office:name { \string } |
| meta-date-string = element meta:date-string { \string } |
| common-num-format-prefix-suffix-attlist = |
| attribute style:num-prefix { \string }?, |
| attribute style:num-suffix { \string }? |
| common-num-format-attlist = |
| attribute style:num-format { "1" | "i" | "I" | \string | empty } |
| | (attribute style:num-format { "a" | "A" }, |
| style-num-letter-sync-attlist) |
| | empty |
| style-num-letter-sync-attlist = |
| attribute style:num-letter-sync { boolean }? |
| office-change-info = |
| element office:change-info { |
| element dc:creator { \string }, |
| element dc:date { dateTime }, |
| text-p* |
| } |
| office-event-listeners = |
| element office:event-listeners { |
| (script-event-listener | presentation-event-listener)* |
| } |
| script-event-listener = |
| element script:event-listener { script-event-listener-attlist, empty } |
| script-event-listener-attlist = |
| attribute script:event-name { \string } |
| & attribute script:language { \string } |
| & (attribute script:macro-name { \string } |
| | (attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:actuate { "onRequest" }?)) |
| math-math = element math:math { mathMarkup } |
| [ |
| dc:description [ |
| "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element" |
| ] |
| ] |
| mathMarkup = |
| (attribute * { text } |
| | text |
| | element * { mathMarkup })* |
| text-dde-connection-decl = |
| element text:dde-connection-decl { |
| text-dde-connection-decl-attlist, common-dde-connection-decl-attlist |
| } |
| text-dde-connection-decl-attlist = attribute office:name { \string } |
| common-dde-connection-decl-attlist = |
| attribute office:dde-application { \string } |
| & attribute office:dde-topic { \string } |
| & attribute office:dde-item { \string } |
| & attribute office:automatic-update { boolean }? |
| table-dde-link = |
| element table:dde-link { office-dde-source, table-table } |
| office-dde-source = |
| element office:dde-source { |
| office-dde-source-attlist, common-dde-connection-decl-attlist |
| } |
| office-dde-source-attlist = |
| attribute office:name { \string }? |
| & attribute office:conversion-mode { |
| "into-default-style-data-style" |
| | "into-english-number" |
| | "keep-text" |
| }? |
| animation-element = |
| element anim:animate { |
| common-anim-target-attlist, |
| common-anim-named-target-attlist, |
| common-anim-values-attlist, |
| common-anim-spline-mode-attlist, |
| common-spline-anim-value-attlist, |
| common-timing-attlist, |
| common-anim-add-accum-attlist |
| } |
| | element anim:set { |
| common-anim-target-attlist, |
| common-anim-named-target-attlist, |
| common-anim-set-values-attlist, |
| common-timing-attlist, |
| common-anim-add-accum-attlist |
| } |
| | element anim:animateMotion { |
| anim-animate-motion-attlist, |
| common-anim-target-attlist, |
| common-anim-named-target-attlist, |
| common-anim-add-accum-attlist, |
| common-anim-values-attlist, |
| common-timing-attlist, |
| common-spline-anim-value-attlist |
| } |
| | element anim:animateColor { |
| common-anim-target-attlist, |
| common-anim-named-target-attlist, |
| common-anim-add-accum-attlist, |
| common-anim-values-attlist, |
| common-anim-spline-mode-attlist, |
| common-spline-anim-value-attlist, |
| anim-animate-color-attlist, |
| common-timing-attlist |
| } |
| | element anim:animateTransform { |
| common-anim-target-attlist, |
| common-anim-named-target-attlist, |
| common-anim-add-accum-attlist, |
| common-anim-values-attlist, |
| anim-animate-transform-attlist, |
| common-timing-attlist |
| } |
| | element anim:transitionFilter { |
| common-anim-target-attlist, |
| common-anim-add-accum-attlist, |
| common-anim-values-attlist, |
| common-anim-spline-mode-attlist, |
| anim-transition-filter-attlist, |
| common-timing-attlist |
| } |
| | element anim:par { |
| common-anim-attlist, |
| common-timing-attlist, |
| common-endsync-timing-attlist, |
| animation-element* |
| } |
| | element anim:seq { |
| common-anim-attlist, |
| common-endsync-timing-attlist, |
| common-timing-attlist, |
| animation-element* |
| } |
| | element anim:iterate { |
| common-anim-attlist, |
| anim-iterate-attlist, |
| common-timing-attlist, |
| common-endsync-timing-attlist, |
| animation-element* |
| } |
| | element anim:audio { |
| common-anim-attlist, |
| anim-audio-attlist, |
| common-basic-timing-attlist |
| } |
| | element anim:command { |
| common-anim-attlist, |
| anim-command-attlist, |
| common-begin-end-timing-attlist, |
| common-anim-target-attlist, |
| element anim:param { |
| attribute anim:name { \string }, |
| attribute anim:value { \string } |
| }* |
| } |
| anim-animate-motion-attlist = |
| attribute svg:path { pathData }? |
| & attribute svg:origin { \string }? |
| & attribute smil:calcMode { |
| "discrete" | "linear" | "paced" | "spline" |
| }? |
| anim-animate-color-attlist = |
| attribute anim:color-interpolation { "rgb" | "hsl" }? |
| & attribute anim:color-interpolation-direction { |
| "clockwise" | "counter-clockwise" |
| }? |
| anim-animate-transform-attlist = |
| attribute svg:type { |
| "translate" | "scale" | "rotate" | "skewX" | "skewY" |
| } |
| anim-transition-filter-attlist = |
| attribute smil:type { \string } |
| & attribute smil:subtype { \string }? |
| & attribute smil:direction { "forward" | "reverse" }? |
| & attribute smil:fadeColor { color }? |
| & attribute smil:mode { "in" | "out" }? |
| common-anim-target-attlist = |
| attribute smil:targetElement { IDREF }? |
| & attribute anim:sub-item { \string }? |
| common-anim-named-target-attlist = |
| attribute smil:attributeName { \string } |
| common-anim-values-attlist = |
| attribute smil:values { \string }? |
| & attribute anim:formula { \string }? |
| & common-anim-set-values-attlist |
| & attribute smil:from { \string }? |
| & attribute smil:by { \string }? |
| common-anim-spline-mode-attlist = |
| attribute smil:calcMode { |
| "discrete" | "linear" | "paced" | "spline" |
| }? |
| common-spline-anim-value-attlist = |
| attribute smil:keyTimes { \string }? |
| & attribute smil:keySplines { \string }? |
| common-anim-add-accum-attlist = |
| attribute smil:accumulate { "none" | "sum" }? |
| & attribute smil:additive { "replace" | "sum" }? |
| common-anim-set-values-attlist = attribute smil:to { \string }? |
| common-begin-end-timing-attlist = |
| attribute smil:begin { \string }? |
| & attribute smil:end { \string }? |
| common-dur-timing-attlist = attribute smil:dur { \string }? |
| common-endsync-timing-attlist = |
| attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }? |
| common-repeat-timing-attlist = |
| attribute smil:repeatDur { \string }?, |
| attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }? |
| nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" } |
| common-fill-timing-attlist = |
| attribute smil:fill { |
| "remove" | "freeze" | "hold" | "auto" | "default" | "transition" |
| }? |
| common-fill-default-attlist = |
| attribute smil:fillDefault { |
| "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit" |
| }? |
| common-restart-timing-attlist = |
| attribute smil:restart { |
| "never" | "always" | "whenNotActive" | "default" |
| }? |
| common-restart-default-attlist = |
| attribute smil:restartDefault { |
| "never" | "always" | "whenNotActive" | "inherit" |
| }? |
| common-time-manip-attlist = |
| attribute smil:accelerate { zeroToOneDecimal }? |
| & attribute smil:decelerate { zeroToOneDecimal }? |
| & attribute smil:autoReverse { boolean }? |
| zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" } |
| common-basic-timing-attlist = |
| common-begin-end-timing-attlist, |
| common-dur-timing-attlist, |
| common-repeat-timing-attlist, |
| common-restart-timing-attlist, |
| common-restart-default-attlist, |
| common-fill-timing-attlist, |
| common-fill-default-attlist |
| common-timing-attlist = |
| common-basic-timing-attlist, common-time-manip-attlist |
| anim-iterate-attlist = |
| common-anim-target-attlist |
| & attribute anim:iterate-type { \string }? |
| & attribute anim:iterate-interval { duration }? |
| anim-audio-attlist = |
| attribute xlink:href { anyIRI }? |
| & attribute anim:audio-level { double }? |
| anim-command-attlist = attribute anim:command { \string } |
| style-map = element style:map { style-map-attlist, empty } |
| style-map-attlist = |
| attribute style:condition { \string } |
| & attribute style:apply-style-name { styleNameRef } |
| & attribute style:base-cell-address { cellAddress }? |
| style-default-style = |
| element style:default-style { style-style-content } |
| style-page-layout = |
| element style:page-layout { |
| style-page-layout-attlist, style-page-layout-content |
| } |
| style-page-layout-content = |
| style-page-layout-properties?, |
| style-header-style?, |
| style-footer-style? |
| style-page-layout-attlist = |
| attribute style:name { styleName } |
| & attribute style:page-usage { |
| "all" | "left" | "right" | "mirrored" |
| }? |
| style-header-style = |
| element style:header-style { style-header-footer-properties? } |
| style-footer-style = |
| element style:footer-style { style-header-footer-properties? } |
| style-default-page-layout = |
| element style:default-page-layout { style-page-layout-content } |
| style-master-page = |
| element style:master-page { |
| style-master-page-attlist, |
| (style-header, style-header-left?)?, |
| (style-footer, style-footer-left?)?, |
| draw-layer-set?, |
| office-forms?, |
| shape*, |
| animation-element?, |
| presentation-notes? |
| } |
| style-master-page-attlist = |
| attribute style:name { styleName } |
| & attribute style:display-name { \string }? |
| & attribute style:page-layout-name { styleNameRef } |
| & attribute draw:style-name { styleNameRef }? |
| & attribute style:next-style-name { styleNameRef }? |
| style-header = |
| element style:header { |
| common-style-header-footer-attlist, header-footer-content |
| } |
| style-footer = |
| element style:footer { |
| common-style-header-footer-attlist, header-footer-content |
| } |
| style-header-left = |
| element style:header-left { |
| common-style-header-footer-attlist, header-footer-content |
| } |
| style-footer-left = |
| element style:footer-left { |
| common-style-header-footer-attlist, header-footer-content |
| } |
| header-footer-content = |
| (text-tracked-changes, |
| text-decls, |
| (text-h |
| | text-p |
| | text-list |
| | table-table |
| | text-section |
| | text-table-of-content |
| | text-illustration-index |
| | text-table-index |
| | text-object-index |
| | text-user-index |
| | text-alphabetical-index |
| | text-bibliography |
| | text-index-title |
| | change-marks)*) |
| | (style-region-left?, style-region-center?, style-region-right?) |
| common-style-header-footer-attlist = |
| attribute style:display { boolean }? |
| style-region-left = element style:region-left { region-content } |
| style-region-center = element style:region-center { region-content } |
| style-region-right = element style:region-right { region-content } |
| region-content = text-p* |
| presentation-notes = |
| element presentation:notes { |
| common-presentation-header-footer-attlist, |
| presentation-notes-attlist, |
| office-forms, |
| shape* |
| } |
| presentation-notes-attlist = |
| attribute style:page-layout-name { styleNameRef }? |
| & attribute draw:style-name { styleNameRef }? |
| style-font-face = |
| element style:font-face { |
| style-font-face-attlist, svg-font-face-src?, svg-definition-src? |
| } |
| style-font-face-attlist = |
| attribute svg:font-family { \string }? |
| & attribute svg:font-style { "normal" | "italic" | "oblique" }? |
| & attribute svg:font-variant { "normal" | "small-caps" }? |
| & attribute svg:font-weight { fontWeight }? |
| & attribute svg:font-stretch { |
| "normal" |
| | "ultra-condensed" |
| | "extra-condensed" |
| | "condensed" |
| | "semi-condensed" |
| | "semi-expanded" |
| | "expanded" |
| | "extra-expanded" |
| | "ultra-expanded" |
| }? |
| & attribute svg:font-size { positiveLength }? |
| & attribute svg:unicode-range { \string }? |
| & attribute svg:units-per-em { integer }? |
| & attribute svg:panose-1 { \string }? |
| & attribute svg:stemv { integer }? |
| & attribute svg:stemh { integer }? |
| & attribute svg:slope { integer }? |
| & attribute svg:cap-height { integer }? |
| & attribute svg:x-height { integer }? |
| & attribute svg:accent-height { integer }? |
| & attribute svg:ascent { integer }? |
| & attribute svg:descent { integer }? |
| & attribute svg:widths { \string }? |
| & attribute svg:bbox { \string }? |
| & attribute svg:ideographic { integer }? |
| & attribute svg:alphabetic { integer }? |
| & attribute svg:mathematical { integer }? |
| & attribute svg:hanging { integer }? |
| & attribute svg:v-ideographic { integer }? |
| & attribute svg:v-alphabetic { integer }? |
| & attribute svg:v-mathematical { integer }? |
| & attribute svg:v-hanging { integer }? |
| & attribute svg:underline-position { integer }? |
| & attribute svg:underline-thickness { integer }? |
| & attribute svg:strikethrough-position { integer }? |
| & attribute svg:strikethrough-thickness { integer }? |
| & attribute svg:overline-position { integer }? |
| & attribute svg:overline-thickness { integer }? |
| & attribute style:name { \string } |
| & attribute style:font-adornments { \string }? |
| & attribute style:font-family-generic { "roman" | "swiss" | "modern" | "decorative" | "script" | "system" }? |
| & attribute style:font-pitch { "fixed" | "variable" }? |
| & attribute style:font-charset { textEncoding }? |
| svg-font-face-src = |
| element svg:font-face-src { |
| (svg-font-face-uri | svg-font-face-name)+ |
| } |
| svg-font-face-uri = |
| element svg:font-face-uri { |
| common-svg-font-face-xlink-attlist, svg-font-face-format* |
| } |
| svg-font-face-format = |
| element svg:font-face-format { |
| attribute svg:string { \string }?, |
| empty |
| } |
| svg-font-face-name = |
| element svg:font-face-name { |
| attribute svg:name { \string }?, |
| empty |
| } |
| svg-definition-src = |
| element svg:definition-src { |
| common-svg-font-face-xlink-attlist, empty |
| } |
| common-svg-font-face-xlink-attlist = |
| attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:actuate { "onRequest" }? |
| number-number-style = |
| element number:number-style { |
| common-data-style-attlist, |
| style-text-properties?, |
| number-text?, |
| (any-number, number-text?)?, |
| style-map* |
| } |
| any-number = number-number | number-scientific-number | number-fraction |
| number-number = |
| element number:number { |
| number-number-attlist, |
| common-decimal-places-attlist, |
| common-number-attlist, |
| number-embedded-text* |
| } |
| number-number-attlist = |
| attribute number:decimal-replacement { \string }? |
| & attribute number:display-factor { double }? |
| number-embedded-text = |
| element number:embedded-text { number-embedded-text-attlist, text } |
| number-embedded-text-attlist = attribute number:position { integer } |
| number-scientific-number = |
| element number:scientific-number { |
| number-scientific-number-attlist, |
| common-decimal-places-attlist, |
| common-number-attlist, |
| empty |
| } |
| number-scientific-number-attlist = |
| attribute number:min-exponent-digits { integer }? |
| number-fraction = |
| element number:fraction { |
| number-fraction-attlist, common-number-attlist, empty |
| } |
| number-fraction-attlist = |
| attribute number:min-numerator-digits { integer }? |
| & attribute number:min-denominator-digits { integer }? |
| & attribute number:denominator-value { integer }? |
| number-currency-style = |
| element number:currency-style { |
| common-data-style-attlist, |
| common-auto-reorder-attlist, |
| style-text-properties?, |
| number-text?, |
| ((number-and-text, currency-symbol-and-text?) |
| | (currency-symbol-and-text, number-and-text?))?, |
| style-map* |
| } |
| currency-symbol-and-text = number-currency-symbol, number-text? |
| number-and-text = number-number, number-text? |
| number-currency-symbol = |
| element number:currency-symbol { |
| number-currency-symbol-attlist, text |
| } |
| number-currency-symbol-attlist = |
| attribute number:language { languageCode }?, |
| attribute number:country { countryCode }?, |
| attribute number:script { scriptCode }?, |
| attribute number:rfc-language-tag { language }? |
| number-percentage-style = |
| element number:percentage-style { |
| common-data-style-attlist, |
| style-text-properties?, |
| number-text?, |
| number-and-text?, |
| style-map* |
| } |
| number-date-style = |
| element number:date-style { |
| common-data-style-attlist, |
| common-auto-reorder-attlist, |
| common-format-source-attlist, |
| style-text-properties?, |
| number-text?, |
| (any-date, number-text?)+, |
| style-map* |
| } |
| any-date = |
| number-day |
| | number-month |
| | number-year |
| | number-era |
| | number-day-of-week |
| | number-week-of-year |
| | number-quarter |
| | number-hours |
| | number-am-pm |
| | number-minutes |
| | number-seconds |
| number-day = |
| element number:day { |
| number-day-attlist, common-calendar-attlist, empty |
| } |
| number-day-attlist = attribute number:style { "short" | "long" }? |
| number-month = |
| element number:month { |
| number-month-attlist, common-calendar-attlist, empty |
| } |
| number-month-attlist = |
| attribute number:textual { boolean }? |
| & attribute number:possessive-form { boolean }? |
| & attribute number:style { "short" | "long" }? |
| number-year = |
| element number:year { |
| number-year-attlist, common-calendar-attlist, empty |
| } |
| number-year-attlist = attribute number:style { "short" | "long" }? |
| number-era = |
| element number:era { |
| number-era-attlist, common-calendar-attlist, empty |
| } |
| number-era-attlist = attribute number:style { "short" | "long" }? |
| number-day-of-week = |
| element number:day-of-week { |
| number-day-of-week-attlist, common-calendar-attlist, empty |
| } |
| number-day-of-week-attlist = |
| attribute number:style { "short" | "long" }? |
| number-week-of-year = |
| element number:week-of-year { common-calendar-attlist, empty } |
| number-quarter = |
| element number:quarter { |
| number-quarter-attlist, common-calendar-attlist, empty |
| } |
| number-quarter-attlist = attribute number:style { "short" | "long" }? |
| number-time-style = |
| element number:time-style { |
| number-time-style-attlist, |
| common-data-style-attlist, |
| common-format-source-attlist, |
| style-text-properties?, |
| number-text?, |
| (any-time, number-text?)+, |
| style-map* |
| } |
| any-time = number-hours | number-am-pm | number-minutes | number-seconds |
| number-time-style-attlist = |
| attribute number:truncate-on-overflow { boolean }? |
| number-hours = element number:hours { number-hours-attlist, empty } |
| number-hours-attlist = attribute number:style { "short" | "long" }? |
| number-minutes = |
| element number:minutes { number-minutes-attlist, empty } |
| number-minutes-attlist = attribute number:style { "short" | "long" }? |
| number-seconds = |
| element number:seconds { number-seconds-attlist, empty } |
| number-seconds-attlist = |
| attribute number:style { "short" | "long" }? |
| & attribute number:decimal-places { integer }? |
| number-am-pm = element number:am-pm { empty } |
| number-boolean-style = |
| element number:boolean-style { |
| common-data-style-attlist, |
| style-text-properties?, |
| number-text?, |
| (number-boolean, number-text?)?, |
| style-map* |
| } |
| number-boolean = element number:boolean { empty } |
| number-text-style = |
| element number:text-style { |
| common-data-style-attlist, |
| style-text-properties?, |
| number-text?, |
| (number-text-content, number-text?)*, |
| style-map* |
| } |
| number-text = element number:text { text } |
| number-text-content = element number:text-content { empty } |
| common-data-style-attlist = |
| attribute style:name { styleName } |
| & attribute style:display-name { \string }? |
| & attribute number:language { languageCode }? |
| & attribute number:country { countryCode }? |
| & attribute number:script { scriptCode }? |
| & attribute number:rfc-language-tag { language }? |
| & attribute number:title { \string }? |
| & attribute style:volatile { boolean }? |
| & attribute number:transliteration-format { \string }? |
| & attribute number:transliteration-language { countryCode }? |
| & attribute number:transliteration-country { countryCode }? |
| & attribute number:transliteration-style { |
| "short" | "medium" | "long" |
| }? |
| common-auto-reorder-attlist = |
| attribute number:automatic-order { boolean }? |
| common-format-source-attlist = |
| attribute number:format-source { "fixed" | "language" }? |
| common-decimal-places-attlist = |
| attribute number:decimal-places { integer }? |
| common-number-attlist = |
| attribute number:min-integer-digits { integer }? |
| & attribute number:grouping { boolean }? |
| common-calendar-attlist = |
| attribute number:calendar { |
| "gregorian" |
| | "gengou" |
| | "ROC" |
| | "hanja_yoil" |
| | "hanja" |
| | "hijri" |
| | "jewish" |
| | "buddhist" |
| | \string |
| }? |
| text-linenumbering-configuration = |
| element text:linenumbering-configuration { |
| text-linenumbering-configuration-attlist, |
| text-linenumbering-separator? |
| } |
| text-linenumbering-configuration-attlist = |
| attribute text:number-lines { boolean }? |
| & common-num-format-attlist? |
| & attribute text:style-name { styleNameRef }? |
| & attribute text:increment { nonNegativeInteger }? |
| & attribute text:number-position { |
| "left" | "right" | "inner" | "outer" |
| }? |
| & attribute text:offset { nonNegativeLength }? |
| & attribute text:count-empty-lines { boolean }? |
| & attribute text:count-in-text-boxes { boolean }? |
| & attribute text:restart-on-page { boolean }? |
| text-linenumbering-separator = |
| element text:linenumbering-separator { |
| attribute text:increment { nonNegativeInteger }?, |
| text |
| } |
| text-notes-configuration = |
| element text:notes-configuration { text-notes-configuration-content } |
| text-notes-configuration-content = |
| text-note-class |
| & attribute text:citation-style-name { styleNameRef }? |
| & attribute text:citation-body-style-name { styleNameRef }? |
| & attribute text:default-style-name { styleNameRef }? |
| & attribute text:master-page-name { styleNameRef }? |
| & attribute text:start-value { nonNegativeInteger }? |
| & common-num-format-prefix-suffix-attlist |
| & common-num-format-attlist? |
| & attribute text:start-numbering-at { |
| "document" | "chapter" | "page" |
| }? |
| & attribute text:footnotes-position { |
| "text" | "page" | "section" | "document" |
| }? |
| & element text:note-continuation-notice-forward { text }? |
| & element text:note-continuation-notice-backward { text }? |
| text-bibliography-configuration = |
| element text:bibliography-configuration { |
| text-bibliography-configuration-attlist, text-sort-key* |
| } |
| text-bibliography-configuration-attlist = |
| attribute text:prefix { \string }? |
| & attribute text:suffix { \string }? |
| & attribute text:numbered-entries { boolean }? |
| & attribute text:sort-by-position { boolean }? |
| & attribute fo:language { languageCode }? |
| & attribute fo:country { countryCode }? |
| & attribute fo:script { scriptCode }? |
| & attribute style:rfc-language-tag { language }? |
| & attribute text:sort-algorithm { \string }? |
| text-sort-key = element text:sort-key { text-sort-key-attlist, empty } |
| text-sort-key-attlist = |
| attribute text:key { |
| "address" |
| | "annote" |
| | "author" |
| | "bibliography-type" |
| | "booktitle" |
| | "chapter" |
| | "custom1" |
| | "custom2" |
| | "custom3" |
| | "custom4" |
| | "custom5" |
| | "edition" |
| | "editor" |
| | "howpublished" |
| | "identifier" |
| | "institution" |
| | "isbn" |
| | "issn" |
| | "journal" |
| | "month" |
| | "note" |
| | "number" |
| | "organizations" |
| | "pages" |
| | "publisher" |
| | "report-type" |
| | "school" |
| | "series" |
| | "title" |
| | "url" |
| | "volume" |
| | "year" |
| }, |
| attribute text:sort-ascending { boolean }? |
| text-list-style = |
| element text:list-style { |
| text-list-style-attr, text-list-style-content* |
| } |
| text-list-style-attr = |
| attribute style:name { styleName } |
| & attribute style:display-name { \string }? |
| & attribute text:consecutive-numbering { boolean }? |
| text-list-style-content = |
| element text:list-level-style-number { |
| text-list-level-style-attr, |
| text-list-level-style-number-attr, |
| style-list-level-properties?, |
| style-text-properties? |
| } |
| | element text:list-level-style-bullet { |
| text-list-level-style-attr, |
| text-list-level-style-bullet-attr, |
| style-list-level-properties?, |
| style-text-properties? |
| } |
| | element text:list-level-style-image { |
| text-list-level-style-attr, |
| text-list-level-style-image-attr, |
| style-list-level-properties? |
| } |
| text-list-level-style-number-attr = |
| attribute text:style-name { styleNameRef }? |
| & common-num-format-attlist |
| & common-num-format-prefix-suffix-attlist |
| & attribute text:display-levels { positiveInteger }? |
| & attribute text:start-value { positiveInteger }? |
| text-list-level-style-bullet-attr = |
| attribute text:style-name { styleNameRef }? |
| & attribute text:bullet-char { character } |
| & common-num-format-prefix-suffix-attlist |
| & attribute text:bullet-relative-size { percent }? |
| text-list-level-style-image-attr = |
| common-draw-data-attlist | office-binary-data |
| text-list-level-style-attr = attribute text:level { positiveInteger } |
| text-outline-style = |
| element text:outline-style { |
| text-outline-style-attr, text-outline-level-style+ |
| } |
| text-outline-style-attr = attribute style:name { styleName } |
| text-outline-level-style = |
| element text:outline-level-style { |
| text-outline-level-style-attlist, |
| style-list-level-properties?, |
| style-text-properties? |
| } |
| text-outline-level-style-attlist = |
| attribute text:level { positiveInteger } |
| & attribute text:style-name { styleNameRef }? |
| & common-num-format-attlist |
| & common-num-format-prefix-suffix-attlist |
| & attribute text:display-levels { positiveInteger }? |
| & attribute text:start-value { positiveInteger }? |
| style-graphic-properties = |
| element style:graphic-properties { |
| style-graphic-properties-content-strict |
| } |
| style-graphic-properties-content-strict = |
| style-graphic-properties-attlist, |
| style-graphic-fill-properties-attlist, |
| style-graphic-properties-elements |
| style-drawing-page-properties = |
| element style:drawing-page-properties { |
| style-drawing-page-properties-content-strict |
| } |
| style-drawing-page-properties-content-strict = |
| style-graphic-fill-properties-attlist, |
| style-drawing-page-properties-attlist, |
| style-drawing-page-properties-elements |
| draw-gradient = |
| element draw:gradient { |
| common-draw-gradient-attlist, draw-gradient-attlist, empty |
| } |
| common-draw-gradient-attlist = |
| attribute draw:name { styleName }? |
| & attribute draw:display-name { \string }? |
| & attribute draw:style { gradient-style } |
| & attribute draw:cx { percent }? |
| & attribute draw:cy { percent }? |
| & attribute draw:angle { angle }? |
| & attribute draw:border { percent }? |
| gradient-style = |
| "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular" |
| draw-gradient-attlist = |
| attribute draw:start-color { color }? |
| & attribute draw:end-color { color }? |
| & attribute draw:start-intensity { zeroToHundredPercent }? |
| & attribute draw:end-intensity { zeroToHundredPercent }? |
| svg-linearGradient = |
| element svg:linearGradient { |
| common-svg-gradient-attlist, |
| attribute svg:x1 { coordinate | percent }?, |
| attribute svg:y1 { coordinate | percent }?, |
| attribute svg:x2 { coordinate | percent }?, |
| attribute svg:y2 { coordinate | percent }?, |
| svg-stop* |
| } |
| svg-radialGradient = |
| element svg:radialGradient { |
| common-svg-gradient-attlist, |
| attribute svg:cx { coordinate | percent }?, |
| attribute svg:cy { coordinate | percent }?, |
| attribute svg:r { coordinate | percent }?, |
| attribute svg:fx { coordinate | percent }?, |
| attribute svg:fy { coordinate | percent }?, |
| svg-stop* |
| } |
| svg-stop = |
| element svg:stop { |
| attribute svg:offset { double | percent }, |
| attribute svg:stop-color { color }?, |
| attribute svg:stop-opacity { double }? |
| } |
| common-svg-gradient-attlist = |
| attribute svg:gradientUnits { "objectBoundingBox" }? |
| & attribute svg:gradientTransform { \string }? |
| & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }? |
| & attribute draw:name { styleName } |
| & attribute draw:display-name { \string }? |
| draw-hatch = element draw:hatch { draw-hatch-attlist, empty } |
| draw-hatch-attlist = |
| attribute draw:name { styleName } |
| & attribute draw:display-name { \string }? |
| & attribute draw:style { "single" | "double" | "triple" } |
| & attribute draw:color { color }? |
| & attribute draw:distance { length }? |
| & attribute draw:rotation { angle }? |
| draw-fill-image = |
| element draw:fill-image { |
| draw-fill-image-attlist, |
| attribute xlink:type { "simple" }, |
| attribute xlink:href { anyIRI }, |
| attribute xlink:show { "embed" }?, |
| attribute xlink:actuate { "onLoad" }?, |
| empty |
| } |
| draw-fill-image-attlist = |
| attribute draw:name { styleName } |
| & attribute draw:display-name { \string }? |
| & attribute svg:width { length }? |
| & attribute svg:height { length }? |
| draw-opacity = |
| element draw:opacity { |
| common-draw-gradient-attlist, draw-opacity-attlist, empty |
| } |
| draw-opacity-attlist = |
| attribute draw:start { zeroToHundredPercent }?, |
| attribute draw:end { zeroToHundredPercent }? |
| draw-marker = |
| element draw:marker { |
| draw-marker-attlist, |
| common-draw-viewbox-attlist, |
| common-draw-path-data-attlist, |
| empty |
| } |
| draw-marker-attlist = |
| attribute draw:name { styleName } |
| & attribute draw:display-name { \string }? |
| draw-stroke-dash = |
| element draw:stroke-dash { draw-stroke-dash-attlist, empty } |
| draw-stroke-dash-attlist = |
| attribute draw:name { styleName } |
| & attribute draw:display-name { \string }? |
| & attribute draw:style { "rect" | "round" }? |
| & attribute draw:dots1 { integer }? |
| & attribute draw:dots1-length { length | percent }? |
| & attribute draw:dots2 { integer }? |
| & attribute draw:dots2-length { length | percent }? |
| & attribute draw:distance { length | percent }? |
| style-presentation-page-layout = |
| element style:presentation-page-layout { |
| attribute style:name { styleName }, |
| attribute style:display-name { \string }?, |
| presentation-placeholder* |
| } |
| presentation-placeholder = |
| element presentation:placeholder { |
| attribute presentation:object { presentation-classes }, |
| attribute svg:x { coordinate | percent }, |
| attribute svg:y { coordinate | percent }, |
| attribute svg:width { length | percent }, |
| attribute svg:height { length | percent }, |
| empty |
| } |
| style-page-layout-properties = |
| element style:page-layout-properties { |
| style-page-layout-properties-content-strict |
| } |
| style-page-layout-properties-content-strict = |
| style-page-layout-properties-attlist, |
| style-page-layout-properties-elements |
| style-page-layout-properties-attlist = |
| attribute fo:page-width { length }? |
| & attribute fo:page-height { length }? |
| & common-num-format-attlist? |
| & common-num-format-prefix-suffix-attlist |
| & attribute style:paper-tray-name { "default" | \string }? |
| & attribute style:print-orientation { "portrait" | "landscape" }? |
| & common-horizontal-margin-attlist |
| & common-vertical-margin-attlist |
| & common-margin-attlist |
| & common-border-attlist |
| & common-border-line-width-attlist |
| & common-padding-attlist |
| & common-shadow-attlist |
| & common-background-color-attlist |
| & attribute style:register-truth-ref-style-name { styleNameRef }? |
| & attribute style:print { |
| list { |
| ("headers" |
| | "grid" |
| | "annotations" |
| | "objects" |
| | "charts" |
| | "drawings" |
| | "formulas" |
| | "zero-values")* |
| } |
| }? |
| & attribute style:print-page-order { "ttb" | "ltr" }? |
| & attribute style:first-page-number { positiveInteger | "continue" }? |
| & attribute style:scale-to { percent }? |
| & attribute style:scale-to-pages { positiveInteger }? |
| & attribute style:table-centering { |
| "horizontal" | "vertical" | "both" | "none" |
| }? |
| & attribute style:footnote-max-height { length }? |
| & common-writing-mode-attlist |
| & attribute style:layout-grid-mode { "none" | "line" | "both" }? |
| & attribute style:layout-grid-standard-mode { boolean }? |
| & attribute style:layout-grid-base-height { length }? |
| & attribute style:layout-grid-ruby-height { length }? |
| & attribute style:layout-grid-lines { positiveInteger }? |
| & attribute style:layout-grid-base-width { length }? |
| & attribute style:layout-grid-color { color }? |
| & attribute style:layout-grid-ruby-below { boolean }? |
| & attribute style:layout-grid-print { boolean }? |
| & attribute style:layout-grid-display { boolean }? |
| & attribute style:layout-grid-snap-to { boolean }? |
| style-page-layout-properties-elements = |
| style-background-image & style-columns & style-footnote-sep |
| style-footnote-sep = |
| element style:footnote-sep { style-footnote-sep-attlist, empty }? |
| style-footnote-sep-attlist = |
| attribute style:width { length }?, |
| attribute style:rel-width { percent }?, |
| attribute style:color { color }?, |
| attribute style:line-style { lineStyle }?, |
| attribute style:adjustment { "left" | "center" | "right" }?, |
| attribute style:distance-before-sep { length }?, |
| attribute style:distance-after-sep { length }? |
| style-header-footer-properties = |
| element style:header-footer-properties { |
| style-header-footer-properties-content-strict |
| } |
| style-header-footer-properties-content-strict = |
| style-header-footer-properties-attlist, |
| style-header-footer-properties-elements |
| style-header-footer-properties-attlist = |
| attribute svg:height { length }? |
| & attribute fo:min-height { length }? |
| & common-horizontal-margin-attlist |
| & common-vertical-margin-attlist |
| & common-margin-attlist |
| & common-border-attlist |
| & common-border-line-width-attlist |
| & common-padding-attlist |
| & common-background-color-attlist |
| & common-shadow-attlist |
| & attribute style:dynamic-spacing { boolean }? |
| style-header-footer-properties-elements = style-background-image |
| |
| |
| |
| |
| |
| textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" } |
| lineStyle = |
| "none" |
| | "solid" |
| | "dotted" |
| | "dash" |
| | "long-dash" |
| | "dot-dash" |
| | "dot-dot-dash" |
| | "wave" |
| lineWidth = |
| "auto" |
| | "normal" |
| | "bold" |
| | "thin" |
| | "medium" |
| | "thick" |
| | positiveInteger |
| | percent |
| | positiveLength |
| fontWeight = |
| "normal" |
| | "bold" |
| | "100" |
| | "200" |
| | "300" |
| | "400" |
| | "500" |
| | "600" |
| | "700" |
| | "800" |
| | "900" |
| |
| common-text-align = |
| attribute fo:text-align { |
| "start" | "end" | "left" | "right" | "center" | "justify" |
| }? |
| style-tab-stops = element style:tab-stops { style-tab-stop* }? |
| style-tab-stop = |
| element style:tab-stop { style-tab-stop-attlist, empty } |
| style-tab-stop-attlist = |
| attribute style:position { length } |
| & (attribute style:type { "left" | "center" | "right" }? |
| | (attribute style:type { "char" }, |
| style-tab-stop-char-attlist)) |
| & attribute style:leader-type { "none" | "single" | "double" }? |
| & attribute style:leader-style { lineStyle }? |
| & attribute style:leader-width { lineWidth }? |
| & attribute style:leader-color { "font-color" | color }? |
| & attribute style:leader-text { character }? |
| & attribute style:leader-text-style { styleNameRef }? |
| style-tab-stop-char-attlist = attribute style:char { character } |
| style-drop-cap = |
| element style:drop-cap { style-drop-cap-attlist, empty }? |
| style-drop-cap-attlist = |
| attribute style:length { "word" | positiveInteger }? |
| & attribute style:lines { positiveInteger }? |
| & attribute style:distance { length }? |
| & attribute style:style-name { styleNameRef }? |
| common-horizontal-margin-attlist = |
| attribute fo:margin-left { length | percent }?, |
| attribute fo:margin-right { length | percent }? |
| common-vertical-margin-attlist = |
| attribute fo:margin-top { nonNegativeLength | percent }?, |
| attribute fo:margin-bottom { nonNegativeLength | percent }? |
| common-margin-attlist = |
| attribute fo:margin { nonNegativeLength | percent }? |
| common-break-attlist = |
| attribute fo:break-before { "auto" | "column" | "page" }?, |
| attribute fo:break-after { "auto" | "column" | "page" }? |
| common-background-color-attlist = |
| attribute fo:background-color { "transparent" | color }? |
| style-background-image = |
| element style:background-image { |
| style-background-image-attlist, |
| (common-draw-data-attlist | office-binary-data | empty) |
| }? |
| style-background-image-attlist = |
| attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? |
| & attribute style:position { |
| "left" |
| | "center" |
| | "right" |
| | "top" |
| | "bottom" |
| | list { horiBackPos, vertBackPos } |
| | list { vertBackPos, horiBackPos } |
| }? |
| & attribute style:filter-name { \string }? |
| & attribute draw:opacity { zeroToHundredPercent }? |
| horiBackPos = "left" | "center" | "right" |
| vertBackPos = "top" | "center" | "bottom" |
| common-border-attlist = |
| attribute fo:border { \string }?, |
| attribute fo:border-top { \string }?, |
| attribute fo:border-bottom { \string }?, |
| attribute fo:border-left { \string }?, |
| attribute fo:border-right { \string }? |
| common-border-line-width-attlist = |
| attribute style:border-line-width { borderWidths }?, |
| attribute style:border-line-width-top { borderWidths }?, |
| attribute style:border-line-width-bottom { borderWidths }?, |
| attribute style:border-line-width-left { borderWidths }?, |
| attribute style:border-line-width-right { borderWidths }? |
| borderWidths = list { positiveLength, positiveLength, positiveLength } |
| common-padding-attlist = |
| attribute fo:padding { nonNegativeLength }?, |
| attribute fo:padding-top { nonNegativeLength }?, |
| attribute fo:padding-bottom { nonNegativeLength }?, |
| attribute fo:padding-left { nonNegativeLength }?, |
| attribute fo:padding-right { nonNegativeLength }? |
| common-shadow-attlist = attribute style:shadow { "none" | \string }? |
| common-keep-with-next-attlist = |
| attribute fo:keep-with-next { "auto" | "always" }? |
| common-writing-mode-attlist = |
| attribute style:writing-mode { |
| "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page" |
| }? |
| common-page-number-attlist = |
| attribute style:page-number { positiveInteger | "auto" }? |
| common-background-transparency-attlist = |
| attribute style:background-transparency { zeroToHundredPercent }? |
| style-ruby-properties = |
| element style:ruby-properties { style-ruby-properties-content-strict } |
| style-ruby-properties-content-strict = |
| style-ruby-properties-attlist, style-ruby-properties-elements |
| style-ruby-properties-elements = empty |
| style-ruby-properties-attlist = |
| attribute style:ruby-position { "above" | "below" }? |
| & attribute style:ruby-align { |
| "left" |
| | "center" |
| | "right" |
| | "distribute-letter" |
| | "distribute-space" |
| }? |
| style-section-properties = |
| element style:section-properties { |
| style-section-properties-content-strict |
| } |
| style-section-properties-content-strict = |
| style-section-properties-attlist, style-section-properties-elements |
| style-section-properties-attlist = |
| common-background-color-attlist |
| & common-horizontal-margin-attlist |
| & attribute style:protect { boolean }? |
| & common-editable-attlist |
| & attribute text:dont-balance-text-columns { boolean }? |
| & common-writing-mode-attlist |
| style-section-properties-elements = |
| style-background-image & style-columns & text-notes-configuration* |
| style-columns = |
| element style:columns { |
| style-columns-attlist, style-column-sep?, style-column* |
| }? |
| style-columns-attlist = |
| attribute fo:column-count { positiveInteger } |
| & attribute fo:column-gap { length }? |
| style-column = element style:column { style-column-attlist } |
| style-column-attlist = |
| attribute style:rel-width { relativeLength } |
| & attribute fo:start-indent { length }? |
| & attribute fo:end-indent { length }? |
| & attribute fo:space-before { length }? |
| & attribute fo:space-after { length }? |
| style-column-sep = element style:column-sep { style-column-sep-attlist } |
| style-column-sep-attlist = |
| attribute style:style { |
| "none" | "solid" | "dotted" | "dashed" | "dot-dashed" |
| }? |
| & attribute style:width { length } |
| & attribute style:height { zeroToHundredPercent }? |
| & attribute style:vertical-align { "top" | "middle" | "bottom" }? |
| & attribute style:color { color }? |
| common-style-direction-attlist = |
| attribute style:direction { "ltr" | "ttb" }? |
| style-table-cell-properties-elements = style-background-image |
| common-rotation-angle-attlist = |
| attribute style:rotation-angle { angle }? |
| style-list-level-properties = |
| element style:list-level-properties { |
| style-list-level-properties-content-strict |
| } |
| style-list-level-properties-content-strict = |
| style-list-level-properties-attlist, |
| style-list-level-properties-elements |
| style-list-level-properties-attlist = |
| common-text-align |
| & attribute text:space-before { length }? |
| & attribute text:min-label-width { nonNegativeLength }? |
| & attribute text:min-label-distance { nonNegativeLength }? |
| & attribute style:font-name { \string }? |
| & attribute fo:width { positiveLength }? |
| & attribute fo:height { positiveLength }? |
| & common-vertical-rel-attlist |
| & common-vertical-pos-attlist |
| & attribute text:list-level-position-and-space-mode { |
| "label-width-and-position" | "label-alignment" |
| }? |
| style-list-level-properties-elements = style-list-level-label-alignment |
| style-list-level-label-alignment = |
| element style:list-level-label-alignment { |
| style-list-level-label-alignment-attlist, empty |
| }? |
| style-list-level-label-alignment-attlist = |
| attribute text:label-followed-by { "listtab" | "space" | "nothing" } |
| & attribute text:list-tab-stop-position { length }? |
| & attribute fo:text-indent { length }? |
| & attribute fo:margin-left { length }? |
| 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 }? |
| & attribute draw:fit-to-size { boolean }? |
| & 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 { zeroToHundredPercent }? |
| & 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 }? |
| & 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 }? |
| style-graphic-fill-properties-attlist = |
| attribute draw:fill { |
| "none" | "solid" | "bitmap" | "gradient" | "hatch" |
| }? |
| & attribute draw:fill-color { color }? |
| & attribute draw:secondary-fill-color { color }? |
| & attribute draw:fill-gradient-name { styleNameRef }? |
| & attribute draw:gradient-step-count { nonNegativeInteger }? |
| & attribute draw:fill-hatch-name { styleNameRef }? |
| & attribute draw:fill-hatch-solid { boolean }? |
| & attribute draw:fill-image-name { styleNameRef }? |
| & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? |
| & attribute draw:fill-image-width { length | percent }? |
| & attribute draw:fill-image-height { length | percent }? |
| & attribute draw:fill-image-ref-point-x { percent }? |
| & attribute draw:fill-image-ref-point-y { percent }? |
| & attribute draw:fill-image-ref-point { |
| "top-left" |
| | "top" |
| | "top-right" |
| | "left" |
| | "center" |
| | "right" |
| | "bottom-left" |
| | "bottom" |
| | "bottom-right" |
| }? |
| & attribute draw:tile-repeat-offset { |
| list { zeroToHundredPercent, ("horizontal" | "vertical") } |
| }? |
| & attribute draw:opacity { zeroToHundredPercent }? |
| & attribute draw:opacity-name { styleNameRef }? |
| & attribute svg:fill-rule { "nonzero" | "evenodd" }? |
| style-graphic-properties-elements = |
| text-list-style? & style-background-image & style-columns |
| common-vertical-pos-attlist = |
| attribute style:vertical-pos { |
| "top" | "middle" | "bottom" | "from-top" | "below" |
| }?, |
| attribute svg:y { coordinate }? |
| common-vertical-rel-attlist = |
| attribute style:vertical-rel { |
| "page" |
| | "page-content" |
| | "frame" |
| | "frame-content" |
| | "paragraph" |
| | "paragraph-content" |
| | "char" |
| | "line" |
| | "baseline" |
| | "text" |
| }? |
| common-editable-attlist = attribute style:editable { boolean }? |
| horizontal-mirror = |
| "horizontal" | "horizontal-on-odd" | "horizontal-on-even" |
| clipShape = |
| xsd:string { |
| pattern = |
| "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)" |
| } |
| nonNegativePixelLength = |
| xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" } |
| style-chart-properties = |
| element style:chart-properties { |
| style-chart-properties-content-strict |
| } |
| style-chart-properties-content-strict = |
| style-chart-properties-attlist, style-chart-properties-elements |
| style-chart-properties-elements = empty |
| style-chart-properties-attlist = |
| attribute chart:scale-text { boolean }? |
| & attribute chart:three-dimensional { boolean }? |
| & attribute chart:deep { boolean }? |
| & attribute chart:right-angled-axes { boolean }? |
| & (attribute chart:symbol-type { "none" } |
| | attribute chart:symbol-type { "automatic" } |
| | (attribute chart:symbol-type { "named-symbol" }, |
| attribute chart:symbol-name { |
| "square" |
| | "diamond" |
| | "arrow-down" |
| | "arrow-up" |
| | "arrow-right" |
| | "arrow-left" |
| | "bow-tie" |
| | "hourglass" |
| | "circle" |
| | "star" |
| | "x" |
| | "plus" |
| | "asterisk" |
| | "horizontal-bar" |
| | "vertical-bar" |
| }) |
| | (attribute chart:symbol-type { "image" }, |
| element chart:symbol-image { |
| attribute xlink:href { anyIRI } |
| }) |
| | empty) |
| & attribute chart:symbol-width { nonNegativeLength }? |
| & attribute chart:symbol-height { nonNegativeLength }? |
| & attribute chart:sort-by-x-values { boolean }? |
| & attribute chart:vertical { boolean }? |
| & attribute chart:connect-bars { boolean }? |
| & attribute chart:gap-width { integer }? |
| & attribute chart:overlap { integer }? |
| & attribute chart:group-bars-per-axis { boolean }? |
| & attribute chart:japanese-candle-stick { boolean }? |
| & attribute chart:interpolation { |
| "none" | "cubic-spline" | "b-spline" |
| }? |
| & attribute chart:spline-order { positiveInteger }? |
| & attribute chart:spline-resolution { positiveInteger }? |
| & attribute chart:pie-offset { nonNegativeInteger }? |
| & attribute chart:angle-offset { angle }? |
| & attribute chart:hole-size { percent }? |
| & attribute chart:lines { boolean }? |
| & attribute chart:solid-type { |
| "cuboid" | "cylinder" | "cone" | "pyramid" |
| }? |
| & attribute chart:stacked { boolean }? |
| & attribute chart:percentage { boolean }? |
| & attribute chart:treat-empty-cells { |
| "use-zero" | "leave-gap" | "ignore" |
| }? |
| & attribute chart:link-data-style-to-source { boolean }? |
| & attribute chart:logarithmic { boolean }? |
| & attribute chart:maximum { double }? |
| & attribute chart:minimum { double }? |
| & attribute chart:origin { double }? |
| & attribute chart:interval-major { double }? |
| & attribute chart:interval-minor-divisor { positiveInteger }? |
| & attribute chart:tick-marks-major-inner { boolean }? |
| & attribute chart:tick-marks-major-outer { boolean }? |
| & attribute chart:tick-marks-minor-inner { boolean }? |
| & attribute chart:tick-marks-minor-outer { boolean }? |
| & attribute chart:reverse-direction { boolean }? |
| & attribute chart:display-label { boolean }? |
| & attribute chart:text-overlap { boolean }? |
| & attribute text:line-break { boolean }? |
| & attribute chart:label-arrangement { |
| "side-by-side" | "stagger-even" | "stagger-odd" |
| }? |
| & common-style-direction-attlist |
| & common-rotation-angle-attlist |
| & attribute chart:data-label-number { |
| "none" | "value" | "percentage" | "value-and-percentage" |
| }? |
| & attribute chart:data-label-text { boolean }? |
| & attribute chart:data-label-symbol { boolean }? |
| & element chart:label-separator { text-p }? |
| & attribute chart:label-position { labelPositions }? |
| & attribute chart:label-position-negative { labelPositions }? |
| & attribute chart:visible { boolean }? |
| & attribute chart:auto-position { boolean }? |
| & attribute chart:auto-size { boolean }? |
| & attribute chart:mean-value { boolean }? |
| & attribute chart:error-category { |
| "none" |
| | "variance" |
| | "standard-deviation" |
| | "percentage" |
| | "error-margin" |
| | "constant" |
| | "standard-error" |
| | "cell-range" |
| }? |
| & attribute chart:error-percentage { double }? |
| & attribute chart:error-margin { double }? |
| & attribute chart:error-lower-limit { double }? |
| & attribute chart:error-upper-limit { double }? |
| & attribute chart:error-upper-indicator { boolean }? |
| & attribute chart:error-lower-indicator { boolean }? |
| & attribute chart:error-lower-range { cellRangeAddressList }? |
| & attribute chart:error-upper-range { cellRangeAddressList }? |
| & attribute chart:series-source { "columns" | "rows" }? |
| & attribute chart:regression-type { |
| "none" | "linear" | "logarithmic" | "exponential" | "power" |
| }? |
| & attribute chart:axis-position { "start" | "end" | double }? |
| & attribute chart:axis-label-position { |
| "near-axis" |
| | "near-axis-other-side" |
| | "outside-start" |
| | "outside-end" |
| }? |
| & attribute chart:tick-mark-position { |
| "at-labels" | "at-axis" | "at-labels-and-axis" |
| }? |
| & attribute chart:include-hidden-cells { boolean }? |
| labelPositions = |
| "avoid-overlap" |
| | "center" |
| | "top" |
| | "top-right" |
| | "right" |
| | "bottom-right" |
| | "bottom" |
| | "bottom-left" |
| | "left" |
| | "top-left" |
| | "inside" |
| | "outside" |
| | "near-origin" |
| style-drawing-page-properties-attlist = |
| attribute presentation:transition-type { |
| "manual" | "automatic" | "semi-automatic" |
| }? |
| & attribute presentation:transition-style { |
| "none" |
| | "fade-from-left" |
| | "fade-from-top" |
| | "fade-from-right" |
| | "fade-from-bottom" |
| | "fade-from-upperleft" |
| | "fade-from-upperright" |
| | "fade-from-lowerleft" |
| | "fade-from-lowerright" |
| | "move-from-left" |
| | "move-from-top" |
| | "move-from-right" |
| | "move-from-bottom" |
| | "move-from-upperleft" |
| | "move-from-upperright" |
| | "move-from-lowerleft" |
| | "move-from-lowerright" |
| | "uncover-to-left" |
| | "uncover-to-top" |
| | "uncover-to-right" |
| | "uncover-to-bottom" |
| | "uncover-to-upperleft" |
| | "uncover-to-upperright" |
| | "uncover-to-lowerleft" |
| | "uncover-to-lowerright" |
| | "fade-to-center" |
| | "fade-from-center" |
| | "vertical-stripes" |
| | "horizontal-stripes" |
| | "clockwise" |
| | "counterclockwise" |
| | "open-vertical" |
| | "open-horizontal" |
| | "close-vertical" |
| | "close-horizontal" |
| | "wavyline-from-left" |
| | "wavyline-from-top" |
| | "wavyline-from-right" |
| | "wavyline-from-bottom" |
| | "spiralin-left" |
| | "spiralin-right" |
| | "spiralout-left" |
| | "spiralout-right" |
| | "roll-from-top" |
| | "roll-from-left" |
| | "roll-from-right" |
| | "roll-from-bottom" |
| | "stretch-from-left" |
| | "stretch-from-top" |
| | "stretch-from-right" |
| | "stretch-from-bottom" |
| | "vertical-lines" |
| | "horizontal-lines" |
| | "dissolve" |
| | "random" |
| | "vertical-checkerboard" |
| | "horizontal-checkerboard" |
| | "interlocking-horizontal-left" |
| | "interlocking-horizontal-right" |
| | "interlocking-vertical-top" |
| | "interlocking-vertical-bottom" |
| | "fly-away" |
| | "open" |
| | "close" |
| | "melt" |
| }? |
| & attribute presentation:transition-speed { presentationSpeeds }? |
| & attribute smil:type { \string }? |
| & attribute smil:subtype { \string }? |
| & attribute smil:direction { "forward" | "reverse" }? |
| & attribute smil:fadeColor { color }? |
| & attribute presentation:duration { duration }? |
| & attribute presentation:visibility { "visible" | "hidden" }? |
| & attribute draw:background-size { "full" | "border" }? |
| & attribute presentation:background-objects-visible { boolean }? |
| & attribute presentation:background-visible { boolean }? |
| & attribute presentation:display-header { boolean }? |
| & attribute presentation:display-footer { boolean }? |
| & attribute presentation:display-page-number { boolean }? |
| & attribute presentation:display-date-time { boolean }? |
| style-drawing-page-properties-elements = presentation-sound? |
| \string = xsd:string |
| date = xsd:date |
| time = xsd:time |
| dateTime = xsd:dateTime |
| duration = xsd:duration |
| integer = xsd:integer |
| nonNegativeInteger = xsd:nonNegativeInteger |
| positiveInteger = xsd:positiveInteger |
| double = xsd:double |
| anyURI = xsd:anyURI |
| base64Binary = xsd:base64Binary |
| ID = xsd:ID |
| IDREF = xsd:IDREF |
| IDREFS = xsd:IDREFS |
| NCName = xsd:NCName |
| boolean = "true" | "false" |
| dateOrDateTime = xsd:date | xsd:dateTime |
| timeOrDateTime = xsd:time | xsd:dateTime |
| language = xsd:language |
| countryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } |
| languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" } |
| scriptCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } |
| character = xsd:string { length = "1" } |
| length = |
| xsd:string { |
| pattern = |
| "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" |
| } |
| nonNegativeLength = |
| xsd:string { |
| pattern = |
| "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" |
| } |
| positiveLength = |
| xsd:string { |
| pattern = |
| "([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))" |
| } |
| percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" } |
| zeroToHundredPercent = |
| xsd:string { |
| pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" |
| } |
| signedZeroToHundredPercent = |
| xsd:string { |
| pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" |
| } |
| relativeLength = xsd:string { pattern = "[0-9]+\*" } |
| coordinate = length |
| distance = length |
| color = xsd:string { pattern = "#[0-9a-fA-F]{6}" } |
| angle = xsd:string |
| CURIE = |
| xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" } |
| CURIEs = list { CURIE+ } |
| SafeCURIE = |
| xsd:string { |
| pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]" |
| minLength = "3" |
| } |
| URIorSafeCURIE = anyURI | SafeCURIE |
| styleName = xsd:NCName |
| styleNameRef = xsd:NCName | empty |
| styleNameRefs = list { xsd:NCName* } |
| variableName = xsd:string |
| targetFrameName = "_self" | "_blank" | "_parent" | "_top" | \string |
| valueType = |
| "float" |
| | "time" |
| | "date" |
| | "percentage" |
| | "currency" |
| | "boolean" |
| | "string" |
| points = |
| xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" } |
| pathData = xsd:string |
| vector3D = |
| xsd:string { |
| pattern = |
| "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)" |
| } |
| namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } |
| anyIRI = |
| xsd:anyURI |
| >> dc:description [ |
| "An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3." |
| ] |
| anyAttListOrElements = |
| attribute * { text }*, |
| anyElements |
| anyElements = |
| element * { |
| mixed { anyAttListOrElements } |
| }* |