0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-22 18:10:43 +00:00
org-mode/contrib/odt/etc/schema/od-schema-v1.1.rnc
Bastien Guerry 63b8ecb4ea Add Jambunathan's odt exporter in contrib/.
This adds these new files:

contrib/lisp/org-lparse.el
contrib/lisp/org-odt.el
contrib/lisp/org-xhtml.el
contrib/odt/BasicODConverter/BasicODConverter-0.8.0.oxt
contrib/odt/BasicODConverter/Filters.bas
contrib/odt/BasicODConverter/Main.bas
contrib/odt/OASIS/OpenDocument-schema-v1.1.rng
contrib/odt/OASIS/OpenDocument-v1.2-cs01-manifest-schema.rng
contrib/odt/OASIS/OpenDocument-v1.2-cs01-schema.rng
contrib/odt/README.org
contrib/odt/etc/schema/od-manifest-schema-v1.2-cs01.rnc
contrib/odt/etc/schema/od-schema-v1.1.rnc
contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc
contrib/odt/etc/schema/schemas.xml
contrib/odt/styles/OrgOdtAutomaticStyles.xml
contrib/odt/styles/OrgOdtStyles.xml

Notes:

contrib/lisp/org-xhtml.el is meant to be merged at some point with
lisp/org-html.el, to avoid code redundancies.

The feature as a whole is meant to move to Org's core when things
are tested and stable enough.

Thanks a lot to Jambunathan for this great contribution and for
his patience!
2011-07-01 11:12:19 +02:00

6445 lines
221 KiB
Plaintext

# OASIS OpenDocument v1.1
# OASIS Standard, 1 Feb 2007
# Relax-NG Schema
#
# $Id$
#
# © 2002-2007 OASIS Open
# © 1999-2007 Sun Microsystems, Inc.
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
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 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 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 xlink = "http://www.w3.org/1999/xlink"
office-process-content =
[ a:defaultValue = "true" ]
attribute office:process-content { boolean }?
start =
office-document
| office-document-content
| office-document-styles
| office-document-meta
| office-document-settings
office-document =
element office:document {
office-document-attrs,
office-document-common-attrs,
office-meta,
office-settings,
office-scripts,
office-font-face-decls,
office-styles,
office-automatic-styles,
office-master-styles,
office-body
}
office-document-content =
element office:document-content {
office-document-common-attrs,
office-scripts,
office-font-face-decls,
office-automatic-styles,
office-body
}
office-document-styles =
element office:document-styles {
office-document-common-attrs,
office-font-face-decls,
office-styles,
office-automatic-styles,
office-master-styles
}
office-document-meta =
element office:document-meta {
office-document-common-attrs, office-meta
}
office-document-settings =
element office:document-settings {
office-document-common-attrs, office-settings
}
office-document-common-attrs &= attribute office:version { \string }?
office-document-attrs &= attribute office:mimetype { \string }
office-meta = element office:meta { office-meta-content }?
office-meta-content = anyElements
office-meta-content-strict = office-meta-data*
office-body = element office:body { office-body-content }
office-body-content |=
element office:text {
office-text-attlist,
office-text-content-prelude,
office-text-content-main*,
office-text-content-epilogue
}
office-text-content-prelude =
office-forms, text-tracked-changes, text-decls, table-decls
office-text-content-main =
text-content*
| (text-page-sequence, (draw-a | shape)*)
text-content =
text-h
| text-p
| text-list
| text-numbered-paragraph
| table-table
| draw-a
| text-section
| text-soft-page-break
| text-table-of-content
| text-illustration-index
| text-table-index
| text-object-index
| text-user-index
| text-alphabetical-index
| text-bibliography
| shape
| change-marks
office-text-content-epilogue = table-functions
office-text-attlist &=
[ a:defaultValue = "false" ] attribute text:global { boolean }?
office-text-attlist &=
[ a:defaultValue = "false" ]
attribute text:use-soft-page-breaks { boolean }?
office-body-content |=
element office:drawing {
office-drawing-attlist,
office-drawing-content-prelude,
office-drawing-content-main,
office-drawing-content-epilogue
}
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-body-content |=
element office:presentation {
office-presentation-attlist,
office-presentation-content-prelude,
office-presentation-content-main,
office-presentation-content-epilogue
}
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-body-content |=
element office:spreadsheet {
office-spreadsheet-attlist,
office-spreadsheet-content-prelude,
office-spreadsheet-content-main,
office-spreadsheet-content-epilogue
}
office-spreadsheet-content-prelude =
table-tracked-changes?, text-decls, table-decls
table-decls =
table-calculation-settings?,
table-content-validations?,
table-label-ranges?
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-body-content |=
element office:chart {
office-chart-attlist,
office-chart-content-prelude,
office-chart-content-main,
office-chart-content-epilogue
}
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-body-content |=
element office:image {
office-image-attlist,
office-image-content-prelude,
office-image-content-main,
office-image-content-epilogue
}
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 }
config-config-item-attlist &=
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 }
office-scripts =
element office:scripts { office-script*, office-event-listeners? }?
office-script =
element office:script {
office-script-attlist,
mixed { anyElements }
}
office-script-attlist = attribute script:language { \string }
office-font-face-decls =
element office:font-face-decls { style-font-face* }?
office-styles =
element office:styles {
styles
& style-default-style*
& text-outline-style?
& text-notes-configuration*
& text-bibliography-configuration?
& text-linenumbering-configuration?
& draw-gradient*
& svg-linearGradient*
& svg-radialGradient*
& draw-hatch*
& draw-fill-image*
& draw-marker*
& draw-stroke-dash*
& draw-opacity*
& style-presentation-page-layout*
}?
office-automatic-styles =
element office:automatic-styles { styles & style-page-layout* }?
office-master-styles =
element office:master-styles {
style-master-page* & style-handout-master? & draw-layer-set?
}?
styles =
style-style*
& text-list-style*
& number-number-style*
& number-currency-style*
& number-percentage-style*
& number-date-style*
& number-time-style*
& number-boolean-style*
& number-text-style*
office-meta-data |= element meta:generator { \string }
office-meta-data |= element dc:title { \string }
office-meta-data |= element dc:description { \string }
office-meta-data |= element dc:subject { \string }
office-meta-data |= element meta:keyword { \string }
office-meta-data |= element meta:initial-creator { \string }
office-meta-data |= dc-creator
dc-creator = element dc:creator { \string }
office-meta-data |= element meta:printed-by { \string }
office-meta-data |= element meta:creation-date { dateTime }
office-meta-data |= dc-date
dc-date = element dc:date { dateTime }
office-meta-data |= element meta:print-date { dateTime }
office-meta-data |=
element meta:template {
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?,
attribute xlink:title { \string }?,
attribute meta:date { dateTime }?
}
office-meta-data |=
element meta:auto-reload {
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "replace" ] attribute xlink:show { "replace" }?,
[ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?,
attribute xlink:href { anyURI }?,
attribute meta:delay { duration }?
}
office-meta-data |=
element meta:hyperlink-behaviour {
attribute office:target-frame-name { targetFrameName }?,
attribute xlink:show { "new" | "replace" }?
}
office-meta-data |= element dc:language { language }
office-meta-data |= element meta:editing-cycles { nonNegativeInteger }
office-meta-data |= element meta:editing-duration { duration }
office-meta-data |=
element meta:document-statistic {
attribute meta:page-count { nonNegativeInteger }?,
attribute meta:table-count { nonNegativeInteger }?,
attribute meta:draw-count { nonNegativeInteger }?,
attribute meta:image-count { nonNegativeInteger }?,
attribute meta:ole-object-count { nonNegativeInteger }?,
attribute meta:object-count { nonNegativeInteger }?,
attribute meta:paragraph-count { nonNegativeInteger }?,
attribute meta:word-count { nonNegativeInteger }?,
attribute meta:character-count { nonNegativeInteger }?,
attribute frame-count { nonNegativeInteger }?,
attribute sentence-count { nonNegativeInteger }?,
attribute syllable-count { nonNegativeInteger }?,
attribute non-whitespace-character-count { nonNegativeInteger }?,
attribute meta:row-count { nonNegativeInteger }?,
attribute meta:cell-count { nonNegativeInteger }?
}
office-meta-data |=
element meta:user-defined {
attribute meta:name { \string },
((attribute meta:value-type { "float" },
double)
| (attribute meta:value-type { "date" },
dateOrDateTime)
| (attribute meta:value-type { "time" },
duration)
| (attribute meta:value-type { "boolean" },
boolean)
| (attribute meta:value-type { "string" },
\string)
| text)
}
text-h =
element text:h {
heading-attrs, paragraph-attrs, text-number?, paragraph-content*
}
heading-attrs &= attribute text:outline-level { positiveInteger }
heading-attrs &=
[ a:defaultValue = "false" ]
attribute text:restart-numbering { boolean }?
heading-attrs &= attribute text:start-value { nonNegativeInteger }?
heading-attrs &=
[ a:defaultValue = "false" ]
attribute text:is-list-header { boolean }?
text-number = element text:number { \string }
text-p = element text:p { paragraph-attrs, paragraph-content* }
paragraph-attrs =
attribute text:style-name { styleNameRef }?,
attribute text:class-names { styleNameRefs }?,
attribute text:cond-style-name { styleNameRef }?
paragraph-attrs &= text-id?
text-page-sequence = element text:page-sequence { text-page+ }
text-page = element text:page { text-page-attlist, empty }
text-page-attlist = attribute text:master-page-name { styleNameRef }
text-list =
element text:list {
text-list-attr, text-list-header?, text-list-item*
}
text-list-attr &= attribute text:style-name { styleNameRef }?
text-list-attr &= attribute text:continue-numbering { boolean }?
text-list-item =
element text:list-item { text-list-item-attr, text-list-item-content }
text-list-item-content =
text-number?, (text-p | text-h | text-list | text-soft-page-break)*
text-list-item-attr &=
attribute text:start-value { nonNegativeInteger }?
text-list-header = element text:list-header { text-list-item-content }
text-numbered-paragraph =
element text:numbered-paragraph {
text-numbered-paragraph-attr, text-number?, (text-p | text-h)
}
text-numbered-paragraph-attr &=
[ a:defaultValue = "1" ] attribute text:level { positiveInteger }?
text-numbered-paragraph-attr &= text-list-attr
text-numbered-paragraph-attr &= text-list-item-attr
text-section =
element text:section {
text-section-attr,
(text-section-source | text-section-source-dde | empty),
text-content*
}
text-section-attr &= sectionAttr
sectionAttr &= attribute text:style-name { styleNameRef }?
sectionAttr &= attribute text:name { \string }
sectionAttr &= attribute text:protected { boolean }?
sectionAttr &= attribute text:protection-key { \string }?
text-section-attr &=
attribute text:display { "true" | "none" }
| (attribute text:display { "condition" },
attribute text:condition { \string })
| empty
text-section-source =
element text:section-source { text-section-source-attr }
text-section-source-attr &=
(attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?)?
text-section-source-attr &= attribute text:section-name { \string }?
text-section-source-attr &= attribute text:filter-name { \string }?
text-section-source-dde = office-dde-source
text-tracked-changes =
element text:tracked-changes {
text-tracked-changes-attr, text-changed-region*
}?
text-tracked-changes-attr &=
[ a:defaultValue = "true" ] 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 text:id { ID }
text-changed-region-content |=
element text:insertion { office-change-info }
text-changed-region-content |=
element text:deletion { office-change-info, text-content* }
text-changed-region-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-soft-page-break = element text:soft-page-break { empty }
text-decls =
element text:variable-decls { text-variable-decl* }?,
element text:sequence-decls { text-sequence-decl* }?,
element text:user-field-decls { text-user-field-decl* }?,
element text:dde-connection-decls { text-dde-connection-decl* }?,
text-alphabetical-index-auto-mark-file?
paragraph-content |= text
paragraph-content |=
element text:s {
attribute text:c { nonNegativeInteger }?
}
paragraph-content |= element text:tab { text-tab-attr }
text-tab-attr = attribute text:tab-ref { nonNegativeInteger }?
paragraph-content |= element text:line-break { empty }
paragraph-content |= text-soft-page-break
paragraph-content |=
element text:span {
attribute text:style-name { styleNameRef }?,
attribute text:class-names { styleNameRefs }?,
paragraph-content*
}
paragraph-content |=
element text:a {
text-a-attlist, office-event-listeners?, paragraph-content*
}
text-a-attlist &= attribute office:name { \string }?
text-a-attlist &= attribute office:title { \string }?
text-a-attlist &=
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?
text-a-attlist &=
attribute office:target-frame-name { targetFrameName }?,
attribute xlink:show { "new" | "replace" }?
text-a-attlist &=
attribute text:style-name { styleNameRef }?,
attribute text:visited-style-name { styleNameRef }?
paragraph-content |=
element text:bookmark {
attribute text:name { \string }
}
| element text:bookmark-start {
attribute text:name { \string }
}
| element text:bookmark-end {
attribute text:name { \string }
}
paragraph-content |=
element text:reference-mark {
attribute text:name { \string }
}
paragraph-content |=
element text:reference-mark-start {
attribute text:name { \string }
}
| element text:reference-mark-end {
attribute text:name { \string }
}
paragraph-content |=
element text:note {
text-note-class,
attribute text:id { \string }?,
element text:note-citation {
attribute text:label { \string }?,
text
},
element text:note-body { text-content* }
}
text-note-class = attribute text:note-class { "footnote" | "endnote" }
paragraph-content |=
element text:ruby {
attribute text:style-name { styleNameRef }?,
element text:ruby-base { paragraph-content },
element text:ruby-text {
attribute text:style-name { styleNameRef }?,
text
}
}
paragraph-content |= office-annotation
paragraph-content |= change-marks
paragraph-content |= shape | draw-a
paragraph-content |= element text:date { text-date-attlist, text }
text-date-attlist &=
common-field-fixed-attlist & common-field-data-style-name-attlist
text-date-attlist &= attribute text:date-value { dateOrDateTime }?
text-date-attlist &= attribute text:date-adjust { duration }?
paragraph-content |= element text:time { text-time-attlist, text }
text-time-attlist &=
common-field-fixed-attlist & common-field-data-style-name-attlist
text-time-attlist &= attribute text:time-value { timeOrDateTime }?
text-time-attlist &= attribute text:time-adjust { duration }?
paragraph-content |=
element text:page-number { text-page-number-attlist, text }
text-page-number-attlist &=
common-field-num-format-attlist & common-field-fixed-attlist
text-page-number-attlist &= attribute text:page-adjust { integer }?
text-page-number-attlist &=
attribute text:select-page { "previous" | "current" | "next" }?
paragraph-content |=
element text:page-continuation {
text-page-continuation-attlist, text
}
text-page-continuation-attlist &=
attribute text:select-page { "previous" | "next" }
text-page-continuation-attlist &=
attribute text:string-value { \string }?
paragraph-content |=
element text:sender-firstname { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-lastname { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-initials { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-title { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-position { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-email { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-phone-private { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-fax { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-company { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-phone-work { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-street { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-city { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-postal-code { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-country { common-field-fixed-attlist, text }
paragraph-content |=
element text:sender-state-or-province {
common-field-fixed-attlist, text
}
paragraph-content |=
element text:author-name { common-field-fixed-attlist, text }
paragraph-content |=
element text:author-initials { common-field-fixed-attlist, text }
paragraph-content |= element text:chapter { text-chapter-attlist, text }
text-chapter-attlist &=
attribute text:display {
"name"
| "number"
| "number-and-name"
| "plain-number-and-name"
| "plain-number"
}
text-chapter-attlist &=
attribute text:outline-level { nonNegativeInteger }
paragraph-content |=
element text:file-name { text-file-name-attlist, text }
text-file-name-attlist &=
attribute text:display {
"full" | "path" | "name" | "name-and-extension"
}?
text-file-name-attlist &= common-field-fixed-attlist
paragraph-content |=
element text:template-name { text-template-name-attlist, text }
text-template-name-attlist =
attribute text:display {
"full" | "path" | "name" | "name-and-extension" | "area" | "title"
}?
paragraph-content |= element text:sheet-name { text }
text-variable-decl =
element text:variable-decl {
common-field-name-attlist, common-value-type-attlist
}
paragraph-content |=
element text:variable-set {
(common-field-name-attlist
& common-field-formula-attlist
& common-value-and-type-attlist
& common-field-display-value-none-attlist
& common-field-data-style-name-attlist),
text
}
paragraph-content |=
element text:variable-get {
(common-field-name-attlist
& common-field-display-value-formula-attlist
& common-field-data-style-name-attlist),
text
}
paragraph-content |=
element text:variable-input {
(common-field-name-attlist
& common-field-description-attlist
& common-value-type-attlist
& common-field-display-value-none-attlist
& common-field-data-style-name-attlist),
text
}
text-user-field-decl =
element text:user-field-decl {
common-field-name-attlist,
common-field-formula-attlist?,
common-value-and-type-attlist
}
paragraph-content |=
element text:user-field-get {
(common-field-name-attlist
& common-field-display-value-formula-none-attlist
& common-field-data-style-name-attlist),
text
}
paragraph-content |=
element text:user-field-input {
(common-field-name-attlist
& common-field-description-attlist
& common-field-data-style-name-attlist),
text
}
text-sequence-decl =
element text:sequence-decl { text-sequence-decl-attlist }
text-sequence-decl-attlist &= common-field-name-attlist
text-sequence-decl-attlist &=
attribute text:display-outline-level { nonNegativeInteger }
text-sequence-decl-attlist &=
attribute text:separation-character { character }?
paragraph-content |=
element text:sequence {
(common-field-name-attlist
& common-field-formula-attlist
& common-field-num-format-attlist
& text-sequence-ref-name),
text
}
text-sequence-ref-name = attribute text:ref-name { \string }?
paragraph-content |=
element text:expression {
(common-field-formula-attlist
& common-value-and-type-attlist?
& common-field-display-value-formula-attlist
& common-field-data-style-name-attlist),
text
}
paragraph-content |=
element text:text-input { common-field-description-attlist, text }
paragraph-content |=
element text:initial-creator { common-field-fixed-attlist, text }
paragraph-content |=
element text:creation-date {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:date-value { dateOrDateTime }?),
text
}
paragraph-content |=
element text:creation-time {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:time-value { timeOrDateTime }?),
text
}
paragraph-content |=
element text:description { common-field-fixed-attlist, text }
paragraph-content |=
element text:user-defined {
(common-field-fixed-attlist
& attribute text:name { \string }
& common-field-data-style-name-attlist
& attribute office:value { double }?
& attribute office:date-value { dateOrDateTime }?
& attribute office:time-value { duration }?
& attribute office:boolean-value { boolean }?
& attribute office:string-value { \string }?),
text
}
paragraph-content |=
element text:print-time {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:time-value { time }?),
text
}
paragraph-content |=
element text:print-date {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:date-value { date }?),
text
}
paragraph-content |=
element text:printed-by { common-field-fixed-attlist, text }
paragraph-content |=
element text:title { common-field-fixed-attlist, text }
paragraph-content |=
element text:subject { common-field-fixed-attlist, text }
paragraph-content |=
element text:keywords { common-field-fixed-attlist, text }
paragraph-content |=
element text:editing-cycles { common-field-fixed-attlist, text }
paragraph-content |=
element text:editing-duration {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:duration { duration }?),
text
}
paragraph-content |=
element text:modification-time {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:time-value { time }?),
text
}
paragraph-content |=
element text:modification-date {
(common-field-fixed-attlist
& common-field-data-style-name-attlist
& attribute text:date-value { date }?),
text
}
paragraph-content |=
element text:creator { common-field-fixed-attlist, text }
paragraph-content |=
element text:page-count
| text:paragraph-count
| text:word-count
| text:character-count
| text:table-count
| text:image-count
| text:object-count { common-field-num-format-attlist, text }
common-field-database-table =
common-field-database-table-attlist, common-field-database-name
common-field-database-name |= attribute text:database-name { \string }?
common-field-database-name |= form-connection-resource
common-field-database-table-attlist &=
attribute text:table-name { \string }
common-field-database-table-attlist &=
attribute text:table-type { "table" | "query" | "command" }?
paragraph-content |=
element text:database-display { text-database-display-attlist, text }
text-database-display-attlist &= common-field-database-table
text-database-display-attlist &= common-field-data-style-name-attlist
text-database-display-attlist &= attribute text:column-name { \string }
paragraph-content |=
element text:database-next { text-database-next-attlist }
text-database-next-attlist &= common-field-database-table
text-database-next-attlist &= attribute text:condition { formula }?
paragraph-content |=
element text:database-row-select { text-database-row-select-attlist }
text-database-row-select-attlist &= common-field-database-table
text-database-row-select-attlist &=
attribute text:condition { formula }?
text-database-row-select-attlist &=
attribute text:row-number { nonNegativeInteger }?
paragraph-content |=
element text:database-row-number {
(common-field-database-table
& common-field-num-format-attlist
& attribute text:value { nonNegativeInteger }?),
text
}
paragraph-content |=
element text:database-name { common-field-database-table, text }
paragraph-content |=
element text:page-variable-set {
text-set-page-variable-attlist, text
}
text-set-page-variable-attlist &= attribute text:active { boolean }?
text-set-page-variable-attlist &=
attribute text:page-adjust { integer }?
paragraph-content |=
element text:page-variable-get {
text-get-page-variable-attlist, text
}
text-get-page-variable-attlist &= common-field-num-format-attlist
paragraph-content |=
element text:placeholder { text-placeholder-attlist, text }
text-placeholder-attlist &=
attribute text:placeholder-type {
"text" | "table" | "text-box" | "image" | "object"
}
text-placeholder-attlist &= common-field-description-attlist
paragraph-content |=
element text:conditional-text { text-conditional-text-attlist, text }
text-conditional-text-attlist &= attribute text:condition { formula }
text-conditional-text-attlist &=
attribute text:string-value-if-true { \string }
text-conditional-text-attlist &=
attribute text:string-value-if-false { \string }
text-conditional-text-attlist &=
attribute text:current-value { boolean }?
paragraph-content |=
element text:hidden-text { text-hidden-text-attlist, text }
text-hidden-text-attlist &= attribute text:condition { formula }
text-hidden-text-attlist &= attribute text:string-value { \string }
text-hidden-text-attlist &= attribute text:is-hidden { boolean }?
paragraph-content |=
element text:reference-ref | text:bookmark-ref {
text-common-ref-content & text-ref-content
}
paragraph-content |=
element text:note-ref {
text-common-ref-content & text-note-ref-content & text-ref-content
}
paragraph-content |=
element text:sequence-ref {
text-common-ref-content & text-sequence-ref-content
}
text-common-ref-content &= text
text-common-ref-content &= attribute text:ref-name { \string }?
text-note-ref-content &= text-note-class
text-ref-content &=
attribute text:reference-format {
"page" | "chapter" | "direction" | "text"
}?
text-sequence-ref-content &=
attribute text:reference-format {
"page"
| "chapter"
| "direction"
| "text"
| "category-and-value"
| "caption"
| "value"
}?
paragraph-content |=
element text:script {
((attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?)
| text)
& attribute script:language { \string }?
}
paragraph-content |=
element text:execute-macro {
attribute text:name { \string }?,
office-event-listeners?,
text
}
paragraph-content |=
element text:hidden-paragraph { text-hidden-paragraph-attlist, text }
text-hidden-paragraph-attlist &= attribute text:condition { formula }
text-hidden-paragraph-attlist &= attribute text:is-hidden { boolean }?
paragraph-content |=
element text:dde-connection {
attribute text:connection-name { \string },
text
}
paragraph-content |=
element text:measure {
attribute text:kind { "value" | "unit" | "gap" },
text
}
paragraph-content |=
element text:table-formula {
(common-field-formula-attlist
& common-field-display-value-formula-attlist
& common-field-data-style-name-attlist),
text
}
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 { text }?
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 { formula }?
common-field-data-style-name-attlist =
attribute style:data-style-name { styleNameRef }?
common-field-num-format-attlist = common-num-format-attlist?
paragraph-content |=
element text:toc-mark-start { text-toc-mark-start-attrs }
text-toc-mark-start-attrs = text-id, text-outline-level
text-outline-level = attribute text:outline-level { positiveInteger }?
text-id = attribute text:id { \string }
paragraph-content |= element text:toc-mark-end { text-id }
paragraph-content |=
element text:toc-mark {
attribute text:string-value { \string },
text-outline-level
}
paragraph-content |=
element text:user-index-mark-start {
text-id, text-outline-level, text-index-name
}
paragraph-content |=
element text:user-index-mark-end { text-id, text-outline-level }
paragraph-content |=
element text:user-index-mark {
attribute text:string-value { \string },
text-outline-level,
text-index-name
}
text-index-name = attribute text:index-name { \string }
paragraph-content |=
element text:alphabetical-index-mark-start {
text-id, text-alphabetical-index-mark-attrs
}
paragraph-content |=
element text:alphabetical-index-mark-end { text-id }
paragraph-content |=
element text:alphabetical-index-mark {
attribute text:string-value { \string },
text-alphabetical-index-mark-attrs
}
text-alphabetical-index-mark-attrs &=
attribute text:key1 { \string }?,
attribute text:key2 { \string }?
text-alphabetical-index-mark-attrs &=
attribute text:string-value-phonetic { \string }?,
attribute text:key1-phonetic { \string }?,
attribute text:key2-phonetic { \string }?
text-alphabetical-index-mark-attrs &=
[ a:defaultValue = "false" ] attribute text:main-entry { boolean }?
paragraph-content |=
element text:bibliography-mark {
attribute text:bibliography-type { text-bibliography-types },
attribute text:identifier
| text:address
| text:annote
| text:author
| text:booktitle
| text:chapter
| text:edition
| text:editor
| text:howpublished
| text:institution
| text:journal
| text:month
| text:note
| text:number
| text:organizations
| text:pages
| text:publisher
| text:school
| text:series
| text:title
| text:report-type
| text:volume
| text:year
| text:url
| text:custom1
| text:custom2
| text:custom3
| text:custom4
| text:custom5
| text:isbn
| text:issn { \string }*,
text
}
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"
text-index-body = element text:index-body { index-content-main* }
index-content-main = text-content | text-index-title
text-index-title =
element text:index-title { sectionAttr, index-content-main* }
text-table-of-content =
element text:table-of-content {
sectionAttr, text-table-of-content-source, text-index-body
}
text-table-of-content-source =
element text:table-of-content-source {
text-table-of-content-source-attlist,
text-index-title-template?,
text-table-of-content-entry-template*,
text-index-source-styles*
}
text-table-of-content-source-attlist &=
attribute text:outline-level { positiveInteger }?
text-table-of-content-source-attlist &=
[ a:defaultValue = "true" ]
attribute text:use-outline-level { boolean }?
text-table-of-content-source-attlist &=
attribute text:use-index-marks { boolean }?
text-table-of-content-source-attlist &=
attribute text:use-index-source-styles { boolean }?
text-table-of-content-source-attlist &=
attribute text:index-scope { "document" | "chapter" }?
text-table-of-content-source-attlist &=
attribute text:relative-tab-stop-position { boolean }?
text-table-of-content-entry-template =
element text:table-of-content-entry-template {
text-table-of-content-entry-template-attlist,
text-table-of-content-children*
}
text-table-of-content-children =
text-index-entry-chapter
| text-index-entry-page-number
| text-index-entry-text
| text-index-entry-span
| text-index-entry-tab-stop
| text-index-entry-link-start
| text-index-entry-link-end
text-table-of-content-entry-template-attlist &=
attribute text:outline-level { positiveInteger }
text-table-of-content-entry-template-attlist &=
attribute text:style-name { styleNameRef }
text-illustration-index =
element text:illustration-index {
sectionAttr, text-illustration-index-source, text-index-body
}
text-illustration-index-source =
element text:illustration-index-source {
text-illustration-index-source-attrs,
text-index-title-template?,
text-illustration-index-entry-template?
}
text-illustration-index-source-attrs &= text-index-scope-attr
text-index-scope-attr =
[ a:defaultValue = "document" ]
attribute text:index-scope { "document" | "chapter" }?
text-illustration-index-source-attrs &=
text-relative-tab-stop-position-attr
text-relative-tab-stop-position-attr =
[ a:defaultValue = "true" ]
attribute text:relative-tab-stop-position { boolean }?
text-illustration-index-source-attrs &=
[ a:defaultValue = "true" ] attribute text:use-caption { boolean }?
text-illustration-index-source-attrs &=
attribute text:caption-sequence-name { \string }?
text-illustration-index-source-attrs &=
attribute text:caption-sequence-format {
"text" | "category-and-value" | "caption"
}?
text-illustration-index-entry-template =
element text:illustration-index-entry-template {
text-illustration-index-entry-content
}
text-illustration-index-entry-content =
text-illustration-index-entry-template-attrs,
(text-index-entry-page-number
| text-index-entry-text
| text-index-entry-span
| text-index-entry-tab-stop)*
text-illustration-index-entry-template-attrs =
attribute text:style-name { styleNameRef }
text-table-index =
element text:table-index {
sectionAttr, text-table-index-source, text-index-body
}
text-table-index-source =
element text:table-index-source {
text-illustration-index-source-attrs,
text-index-title-template?,
text-table-index-entry-template?
}
text-table-index-entry-template =
element text:table-index-entry-template {
text-illustration-index-entry-content
}
text-object-index =
element text:object-index {
sectionAttr, text-object-index-source, text-index-body
}
text-object-index-source =
element text:object-index-source {
text-object-index-source-attrs,
text-index-title-template?,
text-object-index-entry-template?
}
text-object-index-source-attrs &= text-index-scope-attr
text-object-index-source-attrs &= text-relative-tab-stop-position-attr
text-object-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-spreadsheet-objects { boolean }?
text-object-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-math-objects { boolean }?
text-object-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-draw-objects { boolean }?
text-object-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-chart-objects { boolean }?
text-object-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-other-objects { boolean }?
text-object-index-entry-template =
element text:object-index-entry-template {
text-illustration-index-entry-content
}
text-user-index =
element text:user-index {
sectionAttr, text-user-index-source, text-index-body
}
text-user-index-source =
element text:user-index-source {
text-user-index-source-attr,
text-index-title-template?,
text-user-index-entry-template*,
text-index-source-styles*
}
text-user-index-source-attr &=
text-index-scope-attr,
text-relative-tab-stop-position-attr,
attribute text:index-name { \string }
text-user-index-source-attr &=
[ a:defaultValue = "false" ]
attribute text:use-index-marks { boolean }?,
[ a:defaultValue = "false" ] attribute text:use-graphics { boolean }?,
[ a:defaultValue = "false" ] attribute text:use-tables { boolean }?,
[ a:defaultValue = "false" ]
attribute text:use-floating-frames { boolean }?,
[ a:defaultValue = "false" ] attribute text:use-objects { boolean }?
text-user-index-source-attr &=
[ a:defaultValue = "false" ]
attribute text:copy-outline-levels { boolean }?
text-user-index-entry-template =
element text:user-index-entry-template {
text-user-index-entry-template-attrs,
(text-index-entry-chapter
| text-index-entry-page-number
| text-index-entry-text
| text-index-entry-span
| text-index-entry-tab-stop)*
}
text-user-index-entry-template-attrs &=
attribute text:outline-level { positiveInteger }
text-user-index-entry-template-attrs &=
attribute text:style-name { styleNameRef }
text-alphabetical-index =
element text:alphabetical-index {
sectionAttr, text-alphabetical-index-source, text-index-body
}
text-alphabetical-index-source =
element text:alphabetical-index-source {
text-alphabetical-index-source-attrs,
text-index-title-template?,
text-alphabetical-index-entry-template*
}
text-alphabetical-index-source-attrs &=
text-index-scope-attr, text-relative-tab-stop-position-attr
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "false" ] attribute text:ignore-case { boolean }?
text-alphabetical-index-source-attrs &=
attribute text:main-entry-style-name { styleNameRef }?
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:alphabetical-separators { boolean }?
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "true" ]
attribute text:combine-entries { boolean }?,
[ a:defaultValue = "false" ]
attribute text:combine-entries-with-dash { boolean }?,
[ a:defaultValue = "true" ]
attribute text:combine-entries-with-pp { boolean }?
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:use-keys-as-entries { boolean }?
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:capitalize-entries { boolean }?
text-alphabetical-index-source-attrs &=
[ a:defaultValue = "false" ]
attribute text:comma-separated { boolean }?
text-alphabetical-index-source-attrs &=
attribute fo:language { languageCode }?
text-alphabetical-index-source-attrs &=
attribute fo:country { countryCode }?
text-alphabetical-index-source-attrs &=
attribute text:sort-algorithm { \string }?
text-alphabetical-index-auto-mark-file =
element text:alphabetical-index-auto-mark-file {
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?
}
text-alphabetical-index-entry-template =
element text:alphabetical-index-entry-template {
text-alphabetical-index-entry-template-attrs,
(text-index-entry-chapter
| text-index-entry-page-number
| text-index-entry-text
| text-index-entry-span
| text-index-entry-tab-stop)*
}
text-alphabetical-index-entry-template-attrs &=
attribute text:outline-level { "1" | "2" | "3" | "separator" }
text-alphabetical-index-entry-template-attrs &=
attribute text:style-name { styleNameRef }
text-bibliography =
element text:bibliography {
sectionAttr, text-bibliography-source, text-index-body
}
text-bibliography-source =
element text:bibliography-source {
text-index-title-template?, text-bibliography-entry-template*
}
text-bibliography-entry-template =
element text:bibliography-entry-template {
text-bibliography-entry-template-attrs,
(text-index-entry-span
| text-index-entry-tab-stop
| text-index-entry-bibliography)*
}
text-bibliography-entry-template-attrs &=
attribute text:bibliography-type { text-bibliography-types }
text-bibliography-entry-template-attrs &=
attribute text:style-name { styleNameRef }
text-index-source-styles =
element text:index-source-styles {
attribute text:outline-level { positiveInteger },
text-index-source-style*
}
text-index-source-style =
element text:index-source-style {
attribute text:style-name { styleName },
empty
}
text-index-title-template =
element text:index-title-template {
attribute text:style-name { styleNameRef }?,
text
}
text-index-entry-chapter =
element text:index-entry-chapter {
attribute text:style-name { styleNameRef }?,
text-index-entry-chapter-attrs
}
text-index-entry-chapter-attrs =
[ a:defaultValue = "number" ]
attribute text:display { "name" | "number" | "number-and-name" }?
text-index-entry-text =
element text:index-entry-text {
attribute text:style-name { styleNameRef }?
}
text-index-entry-page-number =
element text:index-entry-page-number {
attribute text:style-name { styleNameRef }?
}
text-index-entry-span =
element text:index-entry-span {
attribute text:style-name { styleNameRef }?,
text
}
text-index-entry-bibliography =
element text:index-entry-bibliography {
text-index-entry-bibliography-attrs
}
text-index-entry-bibliography-attrs &=
attribute text:style-name { styleNameRef }?
text-index-entry-bibliography-attrs &=
attribute text:bibliography-data-field {
"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"
}
text-index-entry-tab-stop =
element text:index-entry-tab-stop {
attribute text:style-name { styleNameRef }?,
text-index-entry-tab-stop-attrs
}
text-index-entry-tab-stop-attrs &=
attribute style:leader-char { character }?
text-index-entry-tab-stop-attrs &=
attribute style:type { "right" }
| (attribute style:type { "left" },
attribute style:position { length })
text-index-entry-link-start =
element text:index-entry-link-start {
attribute text:style-name { styleNameRef }?
}
text-index-entry-link-end =
element text:index-entry-link-end {
attribute text:style-name { styleNameRef }?
}
table-table =
element table:table {
table-table-attlist,
table-table-source?,
office-dde-source?,
table-scenario?,
office-forms?,
table-shapes?,
table-columns-and-groups,
table-rows-and-groups
}
table-columns-and-groups =
(table-table-column-group | table-columns-no-group)+
table-columns-no-group =
(table-columns, (table-table-header-columns, table-columns?)?)
| (table-table-header-columns, table-columns?)
table-columns = table-table-columns | table-table-column+
table-rows-and-groups = (table-table-row-group | table-rows-no-group)+
table-rows-no-group =
(table-rows, (table-table-header-rows, table-rows?)?)
| (table-table-header-rows, table-rows?)
table-rows =
table-table-rows | (text-soft-page-break?, table-table-row)+
table-table-attlist &= attribute table:name { \string }?
table-table-attlist &= attribute table:style-name { styleNameRef }?
table-table-attlist &=
[ a:defaultValue = "false" ] attribute table:protected { boolean }?,
attribute table:protection-key { text }?
table-table-attlist &=
[ a:defaultValue = "true" ] attribute table:print { boolean }?
table-table-attlist &=
attribute table:print-ranges { cellRangeAddressList }?
table-table-row =
element table:table-row {
table-table-row-attlist,
(table-table-cell | table-covered-table-cell)+
}
table-table-row-attlist &=
[ a:defaultValue = "1" ]
attribute table:number-rows-repeated { positiveInteger }?
table-table-row-attlist &= attribute table:style-name { styleNameRef }?
table-table-row-attlist &=
attribute table:default-cell-style-name { styleNameRef }?
table-table-row-attlist &=
[ a:defaultValue = "visible" ]
attribute table:visibility { table-visibility-value }?
table-visibility-value = "visible" | "collapse" | "filter"
table-table-cell =
element table:table-cell {
table-table-cell-attlist,
table-table-cell-attlist-extra,
table-table-cell-content
}
table-covered-table-cell =
element table:covered-table-cell {
table-table-cell-attlist, table-table-cell-content
}
table-table-cell-content =
table-cell-range-source?,
office-annotation?,
table-detective?,
text-content*
table-table-cell-attlist &=
[ a:defaultValue = "1" ]
attribute table:number-columns-repeated { positiveInteger }?
table-table-cell-attlist-extra &=
[ a:defaultValue = "1" ]
attribute table:number-columns-spanned { positiveInteger }?,
[ a:defaultValue = "1" ]
attribute table:number-rows-spanned { positiveInteger }?
table-table-cell-attlist &= attribute table:style-name { styleNameRef }?
table-table-cell-attlist &=
attribute table:content-validation-name { \string }?
table-table-cell-attlist &= attribute table:formula { \string }?
table-table-cell-attlist-extra &=
attribute table:number-matrix-columns-spanned { positiveInteger }?,
attribute table:number-matrix-rows-spanned { positiveInteger }?
table-table-cell-attlist &= common-value-and-type-attlist?
table-table-cell-attlist &=
[ a:defaultValue = "false" ] attribute table:protect { boolean }?
table-table-column =
element table:table-column { table-table-column-attlist, empty }
table-table-column-attlist &=
[ a:defaultValue = "1" ]
attribute table:number-columns-repeated { positiveInteger }?
table-table-column-attlist &=
attribute table:style-name { styleNameRef }?
table-table-column-attlist &=
[ a:defaultValue = "visible" ]
attribute table:visibility { table-visibility-value }?
table-table-column-attlist &=
attribute table:default-cell-style-name { styleNameRef }?
table-table-header-columns =
element table:table-header-columns { table-table-column+ }
table-table-columns =
element table:table-columns { table-table-column+ }
table-table-column-group =
element table:table-column-group {
table-table-column-group-attlist, table-columns-and-groups
}
table-table-column-group-attlist &=
[ a:defaultValue = "true" ] attribute table:display { boolean }?
table-table-header-rows =
element table:table-header-rows {
(text-soft-page-break?, table-table-row)+
}
table-table-rows =
element table:table-rows { (text-soft-page-break?, table-table-row)+ }
table-table-row-group =
element table:table-row-group {
table-table-row-group-attlist, table-rows-and-groups
}
table-table-row-group-attlist &=
[ a:defaultValue = "true" ] attribute table:display { boolean }?
table-table-attlist &=
[ a:defaultValue = "false" ] attribute table:is-sub-table { boolean }?
cellAddress =
xsd:string {
pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+"
}
cellRangeAddress =
xsd:string {
pattern =
"($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?"
}
cellRangeAddressList =
# Value is a space separated list of "cellRangeAddress" patterns
xsd:string
table-table-source =
element table:table-source {
table-table-source-attlist, table-linked-source-attlist, empty
}
table-table-source-attlist &=
[ a:defaultValue = "copy-all" ]
attribute table:mode { "copy-all" | "copy-results-only" }?
table-table-source-attlist &= attribute table:table-name { \string }?
table-linked-source-attlist &=
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?,
attribute xlink:href { anyURI }
table-linked-source-attlist &= attribute table:filter-name { \string }?
table-linked-source-attlist &=
attribute table:filter-options { \string }?
table-linked-source-attlist &=
attribute table:refresh-delay { duration }?
table-scenario =
element table:scenario { table-scenario-attlist, empty }
table-scenario-attlist &=
attribute table:scenario-ranges { cellRangeAddressList }
table-scenario-attlist &= attribute table:is-active { boolean }
table-scenario-attlist &=
[ a:defaultValue = "true" ]
attribute table:display-border { boolean }?
table-scenario-attlist &= attribute table:border-color { color }?
table-scenario-attlist &=
[ a:defaultValue = "true" ] attribute table:copy-back { boolean }?
table-scenario-attlist &=
[ a:defaultValue = "true" ] attribute table:copy-styles { boolean }?
table-scenario-attlist &=
[ a:defaultValue = "true" ] attribute table:copy-formulas { boolean }?
table-scenario-attlist &= attribute table:comment { \string }?
table-scenario-attlist &= 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 }
table-table-cell-range-source-attlist &=
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"
}
table-operation-attlist &= 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 }?
table-highlighted-range-attlist &=
attribute table:direction {
"from-another-table" | "to-another-table" | "from-same-table"
}
table-highlighted-range-attlist &=
[ a:defaultValue = "false" ]
attribute table:contains-error { boolean }?
table-highlighted-range-attlist-invalid &=
attribute table:marked-invalid { boolean }
office-spreadsheet-attlist &=
[ a:defaultValue = "false" ]
attribute table:structure-protected { boolean }?,
attribute table:protection-key { \string }?
table-calculation-settings =
element table:calculation-settings {
table-calculation-setting-attlist,
table-null-date?,
table-iteration?
}
table-calculation-setting-attlist &=
[ a:defaultValue = "true" ]
attribute table:case-sensitive { boolean }?
table-calculation-setting-attlist &=
[ a:defaultValue = "false" ]
attribute table:precision-as-shown { boolean }?
table-calculation-setting-attlist &=
[ a:defaultValue = "true" ]
attribute table:search-criteria-must-apply-to-whole-cell { boolean }?
table-calculation-setting-attlist &=
[ a:defaultValue = "true" ]
attribute table:automatic-find-labels { boolean }?
table-calculation-setting-attlist &=
[ a:defaultValue = "true" ]
attribute table:use-regular-expressions { boolean }?
table-calculation-setting-attlist &=
[ a:defaultValue = "1930" ]
attribute table:null-year { positiveInteger }?
table-null-date =
element table:null-date {
[ a:defaultValue = "date" ]
attribute table:value-type { valueType }?,
[ a:defaultValue = "1899-12-30" ]
attribute table:date-value { date }?,
empty
}
table-iteration =
element table:iteration {
[ a:defaultValue = "disable" ]
attribute table:status { "enable" | "disable" }?,
[ a:defaultValue = "100" ]
attribute table:steps { positiveInteger }?,
[ a:defaultValue = "0.001" ]
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 }
table-validation-attlist &= attribute table:condition { \string }?
table-validation-attlist &=
attribute table:base-cell-address { cellAddress }?
table-validation-attlist &=
[ a:defaultValue = "true" ]
attribute table:allow-empty-cell { boolean }?
table-validation-attlist &=
[ a:defaultValue = "unsorted" ]
attribute table:display-list {
"none" | "unsorted" | "sort-ascending"
}?
table-help-message =
element table:help-message {
attribute table:title { \string }?,
[ a:defaultValue = "false" ] attribute table:display { boolean }?,
text-p*
}
table-error-message =
element table:error-message {
attribute table:title { \string }?,
[ a:defaultValue = "false" ] attribute table:display { boolean }?,
[ a:defaultValue = "stop" ]
attribute table:message-type {
"stop" | "warning" | "information"
}?,
text-p*
}
table-error-macro =
element table:error-macro {
[ a:defaultValue = "true" ] 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 }
table-label-range-attlist &=
attribute table:data-cell-range-address { cellRangeAddress }
table-label-range-attlist &=
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 }?,
[ a:defaultValue = "none" ]
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 }?
table-database-range-attlist &=
[ a:defaultValue = "false" ] attribute table:is-selection { boolean }?
table-database-range-attlist &=
[ a:defaultValue = "false" ]
attribute table:on-update-keep-styles { boolean }?
table-database-range-attlist &=
[ a:defaultValue = "true" ]
attribute table:on-update-keep-size { boolean }?
table-database-range-attlist &=
[ a:defaultValue = "true" ]
attribute table:has-persistent-data { boolean }?
table-database-range-attlist &=
[ a:defaultValue = "row" ]
attribute table:orientation { "column" | "row" }?
table-database-range-attlist &=
[ a:defaultValue = "true" ]
attribute table:contains-header { boolean }?
table-database-range-attlist &=
[ a:defaultValue = "false" ]
attribute table:display-filter-buttons { boolean }?
table-database-range-attlist &=
attribute table:target-range-address { cellRangeAddress }
table-database-range-attlist &=
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 }
table-database-source-sql-attlist &=
attribute table:sql-statement { \string }
table-database-source-sql-attlist &=
[ a:defaultValue = "false" ]
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 }
table-database-source-table-attlist &=
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 }
table-database-source-query-attlist &=
attribute table:query-name { \string }
table-sort = element table:sort { table-sort-attlist, table-sort-by+ }
table-sort-attlist &=
[ a:defaultValue = "true" ]
attribute table:bind-styles-to-content { boolean }?
table-sort-attlist &=
attribute table:target-range-address { cellRangeAddress }?
table-sort-attlist &=
[ a:defaultValue = "false" ]
attribute table:case-sensitive { boolean }?
table-sort-attlist &= attribute table:language { languageCode }?
table-sort-attlist &= attribute table:country { countryCode }?
table-sort-attlist &= attribute table:algorithm { \string }?
table-sort-by = element table:sort-by { table-sort-by-attlist, empty }
table-sort-by-attlist &=
attribute table:field-number { nonNegativeInteger }
table-sort-by-attlist &=
[ a:defaultValue = "automatic" ]
attribute table:data-type {
"text" | "number" | "automatic" | \string
}?
table-sort-by-attlist &=
[ a:defaultValue = "ascending" ]
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 &=
[ a:defaultValue = "true" ]
attribute table:bind-styles-to-content { boolean }?
table-subtotal-rules-attlist &=
[ a:defaultValue = "false" ]
attribute table:case-sensitive { boolean }?
table-subtotal-rules-attlist &=
[ a:defaultValue = "false" ]
attribute table:page-breaks-on-group-change { boolean }?
table-sort-groups =
element table:sort-groups { table-sort-groups-attlist, empty }
table-sort-groups-attlist &=
[ a:defaultValue = "automatic" ]
attribute table:data-type {
"text" | "number" | "automatic" | \string
}?
table-sort-groups-attlist &=
[ a:defaultValue = "ascending" ]
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 }
table-subtotal-field-attlist &=
attribute table:function {
"auto"
| "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 }?
table-filter-attlist &=
[ a:defaultValue = "self" ]
attribute table:condition-source { "self" | "cell-range" }?
table-filter-attlist &=
attribute table:condition-source-range-address { cellRangeAddress }?
table-filter-attlist &=
[ a:defaultValue = "true" ]
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, empty
}
table-filter-condition-attlist &=
attribute table:field-number { nonNegativeInteger }
table-filter-condition-attlist &= attribute table:value { \string }
table-filter-condition-attlist &= attribute table:operator { \string }
table-filter-condition-attlist &=
[ a:defaultValue = "false" ]
attribute table:case-sensitive { \string }?
table-filter-condition-attlist &=
[ a:defaultValue = "text" ]
attribute table:data-type { "text" | "number" }?
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 }
table-data-pilot-table-attlist &=
attribute table:application-data { \string }?
table-data-pilot-table-attlist &=
[ a:defaultValue = "both" ]
attribute table:grand-total { "none" | "row" | "column" | "both" }?
table-data-pilot-table-attlist &=
[ a:defaultValue = "false" ]
attribute table:ignore-empty-rows { boolean }?
table-data-pilot-table-attlist &=
[ a:defaultValue = "false" ]
attribute table:identify-categories { boolean }?
table-data-pilot-table-attlist &=
attribute table:target-range-address { cellRangeAddress }
table-data-pilot-table-attlist &=
attribute table:buttons { cellRangeAddressList }?
table-data-pilot-table-attlist &=
[ a:defaultValue = "true" ]
attribute table:show-filter-button { boolean }?
table-data-pilot-table-attlist &=
[ a:defaultValue = "true" ]
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 }
table-source-service-attlist &= attribute table:source-name { \string }
table-source-service-attlist &= attribute table:object-name { \string }
table-source-service-attlist &= attribute table:user-name { \string }?
table-source-service-attlist &= 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 }
table-data-pilot-field-attlist &=
attribute table:orientation { "row" | "column" | "data" | "hidden" }
| (attribute table:orientation { "page" },
attribute table:selected-page { \string })
table-data-pilot-field-attlist &=
[ a:defaultValue = "false" ]
attribute table:is-data-layout-field { \string }?
table-data-pilot-field-attlist &=
attribute table:function {
"auto"
| "average"
| "count"
| "countnums"
| "max"
| "min"
| "product"
| "stdev"
| "stdevp"
| "sum"
| "var"
| "varp"
| \string
}?
table-data-pilot-field-attlist &=
[ a:defaultValue = "-1" ] 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 }
table-data-pilot-member-attlist &= attribute table:display { boolean }?
table-data-pilot-member-attlist &=
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 }
table-data-pilot-display-info-attlist &=
attribute table:data-field { \string }
table-data-pilot-display-info-attlist &=
attribute table:member-count { nonNegativeInteger }
table-data-pilot-display-info-attlist &=
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" }
table-data-pilot-sort-info-attlist &=
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"
}
table-data-pilot-layout-info-attlist &=
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 }
table-data-pilot-field-reference-attlist &=
(attribute table:member-type { "named" },
attribute table:member-name { \string })
| attribute table:member-type { "previous" | "next" }
table-data-pilot-field-reference-attlist &=
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 }
table-data-pilot-groups-attlist &=
attribute table:date-start { dateOrDateTime | "auto" }
| attribute table:start { double | "auto" }
table-data-pilot-groups-attlist &=
attribute table:date-end { dateOrDateTime | "auto" }
| attribute table:end { double | "auto" }
table-data-pilot-groups-attlist &= attribute table:step { double }
table-data-pilot-groups-attlist &=
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 {
"auto"
| "average"
| "count"
| "countnums"
| "max"
| "min"
| "product"
| "stdev"
| "stdevp"
| "sum"
| "var"
| "varp"
| \string
}
table-consolidation-attlist &=
attribute table:source-cell-range-addresses { cellRangeAddressList }
table-consolidation-attlist &=
attribute table:target-cell-address { cellAddress }
table-consolidation-attlist &=
[ a:defaultValue = "none" ]
attribute table:use-labels { "none" | "row" | "column" | "both" }?
table-consolidation-attlist &=
[ a:defaultValue = "false" ]
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 &=
[ a:defaultValue = "false" ]
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" }
table-insertion-attlist &= attribute table:position { integer }
table-insertion-attlist &=
[ a:defaultValue = "1" ] attribute table:count { positiveInteger }?
table-insertion-attlist &= 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" }
table-deletion-attlist &= attribute table:position { integer }
table-deletion-attlist &= attribute table:table { integer }?
table-deletion-attlist &=
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 }
table-insertion-cut-off-attlist &= 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 }?
table-change-track-table-cell-attlist &=
[ a:defaultValue = "false" ]
attribute table:matrix-covered { boolean }?
table-change-track-table-cell-attlist &=
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 }
common-table-change-attlist &=
[ a:defaultValue = "pending" ]
attribute table:acceptance-state {
"accepted" | "rejected" | "pending"
}?
common-table-change-attlist &=
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 }?
style-handout-master-attlist &=
attribute style:page-layout-name { styleNameRef }
style-handout-master-attlist &=
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 }
draw-layer-attlist &=
[ a:defaultValue = "false" ] attribute draw:protected { boolean }?
draw-layer-attlist &=
[ a:defaultValue = "always" ]
attribute draw:display { "always" | "screen" | "printer" | "none" }?
draw-page =
element draw:page {
common-presentation-header-footer-attlist,
draw-page-attlist,
office-forms?,
shape*,
(presentation-animations | animation-element)?,
presentation-notes?
}
draw-page-attlist &= attribute draw:name { \string }?
draw-page-attlist &= attribute draw:style-name { styleNameRef }?
draw-page-attlist &= attribute draw:master-page-name { styleNameRef }
draw-page-attlist &=
attribute presentation:presentation-page-layout-name { styleNameRef }?
common-presentation-header-footer-attlist &=
attribute presentation:use-header-name { \string }?
common-presentation-header-footer-attlist &=
attribute presentation:use-footer-name { \string }?
common-presentation-header-footer-attlist &=
attribute presentation:use-date-time-name { \string }?
draw-page-attlist &= attribute draw:id { ID }?
draw-page-attlist &= attribute draw:nav-order { IDREFS }?
shape =
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 }?
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 }
draw-line-attlist &=
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)
draw-regular-polygon-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-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
}
common-draw-circle-ellipse-attlist &=
(attribute svg:cx { coordinate },
attribute svg:cy { coordinate })?
draw-circle-attlist &= attribute svg:r { length }?
common-draw-circle-ellipse-attlist &=
[ a:defaultValue = "full" ]
attribute draw:kind { "full" | "section" | "cut" | "arc" }?
common-draw-circle-ellipse-attlist &=
attribute draw:start-angle { double }?
common-draw-circle-ellipse-attlist &=
attribute draw:end-angle { double }?
draw-ellipse =
element draw:ellipse {
common-draw-circle-ellipse-attlist,
draw-ellipse-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-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,
svg-title?,
svg-desc?,
office-event-listeners?,
draw-glue-point*,
draw-text
}
draw-connector-attlist &=
[ a:defaultValue = "standard" ]
attribute draw:type { "standard" | "lines" | "line" | "curve" }?
draw-connector-attlist &=
(attribute svg:x1 { coordinate },
attribute svg:y1 { coordinate })?
draw-connector-attlist &= attribute draw:start-shape { IDREF }?
draw-connector-attlist &=
attribute draw:start-glue-point { nonNegativeInteger }?
draw-connector-attlist &=
(attribute svg:x2 { coordinate },
attribute svg:y2 { coordinate })?
draw-connector-attlist &= attribute draw:end-shape { IDREF }?
draw-connector-attlist &=
attribute draw:end-glue-point { nonNegativeInteger }?
draw-connector-attlist &=
attribute draw:line-skew {
list { length, (length, length?)? }
}?
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 })?
draw-caption-attlist &=
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 }
draw-measure-attlist &=
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 { xsd:string }?
common-draw-id-attlist = attribute draw:id { ID }?
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 }?
common-text-spreadsheet-shape-attlist &=
attribute table:table-background { boolean }?
common-text-spreadsheet-shape-attlist &= common-text-anchor-attlist
common-text-anchor-attlist &=
attribute text:anchor-type {
"page" | "frame" | "paragraph" | "char" | "as-char"
}?
common-text-anchor-attlist &=
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 }
draw-glue-point-attlist &=
attribute svg:x { distance | percent },
attribute svg:y { distance | percent }
draw-glue-point-attlist &=
attribute draw:align {
"top-left"
| "top"
| "top-right"
| "left"
| "center"
| "right"
| "bottom-left"
| "bottom-right"
}?
draw-glue-points-attlist &=
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)*,
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 }?
draw-text-box-attlist &=
attribute draw:corner-radius { nonNegativeLength }?
draw-text-box-attlist &=
attribute fo:min-height { length | percent }?,
attribute fo:min-width { length | percent }?
draw-text-box-attlist &=
attribute fo:max-height { length | percent }?,
attribute fo:max-width { length | percent }?
draw-text-box-attlist &= text-id?
draw-image =
element draw:image {
draw-image-attlist,
(common-draw-data-attlist | office-binary-data),
draw-text
}
common-draw-data-attlist &=
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,
[ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?
office-binary-data = element office:binary-data { base64Binary }
draw-image-attlist &= attribute draw:filter-name { \string }?
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 { \string }?
draw-object-ole-attlist &= attribute draw:class-id { text }?
draw-applet =
element draw:applet {
draw-applet-attlist, common-draw-data-attlist?, draw-param*
}
draw-applet-attlist &= attribute draw:code { text }?
draw-applet-attlist &= attribute draw:object { text }?
draw-applet-attlist &= attribute draw:archive { text }?
draw-applet-attlist &=
[ a:defaultValue = "false" ] attribute draw:may-script { boolean }?
draw-plugin =
element draw:plugin {
draw-plugin-attlist, common-draw-data-attlist, draw-param*
}
draw-plugin-attlist &= attribute draw:mime-type { text }?
draw-param = element draw:param { draw-param-attlist, empty }
draw-param-attlist &= attribute draw:name { text }?
draw-param-attlist &= attribute draw:value { text }?
draw-floating-frame =
element draw:floating-frame {
draw-floating-frame-attlist, common-draw-data-attlist
}
draw-floating-frame-attlist &= attribute draw:frame-name { \string }?
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, draw-frame }
draw-a-attlist &=
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?
draw-a-attlist &=
attribute office:target-frame-name { targetFrameName }?,
attribute xlink:show { "new" | "replace" }?
draw-a-attlist &= attribute office:name { \string }?
draw-a-attlist &= attribute office:title { \string }?
draw-a-attlist &=
[ a:defaultValue = "false" ] attribute office:server-map { boolean }?
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:href { anyURI }?,
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
attribute office:target-frame-name { targetFrameName }?,
attribute xlink:show { "new" | "replace" }?
common-draw-area-attlist &= attribute office:name { \string }?
common-draw-area-attlist &= 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*
}
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 }?
dr3d-scene-attlist &=
attribute dr3d:projection { "parallel" | "perspective" }?
dr3d-scene-attlist &= attribute dr3d:distance { length }?
dr3d-scene-attlist &= attribute dr3d:focal-length { length }?
dr3d-scene-attlist &=
attribute dr3d:shadow-slant { nonNegativeInteger }?
dr3d-scene-attlist &=
attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }?
dr3d-scene-attlist &= attribute dr3d:ambient-color { color }?
dr3d-scene-attlist &= attribute dr3d:lighting-mode { boolean }?
common-dr3d-transform-attlist = attribute dr3d:transform { text }?
dr3d-light = element dr3d:light { dr3d-light-attlist, empty }
dr3d-light-attlist &= attribute dr3d:diffuse-color { color }?
dr3d-light-attlist &= attribute dr3d:direction { vector3D }
dr3d-light-attlist &= attribute dr3d:enabled { boolean }?
dr3d-light-attlist &= 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 }?
dr3d-sphere-attlist &= 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 }?
draw-custom-shape-attlist &= attribute draw:data { \string }?
draw-enhanced-geometry =
element draw:enhanced-geometry {
draw-enhanced-geometry-attlist, draw-equation*, draw-handle*
}
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "non-primitive" ]
attribute draw:type { custom-shape-type }?
custom-shape-type = "non-primitive" | \string
draw-enhanced-geometry-attlist &=
attribute svg:viewBox {
list { integer, integer, integer, integer }
}?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:mirror-vertical { boolean }?,
[ a:defaultValue = "false" ]
attribute draw:mirror-horizontal { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0" ] attribute draw:text-rotate-angle { double }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:extrusion-allowed { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:text-path-allowed { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:concentric-gradient-fill-allowed { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ] attribute draw:extrusion { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "33%" ]
attribute draw:extrusion-brightness { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "36pt 0" ]
attribute draw:extrusion-depth {
list { length, double }
}?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0%" ]
attribute draw:extrusion-diffusion { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "30" ]
attribute draw:extrusion-number-of-line-segments { integer }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "true" ]
attribute draw:extrusion-light-face { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "true" ]
attribute draw:extrusion-first-light-harsh { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "true" ]
attribute draw:extrusion-second-light-harsh { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "66%" ]
attribute draw:extrusion-first-light-level { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "66%" ]
attribute draw:extrusion-second-light-level { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "(5 0 1)" ]
attribute draw:extrusion-first-light-direction { vector3D }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "(-5 0 1)" ]
attribute draw:extrusion-second-light-direction { vector3D }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:extrusion-metal { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "flat" ]
attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0 0" ]
attribute draw:extrusion-rotation-angle {
list { double, double }
}?
draw-enhanced-geometry-attlist &=
attribute draw:extrusion-rotation-center { vector3D }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "50%" ]
attribute draw:extrusion-shininess { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "50 45" ]
attribute draw:extrusion-skew {
list { double, double }
}?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0%" ]
attribute draw:extrusion-specularity { percent }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "parallel" ]
attribute dr3d:projection { "parallel" | "perspective" }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "3.5cm -3.5cm 25cm" ]
attribute draw:extrusion-viewpoint { point3D }?
point3D = xsd:string
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0.5 -0.5" ]
attribute draw:extrusion-origin {
list { double, double }
}?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:extrusion-color { boolean }?
draw-enhanced-geometry-attlist &=
attribute draw:enhanced-path { \string }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "0" ]
attribute draw:path-stretchpoint-x { double }?,
[ a:defaultValue = "0" ]
attribute draw:path-stretchpoint-y { double }?
draw-enhanced-geometry-attlist &= attribute draw:text-areas { \string }?
draw-enhanced-geometry-attlist &=
attribute draw:glue-points { \string }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "none" ]
attribute draw:glue-point-type { "none" | "segments" | "rectangle" }?
draw-enhanced-geometry-attlist &=
attribute draw:glue-point-leaving-directions { text }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ] attribute draw:text-path { boolean }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "normal" ]
attribute draw:text-path-mode { "normal" | "path" | "shape" }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "path" ]
attribute draw:text-path-scale { "path" | "shape" }?
draw-enhanced-geometry-attlist &=
[ a:defaultValue = "false" ]
attribute draw:text-path-same-letter-heights { boolean }?
draw-enhanced-geometry-attlist &= attribute draw:modifiers { \string }?
draw-equation = element draw:equation { draw-equation-attlist, empty }
draw-equation-attlist &= attribute draw:name { \string }?
draw-equation-attlist &= attribute draw:formula { \string }?
draw-handle = element draw:handle { draw-handle-attlist, empty }
draw-handle-attlist &=
[ a:defaultValue = "false" ]
attribute draw:handle-mirror-vertical { boolean }?
draw-handle-attlist &=
[ a:defaultValue = "false" ]
attribute draw:handle-mirror-horizontal { boolean }?
draw-handle-attlist &=
[ a:defaultValue = "false" ]
attribute draw:handle-switched { boolean }?
draw-handle-attlist &= attribute draw:handle-position { \string }
draw-handle-attlist &=
attribute draw:handle-range-x-minimum { \string }?
draw-handle-attlist &=
attribute draw:handle-range-x-maximum { \string }?
draw-handle-attlist &=
attribute draw:handle-range-y-minimum { \string }?
draw-handle-attlist &=
attribute draw:handle-range-y-maximum { \string }?
draw-handle-attlist &= attribute draw:handle-polar { \string }?
draw-handle-attlist &=
attribute draw:handle-radius-range-minimum { \string }?
draw-handle-attlist &=
attribute draw:handle-radius-range-maximum { \string }?
presentation-shape-attlist &=
attribute presentation:class { presentation-classes }?
presentation-classes =
"title"
| "outline"
| "subtitle"
| "text"
| "graphic"
| "object"
| "chart"
| "table"
| "orgchart"
| "page"
| "notes"
| "handout"
| "header"
| "footer"
| "date-time"
| "page-number"
presentation-shape-attlist &=
attribute presentation:placeholder { boolean }?
presentation-shape-attlist &=
attribute presentation:user-transformed { boolean }?
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:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?,
attribute xlink:show { "new" | "replace" }?,
empty
}
presentation-sound-attlist &=
attribute presentation:play-full { boolean }?
presentation-show-shape =
element presentation:show-shape {
common-presentation-effect-attlist, presentation-sound?
}
common-presentation-effect-attlist &= attribute draw:shape-id { IDREF }
common-presentation-effect-attlist &=
[ a:defaultValue = "none" ]
attribute presentation:effect { presentationEffects }?
presentationEffects =
"none"
| "fade"
| "move"
| "stripes"
| "open"
| "close"
| "dissolve"
| "wavyline"
| "random"
| "lines"
| "laser"
| "appear"
| "hide"
| "move-short"
| "checkerboard"
| "rotate"
| "stretch"
common-presentation-effect-attlist &=
[ a:defaultValue = "none" ]
attribute presentation:direction { presentationEffectDirections }?
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"
common-presentation-effect-attlist &=
[ a:defaultValue = "medium" ]
attribute presentation:speed { presentationSpeeds }?
presentationSpeeds = "slow" | "medium" | "fast"
common-presentation-effect-attlist &=
attribute presentation:delay { duration }?
common-presentation-effect-attlist &=
[ a:defaultValue = "100%" ]
attribute presentation:start-scale { percent }?
common-presentation-effect-attlist &=
attribute presentation:path-id { text }?
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 }
presentation-dim-attlist &= attribute draw:color { color }
presentation-play =
element presentation:play { presentation-play-attlist, empty }
presentation-play-attlist &=
attribute draw:shape-id { IDREF },
[ a:defaultValue = "medium" ]
attribute presentation:speed { presentationSpeeds }?
presentation-animation-group =
element presentation:animation-group {
presentation-animation-elements*
}
common-anim-attlist &=
[ a:defaultValue = "default" ]
attribute presentation:node-type {
"default"
| "on-click"
| "with-previous"
| "after-previous"
| "timing-root"
| "main-sequence"
| "interactive-sequence"
}?
common-anim-attlist &= attribute presentation:preset-id { \string }?
common-anim-attlist &=
attribute presentation:preset-sub-type { \string }?
common-anim-attlist &=
[ a:defaultValue = "custom" ]
attribute presentation:preset-class {
"custom"
| "entrance"
| "exit"
| "emphasis"
| "motion-path"
| "ole-action"
| "media-call"
}?
common-anim-attlist &= attribute presentation:master-element { IDREF }?
common-anim-attlist &= attribute presentation:group-id { \string }?
presentation-event-listener =
element presentation:event-listener {
presentation-event-listener-attlist, presentation-sound?
}
presentation-event-listener-attlist &=
attribute script:event-name { \string }
presentation-event-listener-attlist &=
attribute presentation:action {
"none"
| "previous-page"
| "next-page"
| "first-page"
| "last-page"
| "hide"
| "stop"
| "execute"
| "show"
| "verb"
| "fade-out"
| "sound"
}
presentation-event-listener-attlist &=
[ a:defaultValue = "none" ]
attribute presentation:effect { presentationEffects }?
presentation-event-listener-attlist &=
[ a:defaultValue = "none" ]
attribute presentation:direction { presentationEffectDirections }?
presentation-event-listener-attlist &=
[ a:defaultValue = "medium" ]
attribute presentation:speed { presentationSpeeds }?
presentation-event-listener-attlist &=
[ a:defaultValue = "100%" ]
attribute presentation:start-scale { percent }?
presentation-event-listener-attlist &=
attribute xlink:href { anyURI }?,
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?
presentation-event-listener-attlist &=
attribute presentation:verb { nonNegativeInteger }?
paragraph-content |= element presentation:header { empty }
paragraph-content |= element presentation:footer { empty }
paragraph-content |= element presentation:date-time { empty }
presentation-decls = presentation-decl*
presentation-decl |=
element presentation:header-decl {
presentation-header-decl-attlist, text
}
presentation-header-decl-attlist &=
attribute presentation:name { \string }
presentation-decl |=
element presentation:footer-decl {
presentation-footer-decl-attlist, text
}
presentation-footer-decl-attlist &=
attribute presentation:name { \string }
presentation-decl |=
element presentation:date-time-decl {
presentation-date-time-decl-attlist, text
}
presentation-date-time-decl-attlist &=
attribute presentation:name { \string }
presentation-date-time-decl-attlist &=
attribute presentation:source { "fixed" | "current-date" }
presentation-date-time-decl-attlist &=
attribute style:data-style-name { styleNameRef }?
presentation-settings =
element presentation:settings {
presentation-settings-attlist, presentation-show*
}?
presentation-settings-attlist &=
attribute presentation:start-page { \string }?
presentation-settings-attlist &=
attribute presentation:show { \string }?
presentation-settings-attlist &=
[ a:defaultValue = "true" ]
attribute presentation:full-screen { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:endless { boolean }?
presentation-settings-attlist &=
attribute presentation:pause { duration }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:show-logo { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:force-manual { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "true" ]
attribute presentation:mouse-visible { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:mouse-as-pen { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:start-with-navigator { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "enabled" ]
attribute presentation:animations { "enabled" | "disabled" }?
presentation-settings-attlist &=
[ a:defaultValue = "enabled" ]
attribute presentation:transition-on-click { "enabled" | "disabled" }?
presentation-settings-attlist &=
[ a:defaultValue = "false" ]
attribute presentation:stay-on-top { boolean }?
presentation-settings-attlist &=
[ a:defaultValue = "true" ]
attribute presentation:show-end-of-presentation-slide { boolean }?
presentation-show =
element presentation:show { presentation-show-attlist, empty }
presentation-show-attlist &= attribute presentation:name { \string }
presentation-show-attlist &= attribute presentation:pages { text }
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 }
chart-chart-attlist &= common-draw-size-attlist
chart-chart-attlist &= attribute chart:column-mapping { \string }?
chart-chart-attlist &= attribute chart:row-mapping { \string }?
chart-chart-attlist &= attribute chart:style-name { styleNameRef }?
chart-title = element chart:title { chart-title-attlist, text-p? }
chart-title-attlist &= attribute table:cell-range { cellAddress }?
chart-title-attlist &= common-draw-position-attlist
chart-title-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, empty }
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
chart-legend-attlist &= common-draw-position-attlist
chart-legend-attlist &=
attribute style:legend-expansion { "wide" | "high" | "balanced" }
| (attribute style:legend-expansion { "custom" },
attribute style:legend-expansion-aspect-ratio { double })
| empty
chart-legend-attlist &= 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
chart-plot-area-attlist &= attribute chart:style-name { styleNameRef }?
chart-plot-area-attlist &=
attribute table:cell-range-address { cellRangeAddress }?
chart-plot-area-attlist &=
[ a:defaultValue = "none" ]
attribute chart:data-source-has-labels {
"none" | "row" | "column" | "both"
}?
chart-plot-area-attlist &=
dr3d-scene-attlist, common-dr3d-transform-attlist
chart-wall = element chart:wall { chart-wall-attlist, empty }
chart-wall-attlist &= attribute svg:width { length }?
chart-wall-attlist &= attribute chart:style-name { styleNameRef }?
chart-floor = element chart:floor { chart-floor-attlist, empty }
chart-floor-attlist &= attribute svg:width { length }?
chart-floor-attlist &= 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 { "x" | "y" | "z" }
chart-axis-attlist &= attribute chart:name { \string }?
chart-axis-attlist &= attribute chart:style-name { styleNameRef }?
chart-grid = element chart:grid { chart-grid-attlist }
chart-grid-attlist &=
[ a:defaultValue = "major" ]
attribute chart:class { "major" | "minor" }?
chart-grid-attlist &= 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-series-attlist &=
attribute chart:values-cell-range-address { cellRangeAddress }?
chart-series-attlist &=
attribute chart:label-cell-address { cellAddress }?
chart-series-attlist &= attribute chart:class { namespacedToken }?
chart-series-attlist &= attribute chart:attached-axis { \string }?
chart-series-attlist &= attribute chart:style-name { styleNameRef }?
chart-domain =
element chart:domain {
attribute table:cell-range-address { cellRangeAddress }?
}
chart-categories =
element chart:categories {
attribute table:cell-range-address { cellRangeAddress }?
}
chart-data-point =
element chart:data-point { chart-data-point-attlist, empty }
chart-data-point-attlist &=
attribute chart:repeated { nonNegativeInteger }?
chart-data-point-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 }?
chart-regression-curve =
element chart:regression-curve {
chart-regression-curve-attlist, empty
}
chart-regression-curve-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-forms =
element office:forms {
office-forms-attlist, (form-form | xforms-model)*
}?
office-forms-attlist &=
[ a:defaultValue = "false" ]
attribute form:automatic-focus { boolean }?
office-forms-attlist &=
[ a:defaultValue = "true" ]
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:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?)?
form-form-attlist &=
[ a:defaultValue = "_blank" ]
attribute office:target-frame { targetFrameName }?
form-form-attlist &=
[ a:defaultValue = "get" ]
attribute form:method { "get" | "post" | \string }?
form-form-attlist &=
[ a:defaultValue = "application/x-www-form-urlencoded" ]
attribute form:enctype { \string }?
form-form-attlist &=
[ a:defaultValue = "true" ] attribute form:allow-deletes { boolean }?
form-form-attlist &=
[ a:defaultValue = "true" ] attribute form:allow-inserts { boolean }?
form-form-attlist &=
[ a:defaultValue = "true" ] attribute form:allow-updates { boolean }?
form-form-attlist &=
[ a:defaultValue = "false" ] attribute form:apply-filter { boolean }?
form-form-attlist &=
[ a:defaultValue = "command" ]
attribute form:command-type { "table" | "query" | "command" }?
form-form-attlist &= attribute form:command { text }?
form-form-attlist &= attribute form:datasource { anyURI | \string }?
form-form-attlist &= attribute form:master-fields { \string }?
form-form-attlist &= attribute form:detail-fields { \string }?
form-form-attlist &=
[ a:defaultValue = "true" ]
attribute form:escape-processing { boolean }?
form-form-attlist &= attribute form:filter { \string }?
form-form-attlist &=
[ a:defaultValue = "false" ] attribute form:ignore-result { boolean }?
form-form-attlist &= attribute form:navigation-mode { navigation }?
navigation = "none" | "current" | "parent"
form-form-attlist &= attribute form:order { \string }?
form-form-attlist &= attribute form:tab-cycle { tab-cycles }?
tab-cycles = "records" | "current" | "page"
form-connection-resource =
element form:connection-resource {
attribute xlink:href { anyURI },
empty
}
xforms-model = element xforms:model { anyAttListOrElements }
column-controls |=
element form:text { form-text-attlist, common-form-control-content }
controls |= column-controls
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
form-control-attlist =
common-form-control-attlist,
common-control-id-attlist,
xforms-bind-attlist
common-form-control-content = form-properties?, office-event-listeners?
column-controls |=
element form:textarea {
form-textarea-attlist, common-form-control-content, text-p*
}
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
controls |=
element form:password {
form-password-attlist, common-form-control-content
}
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
form-password-attlist &=
[ a:defaultValue = "*" ] attribute form:echo-char { character }?
controls |=
element form:file { form-file-attlist, common-form-control-content }
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
column-controls |=
element form:formatted-text {
form-formatted-text-attlist, common-form-control-content
}
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
form-formatted-text-attlist &= attribute form:max-value { \string }?
form-formatted-text-attlist &= attribute form:min-value { \string }?
form-formatted-text-attlist &=
[ a:defaultValue = "false" ] attribute form:validation { boolean }?
column-controls |=
element form:number {
form-number-attlist,
common-numeric-control-attlist,
common-form-control-content
}
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 }?
form-number-attlist &= attribute form:current-value { double }?
form-number-attlist &= attribute form:min-value { double }?
form-number-attlist &= attribute form:max-value { double }?
column-controls |=
element form:date {
form-date-attlist,
common-numeric-control-attlist,
common-form-control-content
}
controls |=
element form:time {
form-time-attlist,
common-numeric-control-attlist,
common-form-control-content
}
form-date-attlist &= attribute form:value { date }?
form-time-attlist &= attribute form:value { time }?
form-date-attlist &= attribute form:current-value { date }?
form-time-attlist &= attribute form:current-value { time }?
form-date-attlist &= attribute form:min-value { date }?
form-time-attlist &= attribute form:min-value { time }?
form-date-attlist &= attribute form:max-value { date }?
form-time-attlist &= attribute form:max-value { time }?
controls |=
element form:fixed-text {
form-fixed-text-attlist, common-form-control-content
}
form-fixed-text-attlist &=
form-control-attlist,
for,
common-disabled-attlist,
label,
common-printable-attlist,
common-title-attlist
form-fixed-text-attlist &=
[ a:defaultValue = "false" ] attribute form:multi-line { boolean }?
column-controls |=
element form:combobox {
form-combobox-attlist, common-form-control-content, form-item*
}
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
form-combobox-attlist &= attribute form:auto-complete { boolean }?
form-item = element form:item { form-item-attlist, text }
form-item-attlist &= label
column-controls |=
element form:listbox {
form-listbox-attlist, common-form-control-content, form-option*
}
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
form-listbox-attlist &=
[ a:defaultValue = "false" ] attribute form:multiple { boolean }?
form-listbox-attlist &= attribute form:xforms-list-source { \string }?
form-option = element form:option { form-option-attlist, text }
form-option-attlist &=
current-selected, selected, label, common-value-attlist
controls |=
element form:button {
form-button-attlist, common-form-control-content
}
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
form-button-attlist &=
[ a:defaultValue = "false" ]
attribute form:default-button { boolean }?
form-button-attlist &=
[ a:default-value = "false" ] attribute form:toggle { boolean }?
form-button-attlist &= attribute form:focus-on-click { boolean }?
form-button-attlist &= attribute form:xforms-submission { \string }?
controls |=
element form:image { form-image-attlist, common-form-control-content }
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
column-controls |=
element form:checkbox {
form-checkbox-attlist, common-form-control-content
}
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
states = "unchecked" | "checked" | "unknown"
form-checkbox-attlist &= attribute form:current-state { states }?
form-checkbox-attlist &=
[ a:defaultValue = "false" ] attribute form:is-tristate { boolean }?
form-checkbox-attlist &=
[ a:defaultValue = "unchecked" ] attribute form:state { states }?
controls |=
element form:radio { form-radio-attlist, common-form-control-content }
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
controls |=
element form:frame { form-frame-attlist, common-form-control-content }
form-frame-attlist &=
form-control-attlist,
common-disabled-attlist,
for,
label,
common-printable-attlist,
common-title-attlist
controls |=
element form:image-frame {
form-image-frame-attlist, common-form-control-content
}
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
controls |=
element form:hidden {
form-hidden-attlist, common-form-control-content
}
form-hidden-attlist &= form-control-attlist, common-value-attlist
controls |=
element form:grid {
form-grid-attlist, common-form-control-content, form-column*
}
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 }?
controls |=
element form:value-range {
form-value-range-attlist, common-form-control-content
}
form-value-range-attlist &=
form-control-attlist,
common-disabled-attlist,
common-printable-attlist,
common-tab-attlist,
common-title-attlist,
common-value-attlist
form-value-range-attlist &= attribute form:max-value { \string }?
form-value-range-attlist &= attribute form:min-value { \string }?
form-value-range-attlist &=
[ a:defaultName = "1" ] attribute form:step-size { positiveInteger }?
form-value-range-attlist &=
attribute form:page-step-size { positiveInteger }?
form-value-range-attlist &=
attribute form:delay-for-repeat { duration }?
form-value-range-attlist &=
attribute form:orientation { "horizontal" | "vertical" }?
controls |=
element form:generic-control {
form-generic-control-attlist, common-form-control-content
}
form-generic-control-attlist &= form-control-attlist
common-form-control-attlist &= attribute form:name { \string }?
common-form-control-attlist &=
attribute form:control-implementation { namespacedToken }?
xforms-bind-attlist = attribute xforms:bind { \string }?
types = "submit" | "reset" | "push" | "url"
button-type =
[ a:defaultValue = "push" ] attribute form:button-type { types }?
common-control-id-attlist = attribute form:id { ID }
current-selected =
[ a:defaultValue = "false" ]
attribute form:current-selected { boolean }?
common-value-attlist = attribute form:value { \string }?
common-current-value-attlist = attribute form:current-value { \string }?
common-disabled-attlist =
[ a:defaultValue = "false" ] attribute form:disabled { boolean }?
dropdown =
[ a:defaultValue = "false" ] attribute form:dropdown { boolean }?
for = attribute form:for { \string }?
image-data = attribute form:image-data { anyURI }?
label = attribute form:label { \string }?
common-maxlength-attlist =
attribute form:max-length { nonNegativeInteger }?
common-printable-attlist =
[ a:defaultValue = "true" ] attribute form:printable { boolean }?
common-readonly-attlist =
[ a:defaultValue = "false" ] attribute form:readonly { boolean }?
selected =
[ a:defaultValue = "false" ] attribute form:selected { boolean }?
size = attribute form:size { nonNegativeInteger }?
common-tab-attlist &=
[ a:defaultValue = "0" ]
attribute form:tab-index { nonNegativeInteger }?
common-tab-attlist &=
[ a:defaultValue = "true" ] attribute form:tab-stop { boolean }?
target-frame =
[ a:defaultValue = "_blank" ]
attribute office:target-frame { targetFrameName }?
target-location = attribute xlink:href { anyURI }?
common-title-attlist = attribute form:title { text }?
common-form-visual-effect-attlist &=
attribute form:visual-effect { "flat" | "3d" }?
common-form-relative-image-position-attlist &=
[ a:defaultValue = "center" ]
attribute form:image-position { "center" }?
| (attribute form:image-position {
"start" | "end" | "top" | "bottom"
},
[ a:defaultValue = "center" ]
attribute form:image-align { "start" | "center" | "end" }?)
bound-column = attribute form:bound-column { \string }?
common-convert-empty-attlist =
[ a:defaultValue = "false" ]
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"
}?
form-properties = element form:properties { form-property+ }
form-property |=
element form:property {
form-property-name, form-property-value-and-type-attlist
}
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 |=
element form:list-property {
form-property-name, form-property-type-and-value-list
}
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,
dc-creator?,
dc-date?,
meta-date-string?,
(text-p | text-list)*
}
office-annotation-attlist &= attribute office:display { boolean }?
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 { dc-creator, dc-date, 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 }
script-event-listener-attlist &= attribute script:language { \string }
script-event-listener-attlist &=
attribute script:macro-name { \string }
| (attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?)
math-math = element math:math { mathMarkup }
# 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 }
common-dde-connection-decl-attlist &=
attribute office:dde-topic { \string }
common-dde-connection-decl-attlist &=
attribute office:dde-item { \string }
common-dde-connection-decl-attlist &=
[ a:defaultValue = "true" ]
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 }?
office-dde-source-attlist &=
[ a:defaultValue = "into-default-style-data-style" ]
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
}
animation-element |=
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
}
animation-element |=
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
}
anim-animate-motion-attlist &= attribute svg:path { pathData }?
anim-animate-motion-attlist &= attribute svg:origin { \string }?
anim-animate-motion-attlist &=
[ a:defaultValue = "paced" ]
attribute smil:calcMode {
"discrete" | "linear" | "paced" | "spline"
}?
animation-element |=
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
}
anim-animate-color-attlist &=
[ a:defaultValue = "rgb" ]
attribute anim:color-interpolation { "rgb" | "hsl" }?
anim-animate-color-attlist &=
[ a:defaultValue = "clockwise" ]
attribute anim:color-interpolation-direction {
"clockwise" | "counter-clockwise"
}?
animation-element |=
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
}
anim-animate-transform-attlist &=
attribute svg:type {
"translate" | "scale" | "rotate" | "skewX" | "skewY"
}
animation-element |=
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
}
anim-transition-filter-attlist &= attribute smil:type { \string }
anim-transition-filter-attlist &= attribute smil:subtype { \string }?
anim-transition-filter-attlist &=
[ a:defaultValue = "forward" ]
attribute smil:direction { "forward" | "reverse" }?
anim-transition-filter-attlist &=
attribute smil:fadeColor { "forward" | "reverse" }?
anim-transition-filter-attlist &=
[ a:defaultValue = "in" ] attribute smil:mode { "in" | "out" }?
common-anim-attlist &= attribute anim:id { ID }?
common-anim-target-attlist &= attribute smil:targetElement { IDREF }?
common-anim-named-target-attlist &=
attribute smil:attributeName { \string }
common-anim-target-attlist &= attribute anim:sub-item { \string }?
common-anim-values-attlist &= attribute smil:values { \string }?
common-anim-spline-mode-attlist &=
[ a:defaultValue = "discrete" ]
attribute smil:calcMode {
"discrete" | "linear" | "paced" | "spline"
}?
common-spline-anim-value-attlist &= attribute smil:keyTimes { \string }?
common-spline-anim-value-attlist &=
attribute smil:keySplines { \string }?
common-anim-add-accum-attlist &=
attribute smil:accumulate { "none" | "sum" }?
common-anim-add-accum-attlist &=
attribute smil:additive { "replace" | "sum" }?
common-anim-values-attlist &= attribute anim:formula { \string }?
common-anim-set-values-attlist &= attribute smil:to { \string }?
common-anim-values-attlist &=
common-anim-set-values-attlist,
attribute smil:from { \string }?,
attribute smil:by { \string }?
common-begin-end-timing-attlist &= attribute smil:begin { \string }?
common-begin-end-timing-attlist &= attribute smil:end { \string }?
common-dur-timing-attlist &= attribute smil:dur { \string }?
common-endsync-timing-attlist &=
attribute smil:endsync { "first" | "last" | "all" | "media" }?
common-repeat-timing-attlist &=
attribute smil:repeatDur { \string }?,
attribute smil:repeatCount { nonNegativeInteger | "indefinite" }?
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 &=
[ a:defaultValue = "default" ]
attribute smil:restart {
"never" | "always" | "whenNotActive" | "default"
}?
common-restart-default-attlist &=
[ a:defaultValue = "inherit" ]
attribute smil:restartDefault {
"never" | "always" | "whenNotActive" | "inherit"
}?
common-time-manip-attlist &=
[ a:defaultValue = "0.0" ] attribute smil:accelerate { double }?
common-time-manip-attlist &=
[ a:defaultValue = "0.0" ] attribute smil:decelerate { double }?
common-time-manip-attlist &=
[ a:defaultValue = "false" ] attribute smil:autoReverse { boolean }?
animation-element |=
element anim:par {
common-anim-attlist,
common-timing-attlist,
common-endsync-timing-attlist,
animation-element*
}
common-basic-timing-attlist &=
common-begin-end-timing-attlist,
common-dur-timing-attlist,
common-repeat-timing-attlist
common-timing-attlist &=
common-basic-timing-attlist,
common-restart-timing-attlist,
common-restart-default-attlist,
common-fill-timing-attlist,
common-fill-default-attlist,
common-time-manip-attlist
animation-element |=
element anim:seq {
common-anim-attlist,
common-endsync-timing-attlist,
common-timing-attlist,
animation-element*
}
animation-element |=
element anim:iterate {
common-anim-attlist,
anim-iterate-attlist,
common-timing-attlist,
common-endsync-timing-attlist,
animation-element*
}
anim-iterate-attlist &= common-anim-target-attlist
anim-iterate-attlist &= attribute anim:iterate-type { \string }?
anim-iterate-attlist &= attribute anim:iterate-interval { duration }?
animation-element |=
element anim:audio {
common-anim-attlist, anim-audio-attlist, common-basic-timing-attlist
}
anim-audio-attlist &= attribute xlink:href { anyURI }?
anim-audio-attlist &= attribute anim:audio-level { double }?
animation-element |=
element anim:command {
common-anim-attlist,
anim-command-attlist,
common-begin-end-timing-attlist,
common-anim-target-attlist,
element anim:param {
attribute anim:name { text },
attribute anim:value { text }
}*
}
anim-command-attlist &= attribute anim:command { \string }
style-style =
element style:style {
style-style-attlist, style-style-content, style-map*
}
style-style-attlist &= attribute style:name { styleName }
style-style-attlist &= attribute style:display-name { \string }?
style-style-attlist &=
attribute style:parent-style-name { styleNameRef }?
style-style-attlist &= attribute style:next-style-name { styleNameRef }?
style-style-attlist &=
attribute style:list-style-name { styleName | empty }?
style-style-attlist &=
attribute style:master-page-name { styleNameRef }?
style-style-attlist &=
[ a:defaultValue = "false" ] attribute style:auto-update { boolean }?
style-style-attlist &= attribute style:data-style-name { styleNameRef }?
style-style-attlist &= attribute style:class { \string }?
style-style-attlist &=
attribute style:default-outline-level { positiveInteger }?
style-map = element style:map { style-map-attlist, empty }
style-map-attlist &= attribute style:condition { \string }
style-map-attlist &= attribute style:apply-style-name { styleNameRef }
style-map-attlist &= 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-properties?,
style-header-style?,
style-footer-style?
}
style-page-layout-attlist &= attribute style:name { styleName }
style-page-layout-attlist &=
[ a:defaultValue = "all" ]
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-master-page =
element style:master-page {
style-master-page-attlist,
(style-header, style-header-left?)?,
(style-footer, style-footer-left?)?,
office-forms?,
style-style*,
shape*,
presentation-notes?
}
style-master-page-attlist &= attribute style:name { styleName }
style-master-page-attlist &= attribute style:display-name { \string }?
style-master-page-attlist &=
attribute style:page-layout-name { styleNameRef }
style-master-page-attlist &= attribute draw:style-name { styleNameRef }?
style-master-page-attlist &=
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 &=
[ a:defaultValue = "true" ] 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 }?
presentation-notes-attlist &=
attribute draw:style-name { styleNameRef }?
table-table-template =
element table:table-template {
table-table-template-attlist,
table-first-row?,
table-last-row?,
table-first-column?,
table-last-column?,
(table-body
| (table-even-rows, table-odd-rows)
| (table-even-columns, table-odd-columns))
}
table-table-template-attlist &= attribute text:name { \string }
table-table-template-attlist &=
attribute text:first-row-start-column { rowOrCol }
table-table-template-attlist &=
attribute text:first-row-end-column { rowOrCol }
table-table-template-attlist &=
attribute text:last-row-start-column { rowOrCol }
table-table-template-attlist &=
attribute text:last-row-end-column { rowOrCol }
rowOrCol = "row" | "column"
table-first-row =
element table:first-row { common-table-template-attlist, empty }
table-last-row =
element table:last-row { common-table-template-attlist, empty }
table-first-column =
element table:first-column { common-table-template-attlist, empty }
table-last-column =
element table:last-column { common-table-template-attlist, empty }
table-body = element table:body { common-table-template-attlist, empty }
table-even-rows =
element table:even-rows { common-table-template-attlist, empty }
table-odd-rows =
element table:odd-rows { common-table-template-attlist, empty }
table-even-columns =
element table:even-columns { common-table-template-attlist, empty }
table-odd-columns =
element table:odd-columns { common-table-template-attlist, empty }
common-table-template-attlist &=
attribute text:style-name { styleNameRef },
attribute text:paragraph-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 { fontStyle }?,
attribute svg:font-variant { fontVariant }?,
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 { text }?,
attribute svg:units-per-em { integer }?,
attribute svg:panose-1 { text }?,
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 { text }?,
attribute svg:bbox { text }?,
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 }?
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 { text }?,
empty
}
svg-font-face-name =
element svg:font-face-name {
attribute svg:name { text }?,
empty
}
svg-definition-src =
element svg:definition-src {
common-svg-font-face-xlink-attlist, empty
}
common-svg-font-face-xlink-attlist &=
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "onRequest" ]
attribute xlink:actuate { "onRequest" }?
style-font-face-attlist &= attribute style:name { \string }
style-font-face-attlist &= attribute style:font-adornments { \string }?
style-font-face-attlist &=
attribute style:font-family-generic { fontFamilyGeneric }?
style-font-face-attlist &= attribute style:font-pitch { fontPitch }?
style-font-face-attlist &=
attribute style:font-charset { textEncoding }?
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 { text }?
number-number-attlist &=
[ a:defaultValue = "1" ] 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 }?
number-fraction-attlist &=
attribute number:min-denominator-digits { integer }?
number-fraction-attlist &=
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 }?
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?,
# This DTD does not reflect the fact that some elements must not
# occur more than once.
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 &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-month =
element number:month {
number-month-attlist, common-calendar-attlist, empty
}
number-month-attlist &=
[ a:defaultValue = "false" ] attribute number:textual { boolean }?
number-month-attlist &=
[ a:defaultValue = "false" ]
attribute number:possessive-form { boolean }?
number-month-attlist &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-year =
element number:year {
number-year-attlist, common-calendar-attlist, empty
}
number-year-attlist &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-era =
element number:era {
number-era-attlist, common-calendar-attlist, empty
}
number-era-attlist &=
[ a:defaultValue = "short" ]
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 &=
[ a:defaultValue = "short" ]
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 &=
[ a:defaultValue = "short" ]
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?,
# This DTD does not reflect the fact that some elements must not
# occur more than once.
number-text?,
(any-time, number-text?)+,
style-map*
}
any-time = number-hours | number-am-pm | number-minutes | number-seconds
number-time-style-attlist &=
[ a:defaultValue = "true" ]
attribute number:truncate-on-overflow { boolean }?
number-hours = element number:hours { number-hours-attlist, empty }
number-hours-attlist &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-minutes =
element number:minutes { number-minutes-attlist, empty }
number-minutes-attlist &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-seconds =
element number:seconds { number-seconds-attlist, empty }
number-seconds-attlist &=
[ a:defaultValue = "short" ]
attribute number:style { "short" | "long" }?
number-seconds-attlist &=
[ a:defaultValue = "0" ] 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 }
style-data-style-attlist &= attribute style:display-name { \string }?
common-data-style-attlist &= attribute number:language { languageCode }?
common-data-style-attlist &= attribute number:country { countryCode }?
common-data-style-attlist &= attribute number:title { text }?
common-data-style-attlist &= attribute style:volatile { boolean }?
common-auto-reorder-attlist &=
[ a:defaultValue = "false" ]
attribute number:automatic-order { boolean }?
common-format-source-attlist =
[ a:defaultValue = "fixed" ]
attribute number:format-source { "fixed" | "language" }?
common-data-style-attlist &=
[ a:defaultValue = "1" ]
attribute number:transliteration-format { \string }?
common-data-style-attlist &=
attribute number:transliteration-language { countryCode }?
common-data-style-attlist &=
attribute number:transliteration-country { countryCode }?
common-data-style-attlist &=
[ a:defaultValue = "short" ]
attribute number:transliteration-style {
"short" | "medium" | "long"
}?
common-decimal-places-attlist =
attribute number:decimal-places { integer }?
common-number-attlist &=
attribute number:min-integer-digits { integer }?
common-number-attlist &=
[ a:defaultValue = "false" ] attribute number:grouping { boolean }?
common-calendar-attlist &=
attribute number:calendar {
"gregorian"
| "gengou"
| "ROC"
| "hanja_yoil"
| "hanja"
| "hijri"
| "jewish"
| "buddhist"
| \string
}?
style-style-content |=
attribute style:family { "text" },
style-text-properties?
style-style-content |=
attribute style:family { "paragraph" },
style-paragraph-properties?,
style-text-properties?
style-style-content |=
attribute style:family { "section" },
style-section-properties?
style-style-content |=
attribute style:family { "ruby" },
style-ruby-properties?
text-linenumbering-configuration =
element text:linenumbering-configuration {
text-linenumbering-configuration-attlist,
text-linenumbering-separator?
}
text-linenumbering-configuration-attlist &=
[ a:defaultValue = "true" ] attribute text:number-lines { boolean }?
text-linenumbering-configuration-attlist &= common-num-format-attlist?
text-linenumbering-configuration-attlist &=
attribute text:style-name { styleNameRef }?
text-linenumbering-configuration-attlist &=
attribute text:increment { nonNegativeInteger }?
text-linenumbering-configuration-attlist &=
[ a:defaultValue = "left" ]
attribute text:number-position {
"left" | "right" | "inner" | "outer"
}?
text-linenumbering-configuration-attlist &=
attribute text:offset { nonNegativeLength }?
text-linenumbering-configuration-attlist &=
[ a:defaultValue = "true" ]
attribute text:count-empty-lines { boolean }?
text-linenumbering-configuration-attlist &=
[ a:defaultValue = "false" ]
attribute text:count-in-text-boxes { boolean }?
text-linenumbering-configuration-attlist &=
[ a:defaultValue = "false" ]
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
text-notes-configuration-content &=
attribute text:citation-style-name { styleNameRef }?
text-notes-configuration-content &=
attribute text:citation-body-style-name { styleNameRef }?
text-notes-configuration-content &=
attribute text:default-style-name { styleNameRef }?
text-notes-configuration-content &=
attribute text:master-page-name { styleNameRef }?
text-notes-configuration-content &=
attribute text:start-value { nonNegativeInteger }?
text-notes-configuration-content &=
common-num-format-prefix-suffix-attlist, common-num-format-attlist?
text-notes-configuration-content &=
attribute text:start-numbering-at { "document" | "chapter" | "page" }?
text-notes-configuration-content &=
attribute text:footnotes-position {
"text" | "page" | "section" | "document"
}?
text-notes-configuration-content &=
element text:note-continuation-notice-forward { text }?
text-notes-configuration-content &=
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 }?
text-bibliography-configuration-attlist &=
[ a:defaultValue = "false" ]
attribute text:numbered-entries { boolean }?
text-bibliography-configuration-attlist &=
[ a:defaultValue = "true" ]
attribute text:sort-by-position { boolean }?,
attribute fo:language { languageCode }?,
attribute fo:country { countryCode }?,
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"
},
[ a:defaultValue = "true" ] 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 }
text-list-style-attr &= attribute style:display-name { \string }?
text-list-style-attr &=
[ a:defaultValue = "false" ]
attribute text:consecutive-numbering { boolean }?
text-list-level-style-attr = attribute text:level { positiveInteger }
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?
}
text-list-level-style-number-attr &=
attribute text:style-name { styleNameRef }?
text-list-level-style-number-attr &=
common-num-format-attlist, common-num-format-prefix-suffix-attlist
text-list-level-style-number-attr &=
[ a:defaultValue = "1" ]
attribute text:display-levels { positiveInteger }?
text-list-level-style-number-attr &=
[ a:defaultValue = "1" ]
attribute text:start-value { positiveInteger }?
text-list-style-content |=
element text:list-level-style-bullet {
text-list-level-style-attr,
text-list-level-style-bullet-attr,
style-list-level-properties?,
style-text-properties?
}
text-list-level-style-bullet-attr &=
attribute text:style-name { styleNameRef }?
text-list-level-style-bullet-attr &=
attribute text:bullet-char { character }
text-list-level-style-bullet-attr &=
common-num-format-prefix-suffix-attlist
text-list-level-style-bullet-attr &=
attribute text:bullet-relative-size { percent }?
text-list-style-content |=
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-image-attr &=
common-draw-data-attlist | office-binary-data
text-outline-style =
element text:outline-style { text-outline-level-style+ }
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 }
text-outline-level-style-attlist &=
attribute text:style-name { styleNameRef }?
text-outline-level-style-attlist &=
common-num-format-attlist, common-num-format-prefix-suffix-attlist
text-outline-level-style-attlist &=
[ a:defaultValue = "1" ]
attribute text:display-levels { positiveInteger }?
text-outline-level-style-attlist &=
[ a:defaultValue = "1" ]
attribute text:start-value { positiveInteger }?
style-style-content |=
attribute style:family { "table" },
style-table-properties?
style-style-content |=
attribute style:family { "table-column" },
style-table-column-properties?
style-style-content |=
attribute style:family { "table-row" },
style-table-row-properties?
style-style-content |=
attribute style:family { "table-cell" },
style-table-cell-properties?,
style-paragraph-properties?,
style-text-properties?
style-style-content |=
attribute style:family { "graphic" | "presentation" },
style-graphic-properties?,
style-paragraph-properties?,
style-text-properties?
style-graphic-properties =
element style:graphic-properties { style-graphic-properties-content }
style-graphic-properties-content = style-properties-content
style-graphic-properties-content-strict =
style-graphic-properties-attlist,
style-graphic-fill-properties-attlist,
style-graphic-properties-elements
style-graphic-properties-elements = empty
style-style-content |=
attribute style:family { "drawing-page" },
style-drawing-page-properties?
style-drawing-page-properties =
element style:drawing-page-properties {
style-drawing-page-properties-content
}
style-drawing-page-properties-content = style-properties-content
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 }?
common-draw-gradient-attlist &= attribute draw:display-name { \string }?
common-draw-gradient-attlist &= attribute draw:style { gradient-style }
gradient-style =
"linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular"
common-draw-gradient-attlist &=
attribute draw:cx { percent }?,
attribute draw:cy { percent }?
draw-gradient-attlist &=
attribute draw:start-color { color }?,
attribute draw:end-color { color }?
draw-gradient-attlist &=
attribute draw:start-intensity { percent }?,
attribute draw:end-intensity { percent }?
common-draw-gradient-attlist &= attribute draw:angle { integer }?
common-draw-gradient-attlist &= attribute draw:border { percent }?
svg-linearGradient =
element svg:linearGradient {
common-svg-gradient-attlist,
[ a:defaultValue = "0%" ]
attribute svg:x1 { coordinate | percent }?,
[ a:defaultValue = "0%" ]
attribute svg:y1 { coordinate | percent }?,
[ a:defaultValue = "100%" ]
attribute svg:x2 { coordinate | percent }?,
[ a:defaultValue = "100%" ]
attribute svg:y2 { coordinate | percent }?,
svg-stop*
}
svg-radialGradient =
element svg:radialGradient {
common-svg-gradient-attlist,
[ a:defaultValue = "50%" ]
attribute svg:cx { coordinate | percent }?,
[ a:defaultValue = "50%" ]
attribute svg:cy { coordinate | percent }?,
[ a:defaultValue = "50%" ]
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 &=
[ a:defaultValue = "objectBoundingBox" ]
attribute svg:gradientUnits { "objectBoundingBox" }?,
attribute svg:gradientTransform { \string }?,
[ a:defaultValue = "pad" ]
attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }?
common-svg-gradient-attlist &= attribute draw:name { styleName }
common-svg-gradient-attlist &= attribute draw:display-name { \string }?
draw-hatch = element draw:hatch { draw-hatch-attlist, empty }
draw-hatch-attlist &= attribute draw:name { styleName }
draw-hatch-attlist &= attribute draw:display-name { \string }?
draw-hatch-attlist &=
attribute draw:style { "single" | "double" | "triple" }
draw-hatch-attlist &= attribute draw:color { color }?
draw-hatch-attlist &= attribute draw:distance { length }?
draw-hatch-attlist &= attribute draw:rotation { integer }?
draw-fill-image =
element draw:fill-image {
draw-fill-image-attlist,
attribute xlink:href { anyURI },
[ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,
[ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,
[ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?,
empty
}
draw-fill-image-attlist &= attribute draw:name { styleName }
draw-fill-image-attlist &= attribute draw:display-name { \string }?
draw-fill-image-attlist &=
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 { percent }?,
attribute draw:end { percent }?
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 }
draw-marker-attlist &= 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 }
draw-stroke-dash-attlist &= attribute draw:display-name { \string }?
draw-stroke-dash-attlist &= attribute draw:style { "rect" | "round" }?
draw-stroke-dash-attlist &=
attribute draw:dots1 { integer }?,
attribute draw:dots1-length { length }?,
attribute draw:dots2 { integer }?,
attribute draw:dots2-length { length }?
draw-stroke-dash-attlist &= attribute draw:distance { length }?
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-style-content |=
attribute style:family { "chart" },
style-chart-properties?,
style-graphic-properties?,
style-paragraph-properties?,
style-text-properties?
style-properties-content = anyAttListOrElements
style-page-layout-properties =
element style:page-layout-properties {
style-page-layout-properties-content
}
style-page-layout-properties-content = style-properties-content
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 }?
style-page-layout-properties-attlist &=
common-num-format-attlist?, common-num-format-prefix-suffix-attlist
style-page-layout-properties-attlist &=
attribute style:paper-tray-name { "default" | \string }?
style-page-layout-properties-attlist &=
attribute style:print-orientation { "portrait" | "landscape" }?
style-page-layout-properties-attlist &=
common-horizontal-margin-attlist,
common-vertical-margin-attlist,
common-margin-attlist
style-page-layout-properties-attlist &= common-border-attlist
style-page-layout-properties-attlist &= common-border-line-width-attlist
style-page-layout-properties-attlist &= common-padding-attlist
style-page-layout-properties-attlist &= common-shadow-attlist
style-page-layout-properties-attlist &= common-background-color-attlist
style-page-layout-properties-elements &= style-background-image
style-page-layout-properties-elements &= style-columns
style-page-layout-properties-attlist &=
attribute style:register-truth-ref-style-name { styleNameRef }?
style-page-layout-properties-attlist &=
attribute style:print {
list {
("headers"
| "grid"
| "annotations"
| "objects"
| "charts"
| "drawings"
| "formulas"
| "zero-values")*
}
}?
style-page-layout-properties-attlist &=
attribute style:print-page-order { "ttb" | "ltr" }?
style-page-layout-properties-attlist &=
attribute style:first-page-number { positiveInteger | "continue" }?
style-page-layout-properties-attlist &=
attribute style:scale-to { percent }?,
attribute style:scale-to-pages { positiveInteger }?
style-page-layout-properties-attlist &=
attribute style:table-centering {
"horizontal" | "vertical" | "both" | "none"
}?
style-page-layout-properties-attlist &=
attribute style:footnote-max-height { length }?
style-page-layout-properties-attlist &= common-writing-mode-attlist
style-page-layout-properties-elements &= 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 }?,
[ a:defaultValue = "left" ]
attribute style:adjustment { "left" | "center" | "right" }?,
attribute style:distance-before-sep { length }?,
attribute style:distance-after-sep { length }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-mode { "none" | "line" | "both" }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-base-height { length }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-ruby-height { length }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-lines { positiveInteger }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-color { color }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-ruby-below { boolean }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-print { boolean }?
style-page-layout-properties-attlist &=
attribute style:layout-grid-display { boolean }?
style-header-footer-properties =
element style:header-footer-properties {
style-header-footer-properties-content
}
style-header-footer-properties-content = style-properties-content
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 }?
style-header-footer-properties-attlist &=
common-horizontal-margin-attlist,
common-vertical-margin-attlist,
common-margin-attlist
style-header-footer-properties-attlist &= common-border-attlist
style-header-footer-properties-attlist &=
common-border-line-width-attlist
style-header-footer-properties-attlist &= common-padding-attlist
style-header-footer-properties-attlist &=
common-background-color-attlist
style-header-footer-properties-elements &= style-background-image
style-header-footer-properties-attlist &= common-shadow-attlist
style-header-footer-properties-attlist &=
attribute style:dynamic-spacing { boolean }?
style-text-properties =
element style:text-properties { style-text-properties-content }
style-text-properties-content = style-properties-content
style-text-properties-content-strict =
style-text-properties-attlist, style-text-properties-elements
style-text-properties-elements = empty
style-text-properties-attlist &=
attribute fo:font-variant { fontVariant }?
fontVariant = "normal" | "small-caps"
style-text-properties-attlist &=
attribute fo:text-transform {
"none" | "lowercase" | "uppercase" | "capitalize"
}?
style-text-properties-attlist &= attribute fo:color { color }?
style-text-properties-attlist &=
attribute style:use-window-font-color { boolean }?
style-text-properties-attlist &=
attribute style:text-outline { boolean }?
style-text-properties-attlist &=
attribute style:text-line-through-type { lineType }?
style-text-properties-attlist &=
attribute style:text-line-through-style { lineStyle }?
style-text-properties-attlist &=
attribute style:text-line-through-width { lineWidth }?
style-text-properties-attlist &=
attribute style:text-line-through-color { "font-color" | color }?
style-text-properties-attlist &=
attribute style:text-line-through-text { \string }?
style-text-properties-attlist &=
attribute style:text-line-through-text-style { styleNameRef }?
style-text-properties-attlist &=
attribute style:text-position {
list { (percent | "super" | "sub"), percent? }
}?
style-text-properties-attlist &=
attribute style:font-name { \string }?,
attribute style:font-name-asian { \string }?,
attribute style:font-name-complex { \string }?
style-text-properties-attlist &=
attribute fo:font-family { \string }?,
attribute style:font-family-asian { \string }?,
attribute style:font-family-complex { \string }?
style-text-properties-attlist &=
attribute style:font-family-generic { fontFamilyGeneric }?,
attribute style:font-family-generic-asian { fontFamilyGeneric }?,
attribute style:font-family-generic-complex { fontFamilyGeneric }?
fontFamilyGeneric =
"roman" | "swiss" | "modern" | "decorative" | "script" | "system"
style-text-properties-attlist &=
attribute style:font-style-name { \string }?,
attribute style:font-style-name-asian { \string }?,
attribute style:font-style-name-complex { \string }?
style-text-properties-attlist &=
attribute style:font-pitch { fontPitch }?,
attribute style:font-pitch-asian { fontPitch }?,
attribute style:font-pitch-complex { fontPitch }?
fontPitch = "fixed" | "variable"
style-text-properties-attlist &=
attribute style:font-charset { textEncoding }?,
attribute style:font-charset-asian { textEncoding }?,
attribute style:font-charset-complex { textEncoding }?
textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" }
style-text-properties-attlist &=
attribute fo:font-size { positiveLength | percent }?,
attribute style:font-size-asian { positiveLength | percent }?,
attribute style:font-size-complex { positiveLength | percent }?
style-text-properties-attlist &=
attribute style:font-size-rel { length }?,
attribute style:font-size-rel-asian { length }?,
attribute style:font-size-rel-complex { length }?
style-text-properties-attlist &=
attribute style:script-type {
"latin" | "asian" | "complex" | "ignore"
}?
style-text-properties-attlist &=
attribute fo:letter-spacing { length | "normal" }?
style-text-properties-attlist &=
attribute fo:language { languageCode }?,
attribute style:language-asian { languageCode }?,
attribute style:language-complex { languageCode }?
style-text-properties-attlist &=
attribute fo:country { countryCode }?,
attribute style:country-asian { countryCode }?,
attribute style:country-complex { countryCode }?
style-text-properties-attlist &=
attribute fo:font-style { fontStyle }?,
attribute style:font-style-asian { fontStyle }?,
attribute style:font-style-complex { fontStyle }?
fontStyle = "normal" | "italic" | "oblique"
style-text-properties-attlist &=
attribute style:font-relief { "none" | "embossed" | "engraved" }?
style-text-properties-attlist &=
attribute fo:text-shadow { shadowType }?
shadowType =
"none"
| # The following string must match an XSL shadow decl
\string
style-text-properties-attlist &=
attribute style:text-underline-type { lineType }?
lineType = "none" | "single" | "double"
style-text-properties-attlist &=
attribute style:text-underline-style { lineStyle }?
lineStyle =
"none"
| "solid"
| "dotted"
| "dash"
| "long-dash"
| "dot-dash"
| "dot-dot-dash"
| "wave"
style-text-properties-attlist &=
attribute style:text-underline-width { lineWidth }?
lineWidth =
"auto"
| "normal"
| "bold"
| "thin"
| "dash"
| "medium"
| "thick"
| positiveInteger
| percent
| positiveLength
style-text-properties-attlist &=
attribute style:text-underline-color { "font-color" | color }?
style-text-properties-attlist &=
attribute fo:font-weight { fontWeight }?,
attribute style:font-weight-asian { fontWeight }?,
attribute style:font-weight-complex { fontWeight }?
fontWeight =
"normal"
| "bold"
| "100"
| "200"
| "300"
| "400"
| "500"
| "600"
| "700"
| "800"
| "900"
style-text-properties-attlist &=
attribute style:text-underline-mode { lineMode }?
lineMode = "continuous" | "skip-white-space"
style-text-properties-attlist &=
attribute style:text-line-through-mode { lineMode }?
style-text-properties-attlist &=
attribute style:letter-kerning { boolean }?
style-text-properties-attlist &=
attribute style:text-blinking { boolean }?
style-text-properties-attlist &= common-background-color-attlist
style-text-properties-attlist &=
attribute style:text-combine { "none" | "letters" | "lines" }?
style-text-properties-attlist &=
attribute style:text-combine-start-char { character }?,
attribute style:text-combine-end-char { character }?
style-text-properties-attlist &=
attribute style:text-emphasize {
"none"
| list {
("none" | "accent" | "dot" | "circle" | "disc"),
("above" | "below")
}
}?
style-text-properties-attlist &= attribute style:text-scale { percent }?
style-text-properties-attlist &=
attribute style:text-rotation-angle { integer }?
style-text-properties-attlist &=
attribute style:text-rotation-scale { "fixed" | "line-height" }?
style-text-properties-attlist &= attribute fo:hyphenate { boolean }?
style-text-properties-attlist &=
attribute fo:hyphenation-remain-char-count { positiveInteger }?
style-text-properties-attlist &=
attribute fo:hyphenation-push-char-count { positiveInteger }?
style-text-properties-attlist &=
attribute text:display { "true" }
| attribute text:display { "none" }
| (attribute text:display { "condition" },
attribute text:condition { "none" })
| empty
style-paragraph-properties =
element style:paragraph-properties {
style-paragraph-properties-content
}
style-paragraph-properties-content = style-properties-content
style-paragraph-properties-content-strict =
style-paragraph-properties-attlist,
style-paragraph-properties-elements
style-paragraph-properties-attlist &=
attribute fo:line-height { "normal" | nonNegativeLength | percent }?
style-paragraph-properties-attlist &=
attribute style:line-height-at-least { nonNegativeLength }?
style-paragraph-properties-attlist &=
attribute style:line-spacing { length }?
style-paragraph-properties-attlist &=
attribute style:font-independent-line-spacing { boolean }?
style-paragraph-properties-attlist &= common-text-align
common-text-align =
attribute fo:text-align {
"start" | "end" | "left" | "right" | "center" | "justify"
}?
style-paragraph-properties-attlist &=
attribute fo:text-align-last { "start" | "center" | "justify" }?
style-paragraph-properties-attlist &=
attribute style:justify-single-word { boolean }?
style-paragraph-properties-attlist &=
attribute fo:keep-together { "auto" | "always" }?
style-paragraph-properties-attlist &=
attribute fo:widows { nonNegativeInteger }?
style-paragraph-properties-attlist &=
attribute fo:orphans { nonNegativeInteger }?
style-paragraph-properties-elements &= style-tab-stops
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 { nonNegativeLength }
style-tab-stop-attlist &=
[ a:defaultValue = "left" ]
attribute style:type { "left" | "center" | "right" }?
| (attribute style:type { "char" },
style-tab-stop-char-attlist)
style-tab-stop-char-attlist &= attribute style:char { character }
style-tab-stop-attlist &= attribute style:leader-type { lineType }?
style-tab-stop-attlist &= attribute style:leader-style { lineStyle }?
style-tab-stop-attlist &= attribute style:leader-width { lineWidth }?
style-tab-stop-attlist &=
attribute style:leader-color { "font-color" | color }?
style-tab-stop-attlist &=
[ a:defaultValue = " " ] attribute style:leader-text { \string }?
style-tab-stop-attlist &=
attribute style:leader-text-style { styleNameRef }?
style-paragraph-properties-attlist &=
attribute style:tab-stop-distance { nonNegativeLength }?
style-paragraph-properties-attlist &=
attribute fo:hyphenation-keep { "auto" | "page" }?
style-paragraph-properties-attlist &=
attribute fo:hyphenation-ladder-count {
"no-limit" | positiveInteger
}?
style-paragraph-properties-elements &= style-drop-cap
style-drop-cap =
element style:drop-cap { style-drop-cap-attlist, empty }?
style-drop-cap-attlist &=
[ a:defaultValue = "1" ]
attribute style:length { "word" | positiveInteger }?
style-drop-cap-attlist &=
[ a:defaultValue = "1" ] attribute style:lines { positiveInteger }?
style-drop-cap-attlist &=
[ a:defaultValue = "0cm" ] attribute style:distance { length }?
style-drop-cap-attlist &= attribute style:style-name { styleNameRef }?
style-paragraph-properties-attlist &=
attribute style:register-true { boolean }?
style-paragraph-properties-attlist &= common-horizontal-margin-attlist
common-horizontal-margin-attlist =
attribute fo:margin-left { length | percent }?,
attribute fo:margin-right { length | percent }?
style-paragraph-properties-attlist &=
attribute fo:text-indent { length | percent }?
style-paragraph-properties-attlist &=
attribute style:auto-text-indent { boolean }?
style-paragraph-properties-attlist &= common-vertical-margin-attlist
common-vertical-margin-attlist =
attribute fo:margin-top { nonNegativeLength | percent }?,
attribute fo:margin-bottom { nonNegativeLength | percent }?
style-paragraph-properties-attlist &= common-margin-attlist
common-margin-attlist =
attribute fo:margin { nonNegativeLength | percent }?
style-paragraph-properties-attlist &= common-break-attlist
common-break-attlist =
attribute fo:break-before { "auto" | "column" | "page" }?,
attribute fo:break-after { "auto" | "column" | "page" }?
style-paragraph-properties-attlist &= common-background-color-attlist
common-background-color-attlist =
attribute fo:background-color { "transparent" | color }?
style-paragraph-properties-elements &= style-background-image
style-background-image =
element style:background-image {
style-background-image-attlist,
(common-draw-data-attlist | office-binary-data | empty)
}?
style-background-image-attlist &=
[ a:defaultValue = "repeat" ]
attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
style-background-image-attlist &=
[ a:defaultValue = "center" ]
attribute style:position {
"left"
| "center"
| "right"
| "top"
| "bottom"
| list { horiBackPos, vertBackPos }
| list { vertBackPos, horiBackPos }
}?
horiBackPos = "left" | "center" | "right"
vertBackPos = "top" | "center" | "bottom"
style-background-image-attlist &=
attribute style:filter-name { \string }?
style-background-image-attlist &= attribute draw:opacity { percent }?
style-paragraph-properties-attlist &= common-border-attlist
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 }?
style-paragraph-properties-attlist &= common-border-line-width-attlist
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 }
style-paragraph-properties-attlist &= common-padding-attlist
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 }?
style-paragraph-properties-attlist &= common-shadow-attlist
common-shadow-attlist = attribute style:shadow { shadowType }?
style-paragraph-properties-attlist &= common-keep-with-next-attlist
common-keep-with-next-attlist =
attribute fo:keep-with-next { "auto" | "always" }?
style-paragraph-properties-attlist &=
[ a:defaultValue = "false" ] attribute text:number-lines { boolean }?
style-paragraph-properties-attlist &=
attribute text:line-number { nonNegativeInteger }?
style-paragraph-properties-attlist &=
attribute style:text-autospace { "none" | "ideograph-alpha" }?
style-paragraph-properties-attlist &=
attribute style:punctuation-wrap { "simple" | "hanging" }?
style-paragraph-properties-attlist &=
attribute style:line-break { "normal" | "strict" }?
style-paragraph-properties-attlist &=
[ a:defaultValue = "auto" ]
attribute style:vertical-align {
"top" | "middle" | "bottom" | "auto" | "baseline"
}?
style-paragraph-properties-attlist &= common-writing-mode-attlist
common-writing-mode-attlist =
attribute style:writing-mode {
"lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page"
}?
style-paragraph-properties-attlist &=
attribute style:writing-mode-automatic { boolean }?
style-paragraph-properties-attlist &=
attribute style:snap-to-layout-grid { boolean }?
style-paragraph-properties-attlist &= common-page-number-attlist
common-page-number-attlist =
attribute style:page-number { positiveInteger | "auto" }?
style-paragraph-properties-attlist &=
attribute style:background-transparency { percent }?
style-ruby-properties =
element style:ruby-properties { style-ruby-properties-content }
style-ruby-properties-content = style-properties-content
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" }?
style-ruby-properties-attlist &=
attribute style:ruby-align {
"left"
| "center"
| "right"
| "distribute-letter"
| "distribute-space"
}?
style-section-properties =
element style:section-properties { style-section-properties-content }
style-section-properties-content = style-properties-content
style-section-properties-content-strict =
style-section-properties-attlist, style-section-properties-elements
style-section-properties-attlist &= common-background-color-attlist
style-section-properties-elements &= style-background-image
style-section-properties-attlist &= common-horizontal-margin-attlist
style-section-properties-elements &= style-columns
style-columns =
element style:columns {
style-columns-attlist, style-column-sep?, style-column*
}?
style-columns-attlist &= attribute fo:column-count { positiveInteger }
style-columns-attlist &= attribute fo:column-gap { length }?
style-column = element style:column { style-column-attlist }
style-column-attlist &= attribute style:rel-width { relativeLength }
style-column-attlist &=
[ a:defaultValue = "0cm" ] attribute fo:start-indent { length }?
style-column-attlist &=
[ a:defaultValue = "0cm" ] attribute fo:end-indent { length }?
style-column-attlist &=
[ a:defaultValue = "0cm" ] attribute fo:space-before { length }?
style-column-attlist &=
[ a:defaultValue = "0cm" ] attribute fo:space-after { length }?
style-column-sep = element style:column-sep { style-column-sep-attlist }
style-column-sep-attlist &=
[ a:defaultValue = "solid" ]
attribute style:style {
"none" | "solid" | "dotted" | "dashed" | "dot-dashed"
}?
style-column-sep-attlist &= attribute style:width { length }
style-column-sep-attlist &=
[ a:defaultValue = "100%" ] attribute style:height { percent }?
style-column-sep-attlist &=
[ a:defaultValue = "top" ]
attribute style:vertical-align { "top" | "middle" | "bottom" }?
style-column-sep-attlist &=
[ a:defaultValue = "#000000" ] attribute style:color { color }?
style-section-properties-attlist &=
[ a:defaultValue = "false" ] attribute style:protect { boolean }?
style-section-properties-attlist &=
attribute text:dont-balance-text-columns { boolean }?
style-section-properties-attlist &= common-writing-mode-attlist
style-section-properties-elements &= text-notes-configuration*
style-table-properties =
element style:table-properties { style-table-properties-content }
style-table-properties-content = style-properties-content
style-table-properties-content-strict =
style-table-properties-attlist, style-table-properties-elements
style-table-properties-attlist &=
attribute style:width { positiveLength }?,
attribute style:rel-width { percent }?
style-table-properties-attlist &=
attribute table:align { "left" | "center" | "right" | "margins" }?
style-table-properties-attlist &= common-horizontal-margin-attlist
style-table-properties-attlist &= common-vertical-margin-attlist
style-table-properties-attlist &= common-margin-attlist
style-table-properties-attlist &= common-page-number-attlist
style-table-properties-attlist &= common-break-attlist
style-table-properties-attlist &= common-background-color-attlist
style-table-properties-elements &= style-background-image
style-table-properties-attlist &= common-shadow-attlist
style-table-properties-attlist &= common-keep-with-next-attlist
style-table-properties-attlist &=
attribute style:may-break-between-rows { boolean }?
style-table-properties-attlist &=
attribute table:border-model { "collapsing" | "separating" }?
style-table-properties-attlist &= common-writing-mode-attlist
style-table-properties-attlist &= attribute table:display { boolean }?
style-table-column-properties =
element style:table-column-properties {
style-table-column-properties-content
}
style-table-column-properties-content = style-properties-content
style-table-column-properties-content-strict =
style-table-column-properties-attlist,
style-table-column-properties-elements
style-table-column-properties-elements = empty
style-table-column-properties-attlist &=
attribute style:column-width { positiveLength }?,
attribute style:rel-column-width { relativeLength }?
style-table-column-properties-attlist &=
attribute style:use-optimal-column-width { boolean }?
style-table-column-properties-attlist &= common-break-attlist
style-table-row-properties =
element style:table-row-properties {
style-table-row-properties-content
}
style-table-row-properties-content = style-properties-content
style-table-row-properties-content-strict =
style-table-row-properties-attlist,
style-table-row-properties-elements
style-table-row-properties-attlist &=
attribute style:row-height { positiveLength }?,
attribute style:min-row-height { nonNegativeLength }?
style-table-row-properties-attlist &=
attribute style:use-optimal-row-height { boolean }?
style-table-row-properties-attlist &= common-background-color-attlist
style-table-row-properties-elements &= style-background-image
style-table-row-properties-attlist &= common-break-attlist
style-table-row-properties-attlist &=
attribute fo:keep-together { "auto" | "always" }?
style-table-cell-properties =
element style:table-cell-properties {
style-table-cell-properties-content
}
style-table-cell-properties-content = style-properties-content
style-table-cell-properties-content-strict =
style-table-cell-properties-attlist,
style-table-cell-properties-elements
style-table-cell-properties-attlist &=
attribute style:vertical-align {
"top" | "middle" | "bottom" | "automatic"
}?
style-table-cell-properties-attlist &=
attribute style:text-align-source { "fix" | "value-type" }?
style-table-cell-properties-attlist &= common-style-direction-attlist
common-style-direction-attlist =
attribute style:direction { "ltr" | "ttb" }?
style-table-cell-properties-attlist &=
attribute style:glyph-orientation-vertical { "auto" | "0" }?
style-table-cell-properties-attlist &= common-shadow-attlist
style-table-cell-properties-attlist &= common-background-color-attlist
style-table-cell-properties-elements &= style-background-image
style-table-cell-properties-attlist &= common-border-attlist
style-table-cell-properties-attlist &=
attribute style:diagonal-tl-br { \string }?,
attribute style:diagonal-tl-br-widths { borderWidths }?,
attribute style:diagonal-bl-tr { \string }?,
attribute style:diagonal-bl-tr-widths { borderWidths }?
style-table-cell-properties-attlist &= common-border-line-width-attlist
style-table-cell-properties-attlist &= common-padding-attlist
style-table-cell-properties-attlist &=
attribute fo:wrap-option { "no-wrap" | "wrap" }?
style-table-cell-properties-attlist &= common-rotation-angle-attlist
common-rotation-angle-attlist =
attribute style:rotation-angle { nonNegativeInteger }?
style-table-cell-properties-attlist &=
attribute style:rotation-align {
"none" | "bottom" | "top" | "center"
}?
style-table-cell-properties-attlist &=
attribute style:cell-protect {
"none"
| "hidden-and-protected"
| list { ("protected" | "formula-hidden")+ }
}?
style-table-cell-properties-attlist &=
attribute style:print-content { boolean }?
style-table-cell-properties-attlist &=
attribute style:decimal-places { nonNegativeInteger }?
style-table-cell-properties-attlist &=
attribute style:repeat-content { boolean }?
style-table-cell-properties-attlist &=
attribute style:shrink-to-fit { boolean }?
style-list-level-properties =
element style:list-level-properties {
style-list-level-properties-content
}
style-list-level-properties-content = style-properties-content
style-list-level-properties-content-strict =
style-list-level-properties-attlist,
style-list-level-properties-elements
style-list-level-properties-elements = empty
style-list-level-properties-attlist &= common-text-align
style-list-level-properties-attlist &=
attribute text:space-before { nonNegativeLength }?
style-list-level-properties-attlist &=
attribute text:min-label-width { nonNegativeLength }?
style-list-level-properties-attlist &=
attribute text:min-label-distance { nonNegativeLength }?
style-list-level-properties-attlist &=
attribute style:font-name { \string }?
style-list-level-properties-attlist &=
attribute fo:width { positiveLength }?,
attribute fo:height { positiveLength }?
style-list-level-properties-attlist &=
common-vertical-rel-attlist, common-vertical-pos-attlist
style-graphic-properties-attlist &=
attribute draw:stroke { "none" | "dash" | "solid" }?
style-graphic-properties-attlist &=
attribute draw:stroke-dash { styleNameRef }?
style-graphic-properties-attlist &=
attribute draw:stroke-dash-names { styleNameRefs }?
style-graphic-properties-attlist &=
attribute svg:stroke-width { length }?
style-graphic-properties-attlist &=
attribute svg:stroke-color { color }?
style-graphic-properties-attlist &=
attribute draw:marker-start { styleNameRef }?
style-graphic-properties-attlist &=
attribute draw:marker-end { styleNameRef }?
style-graphic-properties-attlist &=
attribute draw:marker-start-width { length }?
style-graphic-properties-attlist &=
attribute draw:marker-end-width { length }?
style-graphic-properties-attlist &=
attribute draw:marker-start-center { boolean }?
style-graphic-properties-attlist &=
attribute draw:marker-end-center { boolean }?
style-graphic-properties-attlist &=
attribute svg:stroke-opacity {
xsd:double { minInclusive = "0" maxInclusive = "1" }
| percent
}?
style-graphic-properties-attlist &=
attribute draw:stroke-linejoin {
"miter" | "round" | "bevel" | "middle" | "none" | "inherit"
}?
style-graphic-fill-properties-attlist &=
attribute draw:fill {
"none" | "solid" | "bitmap" | "gradient" | "hatch"
}?
style-graphic-fill-properties-attlist &=
attribute draw:fill-color { color }?
style-graphic-fill-properties-attlist &=
attribute draw:secondary-fill-color { color }?
style-graphic-fill-properties-attlist &=
attribute draw:fill-gradient-name { styleNameRef }?
style-graphic-fill-properties-attlist &=
attribute draw:gradient-step-count { nonNegativeInteger }?
style-graphic-fill-properties-attlist &=
attribute draw:fill-hatch-name { styleNameRef }?
style-graphic-fill-properties-attlist &=
attribute draw:fill-hatch-solid { boolean }?
style-graphic-fill-properties-attlist &=
attribute draw:fill-image-name { styleNameRef }?
style-graphic-fill-properties-attlist &=
attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
style-graphic-fill-properties-attlist &=
attribute draw:fill-image-width { length | percent }?,
attribute draw:fill-image-height { length | percent }?
style-graphic-fill-properties-attlist &=
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"
}?
style-graphic-fill-properties-attlist &=
attribute draw:tile-repeat-offset { text }?
style-graphic-fill-properties-attlist &=
attribute draw:opacity { percent }?
style-graphic-fill-properties-attlist &=
attribute draw:opacity-name { styleNameRef }?
style-graphic-fill-properties-attlist &=
attribute svg:fill-rule { "nonzero" | "evenodd" }?
style-graphic-properties-attlist &=
attribute draw:symbol-color { color }?
style-graphic-properties-attlist &=
attribute text:animation {
"none" | "scroll" | "alternate" | "slide"
}?
style-graphic-properties-attlist &=
attribute text:animation-direction {
"left" | "right" | "up" | "down"
}?
style-graphic-properties-attlist &=
attribute text:animation-start-inside { boolean }?
style-graphic-properties-attlist &=
attribute text:animation-stop-inside { boolean }?
style-graphic-properties-attlist &=
attribute text:animation-repeat { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute text:animation-delay { duration }?
style-graphic-properties-attlist &=
attribute text:animation-steps { length }?
style-graphic-properties-attlist &=
attribute draw:auto-grow-width { boolean }?,
attribute draw:auto-grow-height { boolean }?
style-graphic-properties-attlist &=
attribute draw:fit-to-size { boolean }?
style-graphic-properties-attlist &=
attribute draw:fit-to-contour { boolean }?
style-graphic-properties-attlist &=
attribute draw:textarea-vertical-align {
"top" | "middle" | "bottom" | "justify"
}?
style-graphic-properties-attlist &=
attribute draw:textarea-horizontal-align {
"left" | "center" | "right" | "justify"
}?
style-graphic-properties-attlist &=
attribute fo:wrap-option { "no-wrap" | "wrap" }?
style-graphic-properties-elements &= text-list-style?
style-graphic-properties-attlist &=
attribute draw:color-mode {
"greyscale" | "mono" | "watermark" | "standard"
}?
style-graphic-properties-attlist &=
attribute draw:color-inversion { boolean }?
style-graphic-properties-attlist &=
attribute draw:luminance { percent }?
style-graphic-properties-attlist &= attribute draw:contrast { percent }?
style-graphic-properties-attlist &= attribute draw:gamma { percent }?
style-graphic-properties-attlist &= attribute draw:red { percent }?
style-graphic-properties-attlist &= attribute draw:green { percent }?
style-graphic-properties-attlist &= attribute draw:blue { percent }?
style-graphic-properties-attlist &=
attribute draw:image-opacity { percent }?
style-graphic-properties-attlist &=
attribute draw:shadow { "visible" | "hidden" }?
style-graphic-properties-attlist &=
attribute draw:shadow-offset-x { length }?,
attribute draw:shadow-offset-y { length }?
style-graphic-properties-attlist &=
attribute draw:shadow-color { color }?
style-graphic-properties-attlist &=
attribute draw:shadow-opacity { percent }?
style-graphic-properties-attlist &=
attribute draw:start-line-spacing-horizontal { distance }?,
attribute draw:start-line-spacing-vertical { distance }?
style-graphic-properties-attlist &=
attribute draw:end-line-spacing-horizontal { distance }?,
attribute draw:end-line-spacing-vertical { distance }?
style-graphic-properties-attlist &=
attribute draw:line-distance { distance }?
style-graphic-properties-attlist &=
attribute draw:guide-overhang { length }?
style-graphic-properties-attlist &=
attribute draw:guide-distance { distance }?
style-graphic-properties-attlist &=
attribute draw:start-guide { length }?
style-graphic-properties-attlist &= attribute draw:end-guide { length }?
style-graphic-properties-attlist &=
attribute draw:placing { "below" | "above" }?
style-graphic-properties-attlist &= attribute draw:parallel { boolean }?
style-graphic-properties-attlist &=
attribute draw:measure-align {
"automatic" | "left-outside" | "inside" | "right-outside"
}?,
attribute draw:measure-vertical-align {
"automatic" | "above" | "below" | "center"
}?
style-graphic-properties-attlist &=
attribute draw:unit {
"automatic"
| "mm"
| "cm"
| "m"
| "km"
| "pt"
| "pc"
| "inch"
| "ft"
| "mi"
}?
style-graphic-properties-attlist &=
attribute draw:show-unit { boolean }?
style-graphic-properties-attlist &=
attribute draw:decimal-places { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute draw:caption-type {
"straight-line" | "angled-line" | "angled-connector-line"
}?
style-graphic-properties-attlist &=
attribute draw:caption-angle-type { "fixed" | "free" }?
style-graphic-properties-attlist &=
attribute draw:caption-angle { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute draw:caption-gap { distance }?
style-graphic-properties-attlist &=
attribute draw:caption-escape-direction {
"horizontal" | "vertical" | "auto"
}?
style-graphic-properties-attlist &=
attribute draw:caption-escape { length | percent }?
style-graphic-properties-attlist &=
attribute draw:caption-line-length { length }?
style-graphic-properties-attlist &=
attribute draw:caption-fit-line-length { boolean }?
style-graphic-properties-attlist &=
attribute dr3d:horizontal-segments { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute dr3d:vertical-segments { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute dr3d:edge-rounding { percent }?
style-graphic-properties-attlist &=
attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
style-graphic-properties-attlist &=
attribute dr3d:back-scale { percent }?
style-graphic-properties-attlist &= attribute dr3d:depth { length }?
style-graphic-properties-attlist &=
attribute dr3d:backface-culling { "enabled" | "disabled" }?
style-graphic-properties-attlist &=
attribute dr3d:end-angle { nonNegativeInteger }?
style-graphic-properties-attlist &=
attribute dr3d:close-front { boolean }?
style-graphic-properties-attlist &=
attribute dr3d:close-back { boolean }?
style-graphic-properties-attlist &=
attribute dr3d:lighting-mode { "standard" | "double-sided" }?
style-graphic-properties-attlist &=
attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
style-graphic-properties-attlist &=
attribute dr3d:normals-direction { "normal" | "inverse" }?
style-graphic-properties-attlist &=
attribute dr3d:texture-generation-mode-x {
"object" | "parallel" | "sphere"
}?,
attribute dr3d:texture-generation-mode-y {
"object" | "parallel" | "sphere"
}?
style-graphic-properties-attlist &=
attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }?
style-graphic-properties-attlist &=
attribute dr3d:texture-filter { "enabled" | "disabled" }?
style-graphic-properties-attlist &=
attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
style-graphic-properties-attlist &=
attribute dr3d:ambient-color { color }?,
attribute dr3d:emissive-color { color }?,
attribute dr3d:specular-color { color }?,
attribute dr3d:diffuse-color { color }?
style-graphic-properties-attlist &=
attribute dr3d:shininess { percent }?
style-graphic-properties-attlist &=
attribute dr3d:shadow { "visible" | "hidden" }?
style-graphic-properties-attlist &=
common-draw-rel-size-attlist,
attribute fo:min-width { length | percent }?
style-graphic-properties-attlist &=
attribute fo:min-height { length | percent }?
style-graphic-properties-attlist &=
attribute fo:max-height { length | percent }?,
attribute fo:max-width { length | percent }?
style-graphic-properties-attlist &= common-horizontal-margin-attlist
style-graphic-properties-attlist &= common-vertical-margin-attlist
style-graphic-properties-attlist &= common-margin-attlist
style-graphic-properties-attlist &=
attribute style:print-content { boolean }?
style-graphic-properties-attlist &=
attribute style:protect {
"none"
| list { ("content" | "position" | "size")+ }
}?
style-graphic-properties-attlist &=
attribute style:horizontal-pos {
"left"
| "center"
| "right"
| "from-left"
| "inside"
| "outside"
| "from-inside"
}?,
attribute svg:x { coordinate }?
style-graphic-properties-attlist &=
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"
}?
style-graphic-properties-attlist &= common-vertical-pos-attlist
common-vertical-pos-attlist =
attribute style:vertical-pos {
"top" | "middle" | "bottom" | "from-top" | "below"
}?,
attribute svg:y { coordinate }?
style-graphic-properties-attlist &= common-vertical-rel-attlist
common-vertical-rel-attlist =
attribute style:vertical-rel {
"page"
| "page-content"
| "frame"
| "frame-content"
| "paragraph"
| "paragraph-content"
| "char"
| "line"
| "baseline"
| "text"
}?
style-graphic-properties-attlist &= common-text-anchor-attlist
style-graphic-properties-attlist &= common-border-attlist
style-graphic-properties-attlist &= common-border-line-width-attlist
style-graphic-properties-attlist &= common-padding-attlist
style-graphic-properties-attlist &= common-shadow-attlist
style-graphic-properties-attlist &= common-background-color-attlist
style-graphic-properties-elements &= style-background-image
style-graphic-properties-elements &= style-columns
style-graphic-properties-attlist &=
attribute style:editable { boolean }?
style-graphic-properties-attlist &=
attribute style:wrap {
"none"
| "left"
| "right"
| "parallel"
| "dynamic"
| "run-through"
| "biggest"
}?
style-graphic-properties-attlist &=
attribute style:wrap-dynamic-threshold { nonNegativeLength }?
style-graphic-properties-attlist &=
attribute style:number-wrapped-paragraphs {
"no-limit" | positiveInteger
}?
style-graphic-properties-attlist &=
attribute style:wrap-contour { boolean }?
style-graphic-properties-attlist &=
attribute style:wrap-contour-mode { "full" | "outside" }?
style-graphic-properties-attlist &=
attribute style:run-through { "foreground" | "background" }?
style-graphic-properties-attlist &=
attribute style:flow-with-text { boolean }?
style-graphic-properties-attlist &=
attribute style:overflow-behavior {
"clip" | "auto-create-new-frame"
}?
style-graphic-properties-attlist &=
attribute style:mirror {
"none"
| "vertical"
| horizontal-mirror
| list { "vertical", horizontal-mirror }
| list { horizontal-mirror, "vertical" }
}?
horizontal-mirror =
"horizontal" | "horizontal-on-odd" | "horizontal-on-even"
style-graphic-properties-attlist &=
attribute fo:clip {
# The attribute value must match the one XSL's clip
\string
}?
style-graphic-properties-attlist &=
[ a:defaultValue = "iterative" ]
attribute draw:wrap-influence-on-position {
"iterative" | "once-concurrent" | "once-successive"
}?
style-graphic-properties-attlist &= common-writing-mode-attlist
style-graphic-properties-attlist &=
attribute draw:frame-display-scrollbar { boolean }?
style-graphic-properties-attlist &=
attribute draw:frame-display-border { boolean }?
style-graphic-properties-attlist &=
attribute draw:frame-margin-horizontal { nonNegativePixelLength }?,
attribute draw:frame-margin-vertical { nonNegativePixelLength }?
nonNegativePixelLength =
xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" }
style-graphic-properties-attlist &=
attribute draw:visible-area-left { nonNegativeLength }?,
attribute draw:visible-area-top { nonNegativeLength }?,
attribute draw:visible-area-width { positiveLength }?,
attribute draw:visible-area-height { positiveLength }?
style-graphic-properties-attlist &=
attribute draw:ole-draw-aspect { nonNegativeInteger }?
style-chart-properties =
element style:chart-properties { style-chart-properties-content }
style-chart-properties-content = style-properties-content
style-chart-properties-content-strict =
style-chart-properties-attlist, style-chart-properties-elements
style-chart-properties-elements = empty
style-chart-properties-attlist &=
[ a:defaultValue = "true" ] attribute chart:scale-text { boolean }?
style-chart-properties-attlist &=
attribute chart:three-dimensional { boolean }?
style-chart-properties-attlist &= attribute chart:deep { boolean }?
style-chart-properties-attlist &=
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 { anyURI }
})
| empty
style-chart-properties-attlist &=
attribute chart:symbol-width { nonNegativeLength }?,
attribute chart:symbol-height { nonNegativeLength }?
style-chart-properties-attlist &=
[ a:defaultValue = "false" ] attribute chart:vertical { boolean }?
style-chart-properties-attlist &=
[ a:defaultValue = "false" ] attribute chart:connect-bars { boolean }?
style-chart-properties-attlist &=
attribute chart:gap-width { integer }?,
attribute chart:overlap { integer }?
style-chart-properties-attlist &=
[ a:defaultValue = "false" ]
attribute chart:japanese-candle-stick { boolean }?
style-chart-properties-attlist &=
[ a:defaultValue = "none" ]
attribute chart:interpolation {
"none" | "cubic-spline" | "b-spline"
}?,
[ a:defaultValue = "2" ]
attribute chart:spline-order { positiveInteger }?,
[ a:defaultValue = "20" ]
attribute chart:spline-resolution { positiveInteger }?
style-chart-properties-attlist &=
[ a:defaultValue = "0" ]
attribute chart:pie-offset { nonNegativeInteger }?
style-chart-properties-attlist &=
[ a:defaultValue = "false" ] attribute chart:lines { boolean }?
style-chart-properties-attlist &=
[ a:defaultValue = "cuboid" ]
attribute chart:solid-type {
"cuboid" | "cylinder" | "cone" | "pyramid"
}?
style-chart-properties-attlist &=
[ a:defaultValue = "false" ] attribute chart:stacked { boolean }?,
[ a:defaultValue = "false" ] attribute chart:percentage { boolean }?
style-chart-properties-attlist &=
attribute chart:link-data-style-to-source { boolean }?
style-chart-properties-attlist &= attribute chart:visible { boolean }?
style-chart-properties-attlist &=
attribute chart:logarithmic { boolean }?
style-chart-properties-attlist &=
attribute chart:maximum { double }?,
attribute chart:minimum { double }?,
attribute chart:origin { double }?,
attribute chart:interval-major { double }?,
attribute chart:interval-minor-divisor { positiveInteger }?
style-chart-properties-attlist &=
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 }?
style-chart-properties-attlist &=
attribute chart:display-label { boolean }?,
attribute chart:text-overlap { boolean }?,
attribute text:line-break { boolean }?,
[ a:defaultValue = "side-by-side" ]
attribute chart:label-arrangement {
"side-by-side" | "stagger-even" | "stagger-odd"
}?
style-chart-properties-attlist &= common-style-direction-attlist
style-chart-properties-attlist &= common-rotation-angle-attlist
style-chart-properties-attlist &=
attribute chart:data-label-number { "none" | "value" | "percentage" }?
style-chart-properties-attlist &=
attribute chart:data-label-text { boolean }?
style-chart-properties-attlist &=
attribute chart:data-label-symbol { boolean }?
style-chart-properties-attlist &=
attribute chart:mean-value { boolean }?
style-chart-properties-attlist &=
[ a:defaultValue = "none" ]
attribute chart:error-category {
"none"
| "variance"
| "standard-deviation"
| "percentage"
| "error-margin"
| "constant"
}?
style-chart-properties-attlist &=
attribute chart:error-percentage { double }?
style-chart-properties-attlist &=
attribute chart:error-margin { double }?
style-chart-properties-attlist &=
attribute chart:error-lower-limit { double }?,
attribute chart:error-upper-limit { double }?
style-chart-properties-attlist &=
attribute chart:error-upper-indicator { boolean }?,
attribute chart:error-lower-indicator { boolean }?
style-chart-properties-attlist &=
[ a:defaultValue = "columns" ]
attribute chart:series-source { "columns" | "rows" }?
style-chart-properties-attlist &=
[ a:defaultValue = "none" ]
attribute chart:regression-type {
"none" | "linear" | "logarithmic" | "exponential" | "power"
}?
style-drawing-page-properties-attlist &=
attribute presentation:transition-type {
"manual" | "automatic" | "semi-automatic"
}?
style-drawing-page-properties-attlist &=
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"
}?
style-drawing-page-properties-attlist &=
attribute presentation:transition-speed { presentationSpeeds }?
style-drawing-page-properties-attlist &=
attribute smil:type { \string }?
style-drawing-page-properties-attlist &=
attribute smil:subtype { \string }?
style-drawing-page-properties-attlist &=
[ a:defaultValue = "forward" ]
attribute smil:direction { "forward" | "reverse" }?
style-drawing-page-properties-attlist &=
attribute smil:fadeColor { color }?
style-drawing-page-properties-attlist &=
attribute presentation:duration { duration }?
style-drawing-page-properties-attlist &=
attribute presentation:visibility { "visible" | "hidden" }?
style-drawing-page-properties-elements &= presentation-sound?
style-drawing-page-properties-attlist &=
attribute draw:background-size { "full" | "border" }?
style-drawing-page-properties-attlist &=
attribute presentation:background-objects-visible { boolean }?
style-drawing-page-properties-attlist &=
attribute presentation:background-visible { boolean }?
style-drawing-page-properties-attlist &=
attribute presentation:display-header { boolean }?
style-drawing-page-properties-attlist &=
attribute presentation:display-footer { boolean }?
style-drawing-page-properties-attlist &=
attribute presentation:display-page-number { boolean }?
style-drawing-page-properties-attlist &=
attribute presentation:display-date-time { boolean }?
\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
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}" }
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]+)%" }
relativeLength = xsd:string { pattern = "[0-9]+\*" }
coordinate = length
distance = length
color = xsd:string { pattern = "#[0-9a-fA-F]{6}" }
styleName = xsd:NCName
styleNameRef = xsd:NCName | empty
styleNameRefs = list { xsd:NCName* }
variableName = xsd:string
formula =
# A formula should start with a namespace prefix,
# but has no restrictions
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:string { pattern = "[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+" }
anyAttListOrElements =
attribute * { text }*,
anyElements
anyElements =
element * {
mixed { anyAttListOrElements }
}*