aboutsummaryrefslogtreecommitdiffstats
path: root/etc/schema
diff options
context:
space:
mode:
authorRasmus2017-06-21 13:20:20 +0200
committerRasmus2017-06-22 11:54:18 +0200
commit5cecd275820df825c51bf9a27fcc7e35f30ff273 (patch)
treeb3f72e63953613d565e6d5a35bec97f158eb603c /etc/schema
parent386a3da920482b8cb3e962fb944d135c8a770e26 (diff)
downloademacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.tar.gz
emacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.zip
Update Org to v9.0.9
Please see etc/ORG-NEWS for details.
Diffstat (limited to 'etc/schema')
-rw-r--r--etc/schema/od-manifest-schema-v1.2-os.rnc88
-rw-r--r--etc/schema/od-schema-v1.2-os.rnc6280
2 files changed, 6368 insertions, 0 deletions
diff --git a/etc/schema/od-manifest-schema-v1.2-os.rnc b/etc/schema/od-manifest-schema-v1.2-os.rnc
new file mode 100644
index 00000000000..87f84d1ea87
--- /dev/null
+++ b/etc/schema/od-manifest-schema-v1.2-os.rnc
@@ -0,0 +1,88 @@
1# Open Document Format for Office Applications (OpenDocument) Version 1.2
2# OASIS Standard, 29 September 2011
3# Manifest Relax-NG Schema
4# Source: http://docs.oasis-open.org/office/v1.2/os/
5# Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved.
6#
7# All capitalized terms in the following text have the meanings assigned to them
8# in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
9# full Policy may be found at the OASIS website.
10#
11# This document and translations of it may be copied and furnished to others, and
12# derivative works that comment on or otherwise explain it or assist in its
13# implementation may be prepared, copied, published, and distributed, in whole or
14# in part, without restriction of any kind, provided that the above copyright
15# notice and this section are included on all such copies and derivative works.
16# However, this document itself may not be modified in any way, including by
17# removing the copyright notice or references to OASIS, except as needed for the
18# purpose of developing any document or deliverable produced by an OASIS
19# Technical Committee (in which case the rules applicable to copyrights, as set
20# forth in the OASIS IPR Policy, must be followed) or as required to translate it
21# into languages other than English.
22#
23# The limited permissions granted above are perpetual and will not be revoked by
24# OASIS or its successors or assigns.
25#
26# This document and the information contained herein is provided on an "AS IS"
27# basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28# LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
29# INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
30# FITNESS FOR A PARTICULAR PURPOSE.
31
32namespace manifest =
33 "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
34
35start = manifest
36manifest = element manifest:manifest { manifest-attlist, file-entry+ }
37manifest-attlist = attribute manifest:version { "1.2" }
38file-entry =
39 element manifest:file-entry { file-entry-attlist, encryption-data? }
40file-entry-attlist =
41 attribute manifest:full-path { \string }
42 & attribute manifest:size { nonNegativeInteger }?
43 & attribute manifest:media-type { \string }
44 & attribute manifest:preferred-view-mode {
45 "edit" | "presentation-slide-show" | "read-only" | namespacedToken
46 }?
47 & attribute manifest:version { \string }?
48encryption-data =
49 element manifest:encryption-data {
50 encryption-data-attlist,
51 algorithm,
52 start-key-generation?,
53 key-derivation
54 }
55encryption-data-attlist =
56 attribute manifest:checksum-type { "SHA1/1K" | anyURI }
57 & attribute manifest:checksum { base64Binary }
58algorithm =
59 element manifest:algorithm { algorithm-attlist, anyElements }
60algorithm-attlist =
61 attribute manifest:algorithm-name { "Blowfish CFB" | anyURI }
62 & attribute manifest:initialisation-vector { base64Binary }
63anyAttListOrElements =
64 attribute * { text }*,
65 anyElements
66anyElements =
67 element * {
68 mixed { anyAttListOrElements }
69 }*
70key-derivation =
71 element manifest:key-derivation { key-derivation-attlist, empty }
72key-derivation-attlist =
73 attribute manifest:key-derivation-name { "PBKDF2" | anyURI }
74 & attribute manifest:salt { base64Binary }
75 & attribute manifest:iteration-count { nonNegativeInteger }
76 & attribute manifest:key-size { nonNegativeInteger }?
77start-key-generation =
78 element manifest:start-key-generation {
79 start-key-generation-attlist, empty
80 }
81start-key-generation-attlist =
82 attribute manifest:start-key-generation-name { "SHA1" | anyURI }
83 & attribute manifest:key-size { nonNegativeInteger }?
84base64Binary = xsd:base64Binary
85namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }
86nonNegativeInteger = xsd:nonNegativeInteger
87\string = xsd:string
88anyURI = xsd:anyURI
diff --git a/etc/schema/od-schema-v1.2-os.rnc b/etc/schema/od-schema-v1.2-os.rnc
new file mode 100644
index 00000000000..8d679d62e4e
--- /dev/null
+++ b/etc/schema/od-schema-v1.2-os.rnc
@@ -0,0 +1,6280 @@
1# Open Document Format for Office Applications (OpenDocument) Version 1.2
2# OASIS Standard, 29 September 2011
3# Relax-NG Schema
4# Source: http://docs.oasis-open.org/office/v1.2/os/
5# Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved.
6#
7# All capitalized terms in the following text have the meanings assigned to them
8# in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
9# full Policy may be found at the OASIS website.
10#
11# This document and translations of it may be copied and furnished to others, and
12# derivative works that comment on or otherwise explain it or assist in its
13# implementation may be prepared, copied, published, and distributed, in whole or
14# in part, without restriction of any kind, provided that the above copyright
15# notice and this section are included on all such copies and derivative works.
16# However, this document itself may not be modified in any way, including by
17# removing the copyright notice or references to OASIS, except as needed for the
18# purpose of developing any document or deliverable produced by an OASIS
19# Technical Committee (in which case the rules applicable to copyrights, as set
20# forth in the OASIS IPR Policy, must be followed) or as required to translate it
21# into languages other than English.
22#
23# The limited permissions granted above are perpetual and will not be revoked by
24# OASIS or its successors or assigns.
25#
26# This document and the information contained herein is provided on an "AS IS"
27# basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28# LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
29# INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
30# FITNESS FOR A PARTICULAR PURPOSE.
31
32namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
33namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
34namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
35namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
36namespace dc = "http://purl.org/dc/elements/1.1/"
37namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
38namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
39namespace fo =
40 "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
41namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
42namespace grddl = "http://www.w3.org/2003/g/data-view#"
43namespace math = "http://www.w3.org/1998/Math/MathML"
44namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
45namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
46namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
47namespace presentation =
48 "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
49namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
50namespace smil =
51 "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
52namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
53namespace svg =
54 "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
55namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
56namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
57namespace xforms = "http://www.w3.org/2002/xforms"
58namespace xhtml = "http://www.w3.org/1999/xhtml"
59namespace xlink = "http://www.w3.org/1999/xlink"
60
61office-process-content = attribute office:process-content { boolean }?
62start =
63 office-document
64 | office-document-content
65 | office-document-styles
66 | office-document-meta
67 | office-document-settings
68office-document =
69 element office:document {
70 office-document-attrs,
71 office-document-common-attrs,
72 office-meta,
73 office-settings,
74 office-scripts,
75 office-font-face-decls,
76 office-styles,
77 office-automatic-styles,
78 office-master-styles,
79 office-body
80 }
81office-document-content =
82 element office:document-content {
83 office-document-common-attrs,
84 office-scripts,
85 office-font-face-decls,
86 office-automatic-styles,
87 office-body
88 }
89office-document-styles =
90 element office:document-styles {
91 office-document-common-attrs,
92 office-font-face-decls,
93 office-styles,
94 office-automatic-styles,
95 office-master-styles
96 }
97office-document-meta =
98 element office:document-meta {
99 office-document-common-attrs, office-meta
100 }
101office-document-settings =
102 element office:document-settings {
103 office-document-common-attrs, office-settings
104 }
105office-document-common-attrs =
106 attribute office:version { "1.2" }
107 & attribute grddl:transformation {
108 list { anyIRI* }
109 }?
110office-document-attrs = attribute office:mimetype { \string }
111office-meta = element office:meta { office-meta-content-strict }?
112office-meta-content-strict = office-meta-data*
113office-body = element office:body { office-body-content }
114office-body-content =
115 element office:text {
116 office-text-attlist,
117 office-text-content-prelude,
118 office-text-content-main,
119 office-text-content-epilogue
120 }
121 | element office:drawing {
122 office-drawing-attlist,
123 office-drawing-content-prelude,
124 office-drawing-content-main,
125 office-drawing-content-epilogue
126 }
127 | element office:presentation {
128 office-presentation-attlist,
129 office-presentation-content-prelude,
130 office-presentation-content-main,
131 office-presentation-content-epilogue
132 }
133 | element office:spreadsheet {
134 office-spreadsheet-attlist,
135 office-spreadsheet-content-prelude,
136 office-spreadsheet-content-main,
137 office-spreadsheet-content-epilogue
138 }
139 | element office:chart {
140 office-chart-attlist,
141 office-chart-content-prelude,
142 office-chart-content-main,
143 office-chart-content-epilogue
144 }
145 | element office:image {
146 office-image-attlist,
147 office-image-content-prelude,
148 office-image-content-main,
149 office-image-content-epilogue
150 }
151 | office-database
152office-text-content-prelude =
153 office-forms, text-tracked-changes, text-decls, table-decls
154office-text-content-main =
155 text-content*
156 | (text-page-sequence, (shape)*)
157text-content =
158 text-h
159 | text-p
160 | text-list
161 | text-numbered-paragraph
162 | table-table
163 | text-section
164 | text-soft-page-break
165 | text-table-of-content
166 | text-illustration-index
167 | text-table-index
168 | text-object-index
169 | text-user-index
170 | text-alphabetical-index
171 | text-bibliography
172 | shape
173 | change-marks
174office-text-content-epilogue = table-functions
175office-text-attlist =
176 attribute text:global { boolean }?
177 & attribute text:use-soft-page-breaks { boolean }?
178office-drawing-attlist = empty
179office-drawing-content-prelude = text-decls, table-decls
180office-drawing-content-main = draw-page*
181office-drawing-content-epilogue = table-functions
182office-presentation-attlist = empty
183office-presentation-content-prelude =
184 text-decls, table-decls, presentation-decls
185office-presentation-content-main = draw-page*
186office-presentation-content-epilogue =
187 presentation-settings, table-functions
188office-spreadsheet-content-prelude =
189 table-tracked-changes?, text-decls, table-decls
190table-decls =
191 table-calculation-settings?,
192 table-content-validations?,
193 table-label-ranges?
194office-spreadsheet-content-main = table-table*
195office-spreadsheet-content-epilogue = table-functions
196table-functions =
197 table-named-expressions?,
198 table-database-ranges?,
199 table-data-pilot-tables?,
200 table-consolidation?,
201 table-dde-links?
202office-chart-attlist = empty
203office-chart-content-prelude = text-decls, table-decls
204office-chart-content-main = chart-chart
205office-chart-content-epilogue = table-functions
206office-image-attlist = empty
207office-image-content-prelude = empty
208office-image-content-main = draw-frame
209office-image-content-epilogue = empty
210office-settings = element office:settings { config-config-item-set+ }?
211config-config-item-set =
212 element config:config-item-set {
213 config-config-item-set-attlist, config-items
214 }
215config-items =
216 (config-config-item
217 | config-config-item-set
218 | config-config-item-map-named
219 | config-config-item-map-indexed)+
220config-config-item-set-attlist = attribute config:name { \string }
221config-config-item =
222 element config:config-item { config-config-item-attlist, text }
223config-config-item-attlist =
224 attribute config:name { \string }
225 & attribute config:type {
226 "boolean"
227 | "short"
228 | "int"
229 | "long"
230 | "double"
231 | "string"
232 | "datetime"
233 | "base64Binary"
234 }
235config-config-item-map-indexed =
236 element config:config-item-map-indexed {
237 config-config-item-map-indexed-attlist,
238 config-config-item-map-entry+
239 }
240config-config-item-map-indexed-attlist =
241 attribute config:name { \string }
242config-config-item-map-entry =
243 element config:config-item-map-entry {
244 config-config-item-map-entry-attlist, config-items
245 }
246config-config-item-map-entry-attlist =
247 attribute config:name { \string }?
248config-config-item-map-named =
249 element config:config-item-map-named {
250 config-config-item-map-named-attlist, config-config-item-map-entry+
251 }
252config-config-item-map-named-attlist = attribute config:name { \string }
253office-scripts =
254 element office:scripts { office-script*, office-event-listeners? }?
255office-script =
256 element office:script {
257 office-script-attlist,
258 mixed { anyElements }
259 }
260office-script-attlist = attribute script:language { \string }
261office-font-face-decls =
262 element office:font-face-decls { style-font-face* }?
263office-styles =
264 element office:styles {
265 styles
266 & style-default-style*
267 & style-default-page-layout?
268 & text-outline-style?
269 & text-notes-configuration*
270 & text-bibliography-configuration?
271 & text-linenumbering-configuration?
272 & draw-gradient*
273 & svg-linearGradient*
274 & svg-radialGradient*
275 & draw-hatch*
276 & draw-fill-image*
277 & draw-marker*
278 & draw-stroke-dash*
279 & draw-opacity*
280 & style-presentation-page-layout*
281 & table-table-template*
282 }?
283office-automatic-styles =
284 element office:automatic-styles { styles & style-page-layout* }?
285office-master-styles =
286 element office:master-styles {
287 style-master-page* & style-handout-master? & draw-layer-set?
288 }?
289styles =
290 style-style*
291 & text-list-style*
292 & number-number-style*
293 & number-currency-style*
294 & number-percentage-style*
295 & number-date-style*
296 & number-time-style*
297 & number-boolean-style*
298 & number-text-style*
299office-meta-data =
300 element meta:generator { \string }
301 | element dc:title { \string }
302 | element dc:description { \string }
303 | element dc:subject { \string }
304 | element meta:keyword { \string }
305 | element meta:initial-creator { \string }
306 | dc-creator
307 | element meta:printed-by { \string }
308 | element meta:creation-date { dateTime }
309 | dc-date
310 | element meta:print-date { dateTime }
311 | element meta:template {
312 attribute xlink:type { "simple" },
313 attribute xlink:href { anyIRI },
314 attribute xlink:actuate { "onRequest" }?,
315 attribute xlink:title { \string }?,
316 attribute meta:date { dateTime }?
317 }
318 | element meta:auto-reload {
319 (attribute xlink:type { "simple" },
320 attribute xlink:href { anyIRI },
321 attribute xlink:show { "replace" }?,
322 attribute xlink:actuate { "onLoad" }?)?,
323 attribute meta:delay { duration }?
324 }
325 | element meta:hyperlink-behaviour {
326 attribute office:target-frame-name { targetFrameName }?,
327 attribute xlink:show { "new" | "replace" }?
328 }
329 | element dc:language { language }
330 | element meta:editing-cycles { nonNegativeInteger }
331 | element meta:editing-duration { duration }
332 | element meta:document-statistic {
333 attribute meta:page-count { nonNegativeInteger }?,
334 attribute meta:table-count { nonNegativeInteger }?,
335 attribute meta:draw-count { nonNegativeInteger }?,
336 attribute meta:image-count { nonNegativeInteger }?,
337 attribute meta:ole-object-count { nonNegativeInteger }?,
338 attribute meta:object-count { nonNegativeInteger }?,
339 attribute meta:paragraph-count { nonNegativeInteger }?,
340 attribute meta:word-count { nonNegativeInteger }?,
341 attribute meta:character-count { nonNegativeInteger }?,
342 attribute meta:frame-count { nonNegativeInteger }?,
343 attribute meta:sentence-count { nonNegativeInteger }?,
344 attribute meta:syllable-count { nonNegativeInteger }?,
345 attribute meta:non-whitespace-character-count {
346 nonNegativeInteger
347 }?,
348 attribute meta:row-count { nonNegativeInteger }?,
349 attribute meta:cell-count { nonNegativeInteger }?
350 }
351 | element meta:user-defined {
352 attribute meta:name { \string },
353 ((attribute meta:value-type { "float" },
354 double)
355 | (attribute meta:value-type { "date" },
356 dateOrDateTime)
357 | (attribute meta:value-type { "time" },
358 duration)
359 | (attribute meta:value-type { "boolean" },
360 boolean)
361 | (attribute meta:value-type { "string" },
362 \string)
363 | text)
364 }
365dc-creator = element dc:creator { \string }
366dc-date = element dc:date { dateTime }
367text-h =
368 element text:h {
369 heading-attrs,
370 paragraph-attrs,
371 text-number?,
372 paragraph-content-or-hyperlink*
373 }
374heading-attrs =
375 attribute text:outline-level { positiveInteger }
376 & attribute text:restart-numbering { boolean }?
377 & attribute text:start-value { nonNegativeInteger }?
378 & attribute text:is-list-header { boolean }?
379text-number = element text:number { \string }
380text-p =
381 element text:p { paragraph-attrs, paragraph-content-or-hyperlink* }
382paragraph-attrs =
383 attribute text:style-name { styleNameRef }?
384 & attribute text:class-names { styleNameRefs }?
385 & attribute text:cond-style-name { styleNameRef }?
386 & (xml-id,
387 attribute text:id { NCName }?)?
388 & common-in-content-meta-attlist?
389text-page-sequence = element text:page-sequence { text-page+ }
390text-page = element text:page { text-page-attlist, empty }
391text-page-attlist = attribute text:master-page-name { styleNameRef }
392text-list =
393 element text:list {
394 text-list-attr, text-list-header?, text-list-item*
395 }
396text-list-attr =
397 attribute text:style-name { styleNameRef }?
398 & attribute text:continue-numbering { boolean }?
399 & attribute text:continue-list { IDREF }?
400 & xml-id?
401text-list-item =
402 element text:list-item { text-list-item-attr, text-list-item-content }
403text-list-item-content =
404 text-number?, (text-p | text-h | text-list | text-soft-page-break)*
405text-list-item-attr =
406 attribute text:start-value { nonNegativeInteger }?
407 & attribute text:style-override { styleNameRef }?
408 & xml-id?
409text-list-header =
410 element text:list-header {
411 text-list-header-attr, text-list-item-content
412 }
413text-list-header-attr = xml-id?
414text-numbered-paragraph =
415 element text:numbered-paragraph {
416 text-numbered-paragraph-attr, text-number?, (text-p | text-h)
417 }
418text-numbered-paragraph-attr =
419 attribute text:list-id { NCName }
420 & attribute text:level { positiveInteger }?
421 & (attribute text:style-name { styleNameRef },
422 attribute text:continue-numbering { boolean },
423 attribute text:start-value { nonNegativeInteger })?
424 & xml-id?
425text-section =
426 element text:section {
427 text-section-attlist,
428 (text-section-source | text-section-source-dde | empty),
429 text-content*
430 }
431text-section-attlist =
432 common-section-attlist
433 & (attribute text:display { "true" | "none" }
434 | (attribute text:display { "condition" },
435 attribute text:condition { \string })
436 | empty)
437common-section-attlist =
438 attribute text:style-name { styleNameRef }?
439 & attribute text:name { \string }
440 & attribute text:protected { boolean }?
441 & attribute text:protection-key { \string }?
442 & attribute text:protection-key-digest-algorithm { anyIRI }?
443 & xml-id?
444text-section-source =
445 element text:section-source { text-section-source-attr }
446text-section-source-attr =
447 (attribute xlink:type { "simple" },
448 attribute xlink:href { anyIRI },
449 attribute xlink:show { "embed" }?)?
450 & attribute text:section-name { \string }?
451 & attribute text:filter-name { \string }?
452text-section-source-dde = office-dde-source
453text-tracked-changes =
454 element text:tracked-changes {
455 text-tracked-changes-attr, text-changed-region*
456 }?
457text-tracked-changes-attr = attribute text:track-changes { boolean }?
458text-changed-region =
459 element text:changed-region {
460 text-changed-region-attr, text-changed-region-content
461 }
462text-changed-region-attr =
463 xml-id,
464 attribute text:id { NCName }?
465text-changed-region-content =
466 element text:insertion { office-change-info }
467 | element text:deletion { office-change-info, text-content* }
468 | element text:format-change { office-change-info }
469change-marks =
470 element text:change { change-mark-attr }
471 | element text:change-start { change-mark-attr }
472 | element text:change-end { change-mark-attr }
473change-mark-attr = attribute text:change-id { IDREF }
474text-soft-page-break = element text:soft-page-break { empty }
475text-decls =
476 element text:variable-decls { text-variable-decl* }?,
477 element text:sequence-decls { text-sequence-decl* }?,
478 element text:user-field-decls { text-user-field-decl* }?,
479 element text:dde-connection-decls { text-dde-connection-decl* }?,
480 text-alphabetical-index-auto-mark-file?
481paragraph-content-or-hyperlink = paragraph-content | text-a
482paragraph-content =
483 text
484 | element text:s {
485 attribute text:c { nonNegativeInteger }?
486 }
487 | element text:tab { text-tab-attr }
488 | element text:line-break { empty }
489 | text-soft-page-break
490 | element text:span {
491 attribute text:style-name { styleNameRef }?,
492 attribute text:class-names { styleNameRefs }?,
493 paragraph-content-or-hyperlink*
494 }
495 | element text:meta {
496 text-meta-attlist, paragraph-content-or-hyperlink*
497 }
498 | (text-bookmark | text-bookmark-start | text-bookmark-end)
499 | element text:reference-mark {
500 attribute text:name { \string }
501 }
502 | (element text:reference-mark-start {
503 attribute text:name { \string }
504 }
505 | element text:reference-mark-end {
506 attribute text:name { \string }
507 })
508 | element text:note {
509 text-note-class,
510 attribute text:id { \string }?,
511 element text:note-citation {
512 attribute text:label { \string }?,
513 text
514 },
515 element text:note-body { text-content* }
516 }
517 | element text:ruby {
518 attribute text:style-name { styleNameRef }?,
519 element text:ruby-base { paragraph-content-or-hyperlink* },
520 element text:ruby-text {
521 attribute text:style-name { styleNameRef }?,
522 text
523 }
524 }
525 | (office-annotation | office-annotation-end)
526 | change-marks
527 | shape
528 | element text:date { text-date-attlist, text }
529 | element text:time { text-time-attlist, text }
530 | element text:page-number { text-page-number-attlist, text }
531 | element text:page-continuation {
532 text-page-continuation-attlist, text
533 }
534 | element text:sender-firstname { common-field-fixed-attlist, text }
535 | element text:sender-lastname { common-field-fixed-attlist, text }
536 | element text:sender-initials { common-field-fixed-attlist, text }
537 | element text:sender-title { common-field-fixed-attlist, text }
538 | element text:sender-position { common-field-fixed-attlist, text }
539 | element text:sender-email { common-field-fixed-attlist, text }
540 | element text:sender-phone-private {
541 common-field-fixed-attlist, text
542 }
543 | element text:sender-fax { common-field-fixed-attlist, text }
544 | element text:sender-company { common-field-fixed-attlist, text }
545 | element text:sender-phone-work { common-field-fixed-attlist, text }
546 | element text:sender-street { common-field-fixed-attlist, text }
547 | element text:sender-city { common-field-fixed-attlist, text }
548 | element text:sender-postal-code { common-field-fixed-attlist, text }
549 | element text:sender-country { common-field-fixed-attlist, text }
550 | element text:sender-state-or-province {
551 common-field-fixed-attlist, text
552 }
553 | element text:author-name { common-field-fixed-attlist, text }
554 | element text:author-initials { common-field-fixed-attlist, text }
555 | element text:chapter { text-chapter-attlist, text }
556 | element text:file-name { text-file-name-attlist, text }
557 | element text:template-name { text-template-name-attlist, text }
558 | element text:sheet-name { text }
559 | element text:variable-set {
560 (common-field-name-attlist
561 & common-field-formula-attlist
562 & common-value-and-type-attlist
563 & common-field-display-value-none-attlist
564 & common-field-data-style-name-attlist),
565 text
566 }
567 | element text:variable-get {
568 (common-field-name-attlist
569 & common-field-display-value-formula-attlist
570 & common-field-data-style-name-attlist),
571 text
572 }
573 | element text:variable-input {
574 (common-field-name-attlist
575 & common-field-description-attlist
576 & common-value-type-attlist
577 & common-field-display-value-none-attlist
578 & common-field-data-style-name-attlist),
579 text
580 }
581 | element text:user-field-get {
582 (common-field-name-attlist
583 & common-field-display-value-formula-none-attlist
584 & common-field-data-style-name-attlist),
585 text
586 }
587 | element text:user-field-input {
588 (common-field-name-attlist
589 & common-field-description-attlist
590 & common-field-data-style-name-attlist),
591 text
592 }
593 | element text:sequence {
594 (common-field-name-attlist
595 & common-field-formula-attlist
596 & common-field-num-format-attlist
597 & text-sequence-ref-name),
598 text
599 }
600 | element text:expression {
601 (common-field-formula-attlist
602 & common-value-and-type-attlist?
603 & common-field-display-value-formula-attlist
604 & common-field-data-style-name-attlist),
605 text
606 }
607 | element text:text-input { common-field-description-attlist, text }
608 | element text:initial-creator { common-field-fixed-attlist, text }
609 | element text:creation-date {
610 (common-field-fixed-attlist
611 & common-field-data-style-name-attlist
612 & attribute text:date-value { dateOrDateTime }?),
613 text
614 }
615 | element text:creation-time {
616 (common-field-fixed-attlist
617 & common-field-data-style-name-attlist
618 & attribute text:time-value { timeOrDateTime }?),
619 text
620 }
621 | element text:description { common-field-fixed-attlist, text }
622 | element text:user-defined {
623 (common-field-fixed-attlist
624 & attribute text:name { \string }
625 & common-field-data-style-name-attlist
626 & attribute office:value { double }?
627 & attribute office:date-value { dateOrDateTime }?
628 & attribute office:time-value { duration }?
629 & attribute office:boolean-value { boolean }?
630 & attribute office:string-value { \string }?),
631 text
632 }
633 | element text:print-time {
634 (common-field-fixed-attlist
635 & common-field-data-style-name-attlist
636 & attribute text:time-value { time }?),
637 text
638 }
639 | element text:print-date {
640 (common-field-fixed-attlist
641 & common-field-data-style-name-attlist
642 & attribute text:date-value { date }?),
643 text
644 }
645 | element text:printed-by { common-field-fixed-attlist, text }
646 | element text:title { common-field-fixed-attlist, text }
647 | element text:subject { common-field-fixed-attlist, text }
648 | element text:keywords { common-field-fixed-attlist, text }
649 | element text:editing-cycles { common-field-fixed-attlist, text }
650 | element text:editing-duration {
651 (common-field-fixed-attlist
652 & common-field-data-style-name-attlist
653 & attribute text:duration { duration }?),
654 text
655 }
656 | element text:modification-time {
657 (common-field-fixed-attlist
658 & common-field-data-style-name-attlist
659 & attribute text:time-value { time }?),
660 text
661 }
662 | element text:modification-date {
663 (common-field-fixed-attlist
664 & common-field-data-style-name-attlist
665 & attribute text:date-value { date }?),
666 text
667 }
668 | element text:creator { common-field-fixed-attlist, text }
669 | element text:page-count
670 | text:paragraph-count
671 | text:word-count
672 | text:character-count
673 | text:table-count
674 | text:image-count
675 | text:object-count {
676 common-field-num-format-attlist, text
677 }
678 | element text:database-display {
679 text-database-display-attlist, text
680 }
681 | element text:database-next { text-database-next-attlist }
682 | element text:database-row-select {
683 text-database-row-select-attlist
684 }
685 | element text:database-row-number {
686 (common-field-database-table
687 & common-field-num-format-attlist
688 & attribute text:value { nonNegativeInteger }?),
689 text
690 }
691 | element text:database-name { common-field-database-table, text }
692 | element text:page-variable-set {
693 text-set-page-variable-attlist, text
694 }
695 | element text:page-variable-get {
696 text-get-page-variable-attlist, text
697 }
698 | element text:placeholder { text-placeholder-attlist, text }
699 | element text:conditional-text {
700 text-conditional-text-attlist, text
701 }
702 | element text:hidden-text { text-hidden-text-attlist, text }
703 | element text:reference-ref | text:bookmark-ref {
704 text-common-ref-content & text-bookmark-ref-content
705 }
706 | element text:note-ref {
707 text-common-ref-content & text-note-ref-content
708 }
709 | element text:sequence-ref {
710 text-common-ref-content & text-sequence-ref-content
711 }
712 | element text:script {
713 ((attribute xlink:type { "simple" },
714 attribute xlink:href { anyIRI })
715 | text)
716 & attribute script:language { \string }?
717 }
718 | element text:execute-macro {
719 attribute text:name { \string }?,
720 office-event-listeners?,
721 text
722 }
723 | element text:hidden-paragraph {
724 text-hidden-paragraph-attlist, text
725 }
726 | element text:dde-connection {
727 attribute text:connection-name { \string },
728 text
729 }
730 | element text:measure {
731 attribute text:kind { "value" | "unit" | "gap" },
732 text
733 }
734 | element text:table-formula {
735 (common-field-formula-attlist
736 & common-field-display-value-formula-attlist
737 & common-field-data-style-name-attlist),
738 text
739 }
740 | element text:meta-field {
741 text-meta-field-attlist, paragraph-content-or-hyperlink*
742 }
743 | element text:toc-mark-start { text-toc-mark-start-attrs }
744 | element text:toc-mark-end { text-id }
745 | element text:toc-mark {
746 attribute text:string-value { \string },
747 text-outline-level
748 }
749 | element text:user-index-mark-start {
750 text-id, text-outline-level, text-index-name
751 }
752 | element text:user-index-mark-end { text-id }
753 | element text:user-index-mark {
754 attribute text:string-value { \string },
755 text-outline-level,
756 text-index-name
757 }
758 | element text:alphabetical-index-mark-start {
759 text-id, text-alphabetical-index-mark-attrs
760 }
761 | element text:alphabetical-index-mark-end { text-id }
762 | element text:alphabetical-index-mark {
763 attribute text:string-value { \string },
764 text-alphabetical-index-mark-attrs
765 }
766 | element text:bibliography-mark {
767 attribute text:bibliography-type { text-bibliography-types },
768 attribute text:identifier
769 | text:address
770 | text:annote
771 | text:author
772 | text:booktitle
773 | text:chapter
774 | text:edition
775 | text:editor
776 | text:howpublished
777 | text:institution
778 | text:journal
779 | text:month
780 | text:note
781 | text:number
782 | text:organizations
783 | text:pages
784 | text:publisher
785 | text:school
786 | text:series
787 | text:title
788 | text:report-type
789 | text:volume
790 | text:year
791 | text:url
792 | text:custom1
793 | text:custom2
794 | text:custom3
795 | text:custom4
796 | text:custom5
797 | text:isbn
798 | text:issn { \string }*,
799 text
800 }
801 | element presentation:header { empty }
802 | element presentation:footer { empty }
803 | element presentation:date-time { empty }
804text-tab-attr = attribute text:tab-ref { nonNegativeInteger }?
805text-a =
806 element text:a {
807 text-a-attlist, office-event-listeners?, paragraph-content*
808 }
809text-a-attlist =
810 attribute office:name { \string }?
811 & attribute office:title { \string }?
812 & attribute xlink:type { "simple" }
813 & attribute xlink:href { anyIRI }
814 & attribute xlink:actuate { "onRequest" }?
815 & attribute office:target-frame-name { targetFrameName }?
816 & attribute xlink:show { "new" | "replace" }?
817 & attribute text:style-name { styleNameRef }?
818 & attribute text:visited-style-name { styleNameRef }?
819text-meta-attlist = common-in-content-meta-attlist? & xml-id?
820text-bookmark = element text:bookmark { text-bookmark-attlist, empty }
821text-bookmark-start =
822 element text:bookmark-start { text-bookmark-start-attlist, empty }
823text-bookmark-end =
824 element text:bookmark-end { text-bookmark-end-attlist, empty }
825text-bookmark-attlist =
826 attribute text:name { \string }
827 & xml-id?
828text-bookmark-start-attlist =
829 attribute text:name { \string }
830 & xml-id?
831 & common-in-content-meta-attlist?
832text-bookmark-end-attlist = attribute text:name { \string }
833text-note-class = attribute text:note-class { "footnote" | "endnote" }
834text-date-attlist =
835 (common-field-fixed-attlist & common-field-data-style-name-attlist)
836 & attribute text:date-value { dateOrDateTime }?
837 & attribute text:date-adjust { duration }?
838text-time-attlist =
839 (common-field-fixed-attlist & common-field-data-style-name-attlist)
840 & attribute text:time-value { timeOrDateTime }?
841 & attribute text:time-adjust { duration }?
842text-page-number-attlist =
843 (common-field-num-format-attlist & common-field-fixed-attlist)
844 & attribute text:page-adjust { integer }?
845 & attribute text:select-page { "previous" | "current" | "next" }?
846text-page-continuation-attlist =
847 attribute text:select-page { "previous" | "next" }
848 & attribute text:string-value { \string }?
849text-chapter-attlist =
850 attribute text:display {
851 "name"
852 | "number"
853 | "number-and-name"
854 | "plain-number-and-name"
855 | "plain-number"
856 }
857 & attribute text:outline-level { nonNegativeInteger }
858text-file-name-attlist =
859 attribute text:display {
860 "full" | "path" | "name" | "name-and-extension"
861 }?
862 & common-field-fixed-attlist
863text-template-name-attlist =
864 attribute text:display {
865 "full" | "path" | "name" | "name-and-extension" | "area" | "title"
866 }?
867text-variable-decl =
868 element text:variable-decl {
869 common-field-name-attlist, common-value-type-attlist
870 }
871text-user-field-decl =
872 element text:user-field-decl {
873 common-field-name-attlist,
874 common-field-formula-attlist?,
875 common-value-and-type-attlist
876 }
877text-sequence-decl =
878 element text:sequence-decl { text-sequence-decl-attlist }
879text-sequence-decl-attlist =
880 common-field-name-attlist
881 & attribute text:display-outline-level { nonNegativeInteger }
882 & attribute text:separation-character { character }?
883text-sequence-ref-name = attribute text:ref-name { \string }?
884common-field-database-table =
885 common-field-database-table-attlist, common-field-database-name
886common-field-database-name =
887 attribute text:database-name { \string }?
888 | form-connection-resource
889common-field-database-table-attlist =
890 attribute text:table-name { \string }
891 & attribute text:table-type { "table" | "query" | "command" }?
892text-database-display-attlist =
893 common-field-database-table
894 & common-field-data-style-name-attlist
895 & attribute text:column-name { \string }
896text-database-next-attlist =
897 common-field-database-table
898 & attribute text:condition { \string }?
899text-database-row-select-attlist =
900 common-field-database-table
901 & attribute text:condition { \string }?
902 & attribute text:row-number { nonNegativeInteger }?
903text-set-page-variable-attlist =
904 attribute text:active { boolean }?
905 & attribute text:page-adjust { integer }?
906text-get-page-variable-attlist = common-field-num-format-attlist
907text-placeholder-attlist =
908 attribute text:placeholder-type {
909 "text" | "table" | "text-box" | "image" | "object"
910 }
911 & common-field-description-attlist
912text-conditional-text-attlist =
913 attribute text:condition { \string }
914 & attribute text:string-value-if-true { \string }
915 & attribute text:string-value-if-false { \string }
916 & attribute text:current-value { boolean }?
917text-hidden-text-attlist =
918 attribute text:condition { \string }
919 & attribute text:string-value { \string }
920 & attribute text:is-hidden { boolean }?
921text-common-ref-content =
922 text
923 & attribute text:ref-name { \string }?
924text-bookmark-ref-content =
925 attribute text:reference-format {
926 common-ref-format-values
927 | "number-no-superior"
928 | "number-all-superior"
929 | "number"
930 }?
931text-note-ref-content =
932 attribute text:reference-format { common-ref-format-values }?
933 & text-note-class
934text-sequence-ref-content =
935 attribute text:reference-format {
936 common-ref-format-values
937 | "category-and-value"
938 | "caption"
939 | "value"
940 }?
941common-ref-format-values = "page" | "chapter" | "direction" | "text"
942text-hidden-paragraph-attlist =
943 attribute text:condition { \string }
944 & attribute text:is-hidden { boolean }?
945text-meta-field-attlist = xml-id & common-field-data-style-name-attlist
946common-value-type-attlist = attribute office:value-type { valueType }
947common-value-and-type-attlist =
948 (attribute office:value-type { "float" },
949 attribute office:value { double })
950 | (attribute office:value-type { "percentage" },
951 attribute office:value { double })
952 | (attribute office:value-type { "currency" },
953 attribute office:value { double },
954 attribute office:currency { \string }?)
955 | (attribute office:value-type { "date" },
956 attribute office:date-value { dateOrDateTime })
957 | (attribute office:value-type { "time" },
958 attribute office:time-value { duration })
959 | (attribute office:value-type { "boolean" },
960 attribute office:boolean-value { boolean })
961 | (attribute office:value-type { "string" },
962 attribute office:string-value { \string }?)
963common-field-fixed-attlist = attribute text:fixed { boolean }?
964common-field-name-attlist = attribute text:name { variableName }
965common-field-description-attlist =
966 attribute text:description { \string }?
967common-field-display-value-none-attlist =
968 attribute text:display { "value" | "none" }?
969common-field-display-value-formula-none-attlist =
970 attribute text:display { "value" | "formula" | "none" }?
971common-field-display-value-formula-attlist =
972 attribute text:display { "value" | "formula" }?
973common-field-formula-attlist = attribute text:formula { \string }?
974common-field-data-style-name-attlist =
975 attribute style:data-style-name { styleNameRef }?
976common-field-num-format-attlist = common-num-format-attlist?
977text-toc-mark-start-attrs = text-id, text-outline-level
978text-outline-level = attribute text:outline-level { positiveInteger }?
979text-id = attribute text:id { \string }
980text-index-name = attribute text:index-name { \string }
981text-alphabetical-index-mark-attrs =
982 attribute text:key1 { \string }?
983 & attribute text:key2 { \string }?
984 & attribute text:string-value-phonetic { \string }?
985 & attribute text:key1-phonetic { \string }?
986 & attribute text:key2-phonetic { \string }?
987 & attribute text:main-entry { boolean }?
988text-bibliography-types =
989 "article"
990 | "book"
991 | "booklet"
992 | "conference"
993 | "custom1"
994 | "custom2"
995 | "custom3"
996 | "custom4"
997 | "custom5"
998 | "email"
999 | "inbook"
1000 | "incollection"
1001 | "inproceedings"
1002 | "journal"
1003 | "manual"
1004 | "mastersthesis"
1005 | "misc"
1006 | "phdthesis"
1007 | "proceedings"
1008 | "techreport"
1009 | "unpublished"
1010 | "www"
1011text-index-body = element text:index-body { index-content-main* }
1012index-content-main = text-content | text-index-title
1013text-index-title =
1014 element text:index-title {
1015 common-section-attlist, index-content-main*
1016 }
1017text-table-of-content =
1018 element text:table-of-content {
1019 common-section-attlist,
1020 text-table-of-content-source,
1021 text-index-body
1022 }
1023text-table-of-content-source =
1024 element text:table-of-content-source {
1025 text-table-of-content-source-attlist,
1026 text-index-title-template?,
1027 text-table-of-content-entry-template*,
1028 text-index-source-styles*
1029 }
1030text-table-of-content-source-attlist =
1031 attribute text:outline-level { positiveInteger }?
1032 & attribute text:use-outline-level { boolean }?
1033 & attribute text:use-index-marks { boolean }?
1034 & attribute text:use-index-source-styles { boolean }?
1035 & attribute text:index-scope { "document" | "chapter" }?
1036 & attribute text:relative-tab-stop-position { boolean }?
1037text-table-of-content-entry-template =
1038 element text:table-of-content-entry-template {
1039 text-table-of-content-entry-template-attlist,
1040 text-table-of-content-children*
1041 }
1042text-table-of-content-children =
1043 text-index-entry-chapter
1044 | text-index-entry-page-number
1045 | text-index-entry-text
1046 | text-index-entry-span
1047 | text-index-entry-tab-stop
1048 | text-index-entry-link-start
1049 | text-index-entry-link-end
1050text-table-of-content-entry-template-attlist =
1051 attribute text:outline-level { positiveInteger }
1052 & attribute text:style-name { styleNameRef }
1053text-illustration-index =
1054 element text:illustration-index {
1055 common-section-attlist,
1056 text-illustration-index-source,
1057 text-index-body
1058 }
1059text-illustration-index-source =
1060 element text:illustration-index-source {
1061 text-illustration-index-source-attrs,
1062 text-index-title-template?,
1063 text-illustration-index-entry-template?
1064 }
1065text-illustration-index-source-attrs =
1066 text-index-scope-attr
1067 & text-relative-tab-stop-position-attr
1068 & attribute text:use-caption { boolean }?
1069 & attribute text:caption-sequence-name { \string }?
1070 & attribute text:caption-sequence-format {
1071 "text" | "category-and-value" | "caption"
1072 }?
1073text-index-scope-attr =
1074 attribute text:index-scope { "document" | "chapter" }?
1075text-relative-tab-stop-position-attr =
1076 attribute text:relative-tab-stop-position { boolean }?
1077text-illustration-index-entry-template =
1078 element text:illustration-index-entry-template {
1079 text-illustration-index-entry-content
1080 }
1081text-illustration-index-entry-content =
1082 text-illustration-index-entry-template-attrs,
1083 (text-index-entry-chapter
1084 | text-index-entry-page-number
1085 | text-index-entry-text
1086 | text-index-entry-span
1087 | text-index-entry-tab-stop)*
1088text-illustration-index-entry-template-attrs =
1089 attribute text:style-name { styleNameRef }
1090text-table-index =
1091 element text:table-index {
1092 common-section-attlist, text-table-index-source, text-index-body
1093 }
1094text-table-index-source =
1095 element text:table-index-source {
1096 text-illustration-index-source-attrs,
1097 text-index-title-template?,
1098 text-table-index-entry-template?
1099 }
1100text-table-index-entry-template =
1101 element text:table-index-entry-template {
1102 text-illustration-index-entry-content
1103 }
1104text-object-index =
1105 element text:object-index {
1106 common-section-attlist, text-object-index-source, text-index-body
1107 }
1108text-object-index-source =
1109 element text:object-index-source {
1110 text-object-index-source-attrs,
1111 text-index-title-template?,
1112 text-object-index-entry-template?
1113 }
1114text-object-index-source-attrs =
1115 text-index-scope-attr
1116 & text-relative-tab-stop-position-attr
1117 & attribute text:use-spreadsheet-objects { boolean }?
1118 & attribute text:use-math-objects { boolean }?
1119 & attribute text:use-draw-objects { boolean }?
1120 & attribute text:use-chart-objects { boolean }?
1121 & attribute text:use-other-objects { boolean }?
1122text-object-index-entry-template =
1123 element text:object-index-entry-template {
1124 text-illustration-index-entry-content
1125 }
1126text-user-index =
1127 element text:user-index {
1128 common-section-attlist, text-user-index-source, text-index-body
1129 }
1130text-user-index-source =
1131 element text:user-index-source {
1132 text-user-index-source-attr,
1133 text-index-title-template?,
1134 text-user-index-entry-template*,
1135 text-index-source-styles*
1136 }
1137text-user-index-source-attr =
1138 text-index-scope-attr
1139 & text-relative-tab-stop-position-attr
1140 & attribute text:use-index-marks { boolean }?
1141 & attribute text:use-index-source-styles { boolean }?
1142 & attribute text:use-graphics { boolean }?
1143 & attribute text:use-tables { boolean }?
1144 & attribute text:use-floating-frames { boolean }?
1145 & attribute text:use-objects { boolean }?
1146 & attribute text:copy-outline-levels { boolean }?
1147 & attribute text:index-name { \string }
1148text-user-index-entry-template =
1149 element text:user-index-entry-template {
1150 text-user-index-entry-template-attrs,
1151 (text-index-entry-chapter
1152 | text-index-entry-page-number
1153 | text-index-entry-text
1154 | text-index-entry-span
1155 | text-index-entry-tab-stop)*
1156 }
1157text-user-index-entry-template-attrs =
1158 attribute text:outline-level { positiveInteger }
1159 & attribute text:style-name { styleNameRef }
1160text-alphabetical-index =
1161 element text:alphabetical-index {
1162 common-section-attlist,
1163 text-alphabetical-index-source,
1164 text-index-body
1165 }
1166text-alphabetical-index-source =
1167 element text:alphabetical-index-source {
1168 text-alphabetical-index-source-attrs,
1169 text-index-title-template?,
1170 text-alphabetical-index-entry-template*
1171 }
1172text-alphabetical-index-source-attrs =
1173 text-index-scope-attr
1174 & text-relative-tab-stop-position-attr
1175 & attribute text:ignore-case { boolean }?
1176 & attribute text:main-entry-style-name { styleNameRef }?
1177 & attribute text:alphabetical-separators { boolean }?
1178 & attribute text:combine-entries { boolean }?
1179 & attribute text:combine-entries-with-dash { boolean }?
1180 & attribute text:combine-entries-with-pp { boolean }?
1181 & attribute text:use-keys-as-entries { boolean }?
1182 & attribute text:capitalize-entries { boolean }?
1183 & attribute text:comma-separated { boolean }?
1184 & attribute fo:language { languageCode }?
1185 & attribute fo:country { countryCode }?
1186 & attribute fo:script { scriptCode }?
1187 & attribute style:rfc-language-tag { language }?
1188 & attribute text:sort-algorithm { \string }?
1189text-alphabetical-index-auto-mark-file =
1190 element text:alphabetical-index-auto-mark-file {
1191 attribute xlink:type { "simple" },
1192 attribute xlink:href { anyIRI }
1193 }
1194text-alphabetical-index-entry-template =
1195 element text:alphabetical-index-entry-template {
1196 text-alphabetical-index-entry-template-attrs,
1197 (text-index-entry-chapter
1198 | text-index-entry-page-number
1199 | text-index-entry-text
1200 | text-index-entry-span
1201 | text-index-entry-tab-stop)*
1202 }
1203text-alphabetical-index-entry-template-attrs =
1204 attribute text:outline-level { "1" | "2" | "3" | "separator" }
1205 & attribute text:style-name { styleNameRef }
1206text-bibliography =
1207 element text:bibliography {
1208 common-section-attlist, text-bibliography-source, text-index-body
1209 }
1210text-bibliography-source =
1211 element text:bibliography-source {
1212 text-index-title-template?, text-bibliography-entry-template*
1213 }
1214text-bibliography-entry-template =
1215 element text:bibliography-entry-template {
1216 text-bibliography-entry-template-attrs,
1217 (text-index-entry-span
1218 | text-index-entry-tab-stop
1219 | text-index-entry-bibliography)*
1220 }
1221text-bibliography-entry-template-attrs =
1222 attribute text:bibliography-type { text-bibliography-types }
1223 & attribute text:style-name { styleNameRef }
1224text-index-source-styles =
1225 element text:index-source-styles {
1226 attribute text:outline-level { positiveInteger },
1227 text-index-source-style*
1228 }
1229text-index-source-style =
1230 element text:index-source-style {
1231 attribute text:style-name { styleName },
1232 empty
1233 }
1234text-index-title-template =
1235 element text:index-title-template {
1236 attribute text:style-name { styleNameRef }?,
1237 text
1238 }
1239text-index-entry-chapter =
1240 element text:index-entry-chapter {
1241 attribute text:style-name { styleNameRef }?,
1242 text-index-entry-chapter-attrs
1243 }
1244text-index-entry-chapter-attrs =
1245 attribute text:display {
1246 "name"
1247 | "number"
1248 | "number-and-name"
1249 | "plain-number"
1250 | "plain-number-and-name"
1251 }?
1252 & attribute text:outline-level { positiveInteger }?
1253text-index-entry-text =
1254 element text:index-entry-text {
1255 attribute text:style-name { styleNameRef }?
1256 }
1257text-index-entry-page-number =
1258 element text:index-entry-page-number {
1259 attribute text:style-name { styleNameRef }?
1260 }
1261text-index-entry-span =
1262 element text:index-entry-span {
1263 attribute text:style-name { styleNameRef }?,
1264 text
1265 }
1266text-index-entry-bibliography =
1267 element text:index-entry-bibliography {
1268 text-index-entry-bibliography-attrs
1269 }
1270text-index-entry-bibliography-attrs =
1271 attribute text:style-name { styleNameRef }?
1272 & attribute text:bibliography-data-field {
1273 "address"
1274 | "annote"
1275 | "author"
1276 | "bibliography-type"
1277 | "booktitle"
1278 | "chapter"
1279 | "custom1"
1280 | "custom2"
1281 | "custom3"
1282 | "custom4"
1283 | "custom5"
1284 | "edition"
1285 | "editor"
1286 | "howpublished"
1287 | "identifier"
1288 | "institution"
1289 | "isbn"
1290 | "issn"
1291 | "journal"
1292 | "month"
1293 | "note"
1294 | "number"
1295 | "organizations"
1296 | "pages"
1297 | "publisher"
1298 | "report-type"
1299 | "school"
1300 | "series"
1301 | "title"
1302 | "url"
1303 | "volume"
1304 | "year"
1305 }
1306text-index-entry-tab-stop =
1307 element text:index-entry-tab-stop {
1308 attribute text:style-name { styleNameRef }?,
1309 text-index-entry-tab-stop-attrs
1310 }
1311text-index-entry-tab-stop-attrs =
1312 attribute style:leader-char { character }?
1313 & (attribute style:type { "right" }
1314 | (attribute style:type { "left" },
1315 attribute style:position { length }))
1316text-index-entry-link-start =
1317 element text:index-entry-link-start {
1318 attribute text:style-name { styleNameRef }?
1319 }
1320text-index-entry-link-end =
1321 element text:index-entry-link-end {
1322 attribute text:style-name { styleNameRef }?
1323 }
1324table-table =
1325 element table:table {
1326 table-table-attlist,
1327 table-title?,
1328 table-desc?,
1329 table-table-source?,
1330 office-dde-source?,
1331 table-scenario?,
1332 office-forms?,
1333 table-shapes?,
1334 table-columns-and-groups,
1335 table-rows-and-groups,
1336 table-named-expressions?
1337 }
1338table-columns-and-groups =
1339 (table-table-column-group | table-columns-no-group)+
1340table-columns-no-group =
1341 (table-columns, (table-table-header-columns, table-columns?)?)
1342 | (table-table-header-columns, table-columns?)
1343table-columns = table-table-columns | table-table-column+
1344table-rows-and-groups = (table-table-row-group | table-rows-no-group)+
1345table-rows-no-group =
1346 (table-rows, (table-table-header-rows, table-rows?)?)
1347 | (table-table-header-rows, table-rows?)
1348table-rows =
1349 table-table-rows | (text-soft-page-break?, table-table-row)+
1350table-table-attlist =
1351 attribute table:name { \string }?
1352 & attribute table:style-name { styleNameRef }?
1353 & attribute table:template-name { \string }?
1354 & attribute table:use-first-row-styles { boolean }?
1355 & attribute table:use-last-row-styles { boolean }?
1356 & attribute table:use-first-column-styles { boolean }?
1357 & attribute table:use-last-column-styles { boolean }?
1358 & attribute table:use-banding-rows-styles { boolean }?
1359 & attribute table:use-banding-columns-styles { boolean }?
1360 & attribute table:protected { boolean }?
1361 & attribute table:protection-key { \string }?
1362 & attribute table:protection-key-digest-algorithm { anyIRI }?
1363 & attribute table:print { boolean }?
1364 & attribute table:print-ranges { cellRangeAddressList }?
1365 & xml-id?
1366 & attribute table:is-sub-table { boolean }?
1367table-title = element table:title { text }
1368table-desc = element table:desc { text }
1369table-table-row =
1370 element table:table-row {
1371 table-table-row-attlist,
1372 (table-table-cell | table-covered-table-cell)+
1373 }
1374table-table-row-attlist =
1375 attribute table:number-rows-repeated { positiveInteger }?
1376 & attribute table:style-name { styleNameRef }?
1377 & attribute table:default-cell-style-name { styleNameRef }?
1378 & attribute table:visibility { table-visibility-value }?
1379 & xml-id?
1380table-visibility-value = "visible" | "collapse" | "filter"
1381table-table-cell =
1382 element table:table-cell {
1383 table-table-cell-attlist,
1384 table-table-cell-attlist-extra,
1385 table-table-cell-content
1386 }
1387table-covered-table-cell =
1388 element table:covered-table-cell {
1389 table-table-cell-attlist, table-table-cell-content
1390 }
1391table-table-cell-content =
1392 table-cell-range-source?,
1393 office-annotation?,
1394 table-detective?,
1395 text-content*
1396table-table-cell-attlist =
1397 attribute table:number-columns-repeated { positiveInteger }?
1398 & attribute table:style-name { styleNameRef }?
1399 & attribute table:content-validation-name { \string }?
1400 & attribute table:formula { \string }?
1401 & common-value-and-type-attlist?
1402 & attribute table:protect { boolean }?
1403 & attribute table:protected { boolean }?
1404 & xml-id?
1405 & common-in-content-meta-attlist?
1406table-table-cell-attlist-extra =
1407 attribute table:number-columns-spanned { positiveInteger }?
1408 & attribute table:number-rows-spanned { positiveInteger }?
1409 & attribute table:number-matrix-columns-spanned { positiveInteger }?
1410 & attribute table:number-matrix-rows-spanned { positiveInteger }?
1411table-table-column =
1412 element table:table-column { table-table-column-attlist, empty }
1413table-table-column-attlist =
1414 attribute table:number-columns-repeated { positiveInteger }?
1415 & attribute table:style-name { styleNameRef }?
1416 & attribute table:visibility { table-visibility-value }?
1417 & attribute table:default-cell-style-name { styleNameRef }?
1418 & xml-id?
1419table-table-header-columns =
1420 element table:table-header-columns { table-table-column+ }
1421table-table-columns =
1422 element table:table-columns { table-table-column+ }
1423table-table-column-group =
1424 element table:table-column-group {
1425 table-table-column-group-attlist, table-columns-and-groups
1426 }
1427table-table-column-group-attlist = attribute table:display { boolean }?
1428table-table-header-rows =
1429 element table:table-header-rows {
1430 (text-soft-page-break?, table-table-row)+
1431 }
1432table-table-rows =
1433 element table:table-rows { (text-soft-page-break?, table-table-row)+ }
1434table-table-row-group =
1435 element table:table-row-group {
1436 table-table-row-group-attlist, table-rows-and-groups
1437 }
1438table-table-row-group-attlist = attribute table:display { boolean }?
1439cellAddress =
1440 xsd:string {
1441 pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+"
1442 }
1443cellRangeAddress =
1444 xsd:string {
1445 pattern =
1446 "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?"
1447 }
1448 | xsd:string {
1449 pattern =
1450 "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+"
1451 }
1452 | xsd:string {
1453 pattern =
1454 "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+"
1455 }
1456cellRangeAddressList =
1457 xsd:string
1458 >> dc:description [
1459 'Value is a space separated list of "cellRangeAddress" patterns'
1460 ]
1461table-table-source =
1462 element table:table-source {
1463 table-table-source-attlist, table-linked-source-attlist, empty
1464 }
1465table-table-source-attlist =
1466 attribute table:mode { "copy-all" | "copy-results-only" }?
1467 & attribute table:table-name { \string }?
1468table-linked-source-attlist =
1469 attribute xlink:type { "simple" }
1470 & attribute xlink:href { anyIRI }
1471 & attribute xlink:actuate { "onRequest" }?
1472 & attribute table:filter-name { \string }?
1473 & attribute table:filter-options { \string }?
1474 & attribute table:refresh-delay { duration }?
1475table-scenario =
1476 element table:scenario { table-scenario-attlist, empty }
1477table-scenario-attlist =
1478 attribute table:scenario-ranges { cellRangeAddressList }
1479 & attribute table:is-active { boolean }
1480 & attribute table:display-border { boolean }?
1481 & attribute table:border-color { color }?
1482 & attribute table:copy-back { boolean }?
1483 & attribute table:copy-styles { boolean }?
1484 & attribute table:copy-formulas { boolean }?
1485 & attribute table:comment { \string }?
1486 & attribute table:protected { boolean }?
1487table-shapes = element table:shapes { shape+ }
1488table-cell-range-source =
1489 element table:cell-range-source {
1490 table-table-cell-range-source-attlist,
1491 table-linked-source-attlist,
1492 empty
1493 }
1494table-table-cell-range-source-attlist =
1495 attribute table:name { \string }
1496 & attribute table:last-column-spanned { positiveInteger }
1497 & attribute table:last-row-spanned { positiveInteger }
1498table-detective =
1499 element table:detective { table-highlighted-range*, table-operation* }
1500table-operation =
1501 element table:operation { table-operation-attlist, empty }
1502table-operation-attlist =
1503 attribute table:name {
1504 "trace-dependents"
1505 | "remove-dependents"
1506 | "trace-precedents"
1507 | "remove-precedents"
1508 | "trace-errors"
1509 }
1510 & attribute table:index { nonNegativeInteger }
1511table-highlighted-range =
1512 element table:highlighted-range {
1513 (table-highlighted-range-attlist
1514 | table-highlighted-range-attlist-invalid),
1515 empty
1516 }
1517table-highlighted-range-attlist =
1518 attribute table:cell-range-address { cellRangeAddress }?
1519 & attribute table:direction {
1520 "from-another-table" | "to-another-table" | "from-same-table"
1521 }
1522 & attribute table:contains-error { boolean }?
1523table-highlighted-range-attlist-invalid =
1524 attribute table:marked-invalid { boolean }
1525office-spreadsheet-attlist =
1526 attribute table:structure-protected { boolean }?,
1527 attribute table:protection-key { \string }?,
1528 attribute table:protection-key-digest-algorithm { anyIRI }?
1529table-calculation-settings =
1530 element table:calculation-settings {
1531 table-calculation-setting-attlist,
1532 table-null-date?,
1533 table-iteration?
1534 }
1535table-calculation-setting-attlist =
1536 attribute table:case-sensitive { boolean }?
1537 & attribute table:precision-as-shown { boolean }?
1538 & attribute table:search-criteria-must-apply-to-whole-cell {
1539 boolean
1540 }?
1541 & attribute table:automatic-find-labels { boolean }?
1542 & attribute table:use-regular-expressions { boolean }?
1543 & attribute table:use-wildcards { boolean }?
1544 & attribute table:null-year { positiveInteger }?
1545table-null-date =
1546 element table:null-date {
1547 attribute table:value-type { "date" }?,
1548 attribute table:date-value { date }?,
1549 empty
1550 }
1551table-iteration =
1552 element table:iteration {
1553 attribute table:status { "enable" | "disable" }?,
1554 attribute table:steps { positiveInteger }?,
1555 attribute table:maximum-difference { double }?,
1556 empty
1557 }
1558table-content-validations =
1559 element table:content-validations { table-content-validation+ }
1560table-content-validation =
1561 element table:content-validation {
1562 table-validation-attlist,
1563 table-help-message?,
1564 (table-error-message | (table-error-macro, office-event-listeners))?
1565 }
1566table-validation-attlist =
1567 attribute table:name { \string }
1568 & attribute table:condition { \string }?
1569 & attribute table:base-cell-address { cellAddress }?
1570 & attribute table:allow-empty-cell { boolean }?
1571 & attribute table:display-list {
1572 "none" | "unsorted" | "sort-ascending"
1573 }?
1574table-help-message =
1575 element table:help-message {
1576 attribute table:title { \string }?,
1577 attribute table:display { boolean }?,
1578 text-p*
1579 }
1580table-error-message =
1581 element table:error-message {
1582 attribute table:title { \string }?,
1583 attribute table:display { boolean }?,
1584 attribute table:message-type {
1585 "stop" | "warning" | "information"
1586 }?,
1587 text-p*
1588 }
1589table-error-macro =
1590 element table:error-macro {
1591 attribute table:execute { boolean }?
1592 }
1593table-label-ranges = element table:label-ranges { table-label-range* }
1594table-label-range =
1595 element table:label-range { table-label-range-attlist, empty }
1596table-label-range-attlist =
1597 attribute table:label-cell-range-address { cellRangeAddress }
1598 & attribute table:data-cell-range-address { cellRangeAddress }
1599 & attribute table:orientation { "column" | "row" }
1600table-named-expressions =
1601 element table:named-expressions {
1602 (table-named-range | table-named-expression)*
1603 }
1604table-named-range =
1605 element table:named-range { table-named-range-attlist, empty }
1606table-named-range-attlist =
1607 attribute table:name { \string },
1608 attribute table:cell-range-address { cellRangeAddress },
1609 attribute table:base-cell-address { cellAddress }?,
1610 attribute table:range-usable-as {
1611 "none"
1612 | list {
1613 ("print-range" | "filter" | "repeat-row" | "repeat-column")+
1614 }
1615 }?
1616table-named-expression =
1617 element table:named-expression {
1618 table-named-expression-attlist, empty
1619 }
1620table-named-expression-attlist =
1621 attribute table:name { \string },
1622 attribute table:expression { \string },
1623 attribute table:base-cell-address { cellAddress }?
1624table-database-ranges =
1625 element table:database-ranges { table-database-range* }
1626table-database-range =
1627 element table:database-range {
1628 table-database-range-attlist,
1629 (table-database-source-sql
1630 | table-database-source-table
1631 | table-database-source-query)?,
1632 table-filter?,
1633 table-sort?,
1634 table-subtotal-rules?
1635 }
1636table-database-range-attlist =
1637 attribute table:name { \string }?
1638 & attribute table:is-selection { boolean }?
1639 & attribute table:on-update-keep-styles { boolean }?
1640 & attribute table:on-update-keep-size { boolean }?
1641 & attribute table:has-persistent-data { boolean }?
1642 & attribute table:orientation { "column" | "row" }?
1643 & attribute table:contains-header { boolean }?
1644 & attribute table:display-filter-buttons { boolean }?
1645 & attribute table:target-range-address { cellRangeAddress }
1646 & attribute table:refresh-delay { boolean }?
1647table-database-source-sql =
1648 element table:database-source-sql {
1649 table-database-source-sql-attlist, empty
1650 }
1651table-database-source-sql-attlist =
1652 attribute table:database-name { \string }
1653 & attribute table:sql-statement { \string }
1654 & attribute table:parse-sql-statement { boolean }?
1655table-database-source-query =
1656 element table:database-source-table {
1657 table-database-source-table-attlist, empty
1658 }
1659table-database-source-table-attlist =
1660 attribute table:database-name { \string }
1661 & attribute table:database-table-name { \string }
1662table-database-source-table =
1663 element table:database-source-query {
1664 table-database-source-query-attlist, empty
1665 }
1666table-database-source-query-attlist =
1667 attribute table:database-name { \string }
1668 & attribute table:query-name { \string }
1669table-sort = element table:sort { table-sort-attlist, table-sort-by+ }
1670table-sort-attlist =
1671 attribute table:bind-styles-to-content { boolean }?
1672 & attribute table:target-range-address { cellRangeAddress }?
1673 & attribute table:case-sensitive { boolean }?
1674 & attribute table:language { languageCode }?
1675 & attribute table:country { countryCode }?
1676 & attribute table:script { scriptCode }?
1677 & attribute table:rfc-language-tag { language }?
1678 & attribute table:algorithm { \string }?
1679 & attribute table:embedded-number-behavior {
1680 "alpha-numeric" | "integer" | "double"
1681 }?
1682table-sort-by = element table:sort-by { table-sort-by-attlist, empty }
1683table-sort-by-attlist =
1684 attribute table:field-number { nonNegativeInteger }
1685 & attribute table:data-type {
1686 "text" | "number" | "automatic" | \string
1687 }?
1688 & attribute table:order { "ascending" | "descending" }?
1689table-subtotal-rules =
1690 element table:subtotal-rules {
1691 table-subtotal-rules-attlist,
1692 table-sort-groups?,
1693 table-subtotal-rule*
1694 }
1695table-subtotal-rules-attlist =
1696 attribute table:bind-styles-to-content { boolean }?
1697 & attribute table:case-sensitive { boolean }?
1698 & attribute table:page-breaks-on-group-change { boolean }?
1699table-sort-groups =
1700 element table:sort-groups { table-sort-groups-attlist, empty }
1701table-sort-groups-attlist =
1702 attribute table:data-type {
1703 "text" | "number" | "automatic" | \string
1704 }?
1705 & attribute table:order { "ascending" | "descending" }?
1706table-subtotal-rule =
1707 element table:subtotal-rule {
1708 table-subtotal-rule-attlist, table-subtotal-field*
1709 }
1710table-subtotal-rule-attlist =
1711 attribute table:group-by-field-number { nonNegativeInteger }
1712table-subtotal-field =
1713 element table:subtotal-field { table-subtotal-field-attlist, empty }
1714table-subtotal-field-attlist =
1715 attribute table:field-number { nonNegativeInteger }
1716 & attribute table:function {
1717 "average"
1718 | "count"
1719 | "countnums"
1720 | "max"
1721 | "min"
1722 | "product"
1723 | "stdev"
1724 | "stdevp"
1725 | "sum"
1726 | "var"
1727 | "varp"
1728 | \string
1729 }
1730table-filter =
1731 element table:filter {
1732 table-filter-attlist,
1733 (table-filter-condition | table-filter-and | table-filter-or)
1734 }
1735table-filter-attlist =
1736 attribute table:target-range-address { cellRangeAddress }?
1737 & attribute table:condition-source { "self" | "cell-range" }?
1738 & attribute table:condition-source-range-address { cellRangeAddress }?
1739 & attribute table:display-duplicates { boolean }?
1740table-filter-and =
1741 element table:filter-and {
1742 (table-filter-or | table-filter-condition)+
1743 }
1744table-filter-or =
1745 element table:filter-or {
1746 (table-filter-and | table-filter-condition)+
1747 }
1748table-filter-condition =
1749 element table:filter-condition {
1750 table-filter-condition-attlist, table-filter-set-item*
1751 }
1752table-filter-condition-attlist =
1753 attribute table:field-number { nonNegativeInteger }
1754 & attribute table:value { \string | double }
1755 & attribute table:operator { \string }
1756 & attribute table:case-sensitive { \string }?
1757 & attribute table:data-type { "text" | "number" }?
1758table-filter-set-item =
1759 element table:filter-set-item {
1760 attribute table:value { \string },
1761 empty
1762 }
1763table-data-pilot-tables =
1764 element table:data-pilot-tables { table-data-pilot-table* }
1765table-data-pilot-table =
1766 element table:data-pilot-table {
1767 table-data-pilot-table-attlist,
1768 (table-database-source-sql
1769 | table-database-source-table
1770 | table-database-source-query
1771 | table-source-service
1772 | table-source-cell-range)?,
1773 table-data-pilot-field+
1774 }
1775table-data-pilot-table-attlist =
1776 attribute table:name { \string }
1777 & attribute table:application-data { \string }?
1778 & attribute table:grand-total { "none" | "row" | "column" | "both" }?
1779 & attribute table:ignore-empty-rows { boolean }?
1780 & attribute table:identify-categories { boolean }?
1781 & attribute table:target-range-address { cellRangeAddress }
1782 & attribute table:buttons { cellRangeAddressList }?
1783 & attribute table:show-filter-button { boolean }?
1784 & attribute table:drill-down-on-double-click { boolean }?
1785table-source-cell-range =
1786 element table:source-cell-range {
1787 table-source-cell-range-attlist, table-filter?
1788 }
1789table-source-cell-range-attlist =
1790 attribute table:cell-range-address { cellRangeAddress }
1791table-source-service =
1792 element table:source-service { table-source-service-attlist, empty }
1793table-source-service-attlist =
1794 attribute table:name { \string }
1795 & attribute table:source-name { \string }
1796 & attribute table:object-name { \string }
1797 & attribute table:user-name { \string }?
1798 & attribute table:password { \string }?
1799table-data-pilot-field =
1800 element table:data-pilot-field {
1801 table-data-pilot-field-attlist,
1802 table-data-pilot-level?,
1803 table-data-pilot-field-reference?,
1804 table-data-pilot-groups?
1805 }
1806table-data-pilot-field-attlist =
1807 attribute table:source-field-name { \string }
1808 & (attribute table:orientation {
1809 "row" | "column" | "data" | "hidden"
1810 }
1811 | (attribute table:orientation { "page" },
1812 attribute table:selected-page { \string }))
1813 & attribute table:is-data-layout-field { \string }?
1814 & attribute table:function {
1815 "auto"
1816 | "average"
1817 | "count"
1818 | "countnums"
1819 | "max"
1820 | "min"
1821 | "product"
1822 | "stdev"
1823 | "stdevp"
1824 | "sum"
1825 | "var"
1826 | "varp"
1827 | \string
1828 }?
1829 & attribute table:used-hierarchy { integer }?
1830table-data-pilot-level =
1831 element table:data-pilot-level {
1832 table-data-pilot-level-attlist,
1833 table-data-pilot-subtotals?,
1834 table-data-pilot-members?,
1835 table-data-pilot-display-info?,
1836 table-data-pilot-sort-info?,
1837 table-data-pilot-layout-info?
1838 }
1839table-data-pilot-level-attlist = attribute table:show-empty { boolean }?
1840table-data-pilot-subtotals =
1841 element table:data-pilot-subtotals { table-data-pilot-subtotal* }
1842table-data-pilot-subtotal =
1843 element table:data-pilot-subtotal {
1844 table-data-pilot-subtotal-attlist, empty
1845 }
1846table-data-pilot-subtotal-attlist =
1847 attribute table:function {
1848 "auto"
1849 | "average"
1850 | "count"
1851 | "countnums"
1852 | "max"
1853 | "min"
1854 | "product"
1855 | "stdev"
1856 | "stdevp"
1857 | "sum"
1858 | "var"
1859 | "varp"
1860 | \string
1861 }
1862table-data-pilot-members =
1863 element table:data-pilot-members { table-data-pilot-member* }
1864table-data-pilot-member =
1865 element table:data-pilot-member {
1866 table-data-pilot-member-attlist, empty
1867 }
1868table-data-pilot-member-attlist =
1869 attribute table:name { \string }
1870 & attribute table:display { boolean }?
1871 & attribute table:show-details { boolean }?
1872table-data-pilot-display-info =
1873 element table:data-pilot-display-info {
1874 table-data-pilot-display-info-attlist, empty
1875 }
1876table-data-pilot-display-info-attlist =
1877 attribute table:enabled { boolean }
1878 & attribute table:data-field { \string }
1879 & attribute table:member-count { nonNegativeInteger }
1880 & attribute table:display-member-mode { "from-top" | "from-bottom" }
1881table-data-pilot-sort-info =
1882 element table:data-pilot-sort-info {
1883 table-data-pilot-sort-info-attlist, empty
1884 }
1885table-data-pilot-sort-info-attlist =
1886 ((attribute table:sort-mode { "data" },
1887 attribute table:data-field { \string })
1888 | attribute table:sort-mode { "none" | "manual" | "name" })
1889 & attribute table:order { "ascending" | "descending" }
1890table-data-pilot-layout-info =
1891 element table:data-pilot-layout-info {
1892 table-data-pilot-layout-info-attlist, empty
1893 }
1894table-data-pilot-layout-info-attlist =
1895 attribute table:layout-mode {
1896 "tabular-layout"
1897 | "outline-subtotals-top"
1898 | "outline-subtotals-bottom"
1899 }
1900 & attribute table:add-empty-lines { boolean }
1901table-data-pilot-field-reference =
1902 element table:data-pilot-field-reference {
1903 table-data-pilot-field-reference-attlist
1904 }
1905table-data-pilot-field-reference-attlist =
1906 attribute table:field-name { \string }
1907 & ((attribute table:member-type { "named" },
1908 attribute table:member-name { \string })
1909 | attribute table:member-type { "previous" | "next" })
1910 & attribute table:type {
1911 "none"
1912 | "member-difference"
1913 | "member-percentage"
1914 | "member-percentage-difference"
1915 | "running-total"
1916 | "row-percentage"
1917 | "column-percentage"
1918 | "total-percentage"
1919 | "index"
1920 }
1921table-data-pilot-groups =
1922 element table:data-pilot-groups {
1923 table-data-pilot-groups-attlist, table-data-pilot-group+
1924 }
1925table-data-pilot-groups-attlist =
1926 attribute table:source-field-name { \string }
1927 & (attribute table:date-start { dateOrDateTime | "auto" }
1928 | attribute table:start { double | "auto" })
1929 & (attribute table:date-end { dateOrDateTime | "auto" }
1930 | attribute table:end { double | "auto" })
1931 & attribute table:step { double }
1932 & attribute table:grouped-by {
1933 "seconds"
1934 | "minutes"
1935 | "hours"
1936 | "days"
1937 | "months"
1938 | "quarters"
1939 | "years"
1940 }
1941table-data-pilot-group =
1942 element table:data-pilot-group {
1943 table-data-pilot-group-attlist, table-data-pilot-group-member+
1944 }
1945table-data-pilot-group-attlist = attribute table:name { \string }
1946table-data-pilot-group-member =
1947 element table:data-pilot-group-member {
1948 table-data-pilot-group-member-attlist
1949 }
1950table-data-pilot-group-member-attlist = attribute table:name { \string }
1951table-consolidation =
1952 element table:consolidation { table-consolidation-attlist, empty }
1953table-consolidation-attlist =
1954 attribute table:function {
1955 "average"
1956 | "count"
1957 | "countnums"
1958 | "max"
1959 | "min"
1960 | "product"
1961 | "stdev"
1962 | "stdevp"
1963 | "sum"
1964 | "var"
1965 | "varp"
1966 | \string
1967 }
1968 & attribute table:source-cell-range-addresses { cellRangeAddressList }
1969 & attribute table:target-cell-address { cellAddress }
1970 & attribute table:use-labels { "none" | "row" | "column" | "both" }?
1971 & attribute table:link-to-source-data { boolean }?
1972table-dde-links = element table:dde-links { table-dde-link+ }
1973table-tracked-changes =
1974 element table:tracked-changes {
1975 table-tracked-changes-attlist,
1976 (table-cell-content-change
1977 | table-insertion
1978 | table-deletion
1979 | table-movement)*
1980 }
1981table-tracked-changes-attlist =
1982 attribute table:track-changes { boolean }?
1983table-insertion =
1984 element table:insertion {
1985 table-insertion-attlist,
1986 common-table-change-attlist,
1987 office-change-info,
1988 table-dependencies?,
1989 table-deletions?
1990 }
1991table-insertion-attlist =
1992 attribute table:type { "row" | "column" | "table" }
1993 & attribute table:position { integer }
1994 & attribute table:count { positiveInteger }?
1995 & attribute table:table { integer }?
1996table-dependencies = element table:dependencies { table-dependency+ }
1997table-dependency =
1998 element table:dependency {
1999 attribute table:id { \string },
2000 empty
2001 }
2002table-deletions =
2003 element table:deletions {
2004 (table-cell-content-deletion | table-change-deletion)+
2005 }
2006table-cell-content-deletion =
2007 element table:cell-content-deletion {
2008 attribute table:id { \string }?,
2009 table-cell-address?,
2010 table-change-track-table-cell?
2011 }
2012table-change-deletion =
2013 element table:change-deletion {
2014 attribute table:id { \string }?,
2015 empty
2016 }
2017table-deletion =
2018 element table:deletion {
2019 table-deletion-attlist,
2020 common-table-change-attlist,
2021 office-change-info,
2022 table-dependencies?,
2023 table-deletions?,
2024 table-cut-offs?
2025 }
2026table-deletion-attlist =
2027 attribute table:type { "row" | "column" | "table" }
2028 & attribute table:position { integer }
2029 & attribute table:table { integer }?
2030 & attribute table:multi-deletion-spanned { integer }?
2031table-cut-offs =
2032 element table:cut-offs {
2033 table-movement-cut-off+
2034 | (table-insertion-cut-off, table-movement-cut-off*)
2035 }
2036table-insertion-cut-off =
2037 element table:insertion-cut-off {
2038 table-insertion-cut-off-attlist, empty
2039 }
2040table-insertion-cut-off-attlist =
2041 attribute table:id { \string }
2042 & attribute table:position { integer }
2043table-movement-cut-off =
2044 element table:movement-cut-off {
2045 table-movement-cut-off-attlist, empty
2046 }
2047table-movement-cut-off-attlist =
2048 attribute table:position { integer }
2049 | (attribute table:start-position { integer },
2050 attribute table:end-position { integer })
2051table-movement =
2052 element table:movement {
2053 common-table-change-attlist,
2054 table-source-range-address,
2055 table-target-range-address,
2056 office-change-info,
2057 table-dependencies?,
2058 table-deletions?
2059 }
2060table-source-range-address =
2061 element table:source-range-address {
2062 common-table-range-attlist, empty
2063 }
2064table-target-range-address =
2065 element table:target-range-address {
2066 common-table-range-attlist, empty
2067 }
2068common-table-range-attlist =
2069 common-table-cell-address-attlist
2070 | common-table-cell-range-address-attlist
2071common-table-cell-address-attlist =
2072 attribute table:column { integer },
2073 attribute table:row { integer },
2074 attribute table:table { integer }
2075common-table-cell-range-address-attlist =
2076 attribute table:start-column { integer },
2077 attribute table:start-row { integer },
2078 attribute table:start-table { integer },
2079 attribute table:end-column { integer },
2080 attribute table:end-row { integer },
2081 attribute table:end-table { integer }
2082table-change-track-table-cell =
2083 element table:change-track-table-cell {
2084 table-change-track-table-cell-attlist, text-p*
2085 }
2086table-change-track-table-cell-attlist =
2087 attribute table:cell-address { cellAddress }?
2088 & attribute table:matrix-covered { boolean }?
2089 & attribute table:formula { \string }?
2090 & attribute table:number-matrix-columns-spanned { positiveInteger }?
2091 & attribute table:number-matrix-rows-spanned { positiveInteger }?
2092 & common-value-and-type-attlist?
2093table-cell-content-change =
2094 element table:cell-content-change {
2095 common-table-change-attlist,
2096 table-cell-address,
2097 office-change-info,
2098 table-dependencies?,
2099 table-deletions?,
2100 table-previous
2101 }
2102table-cell-address =
2103 element table:cell-address {
2104 common-table-cell-address-attlist, empty
2105 }
2106table-previous =
2107 element table:previous {
2108 attribute table:id { \string }?,
2109 table-change-track-table-cell
2110 }
2111common-table-change-attlist =
2112 attribute table:id { \string }
2113 & attribute table:acceptance-state {
2114 "accepted" | "rejected" | "pending"
2115 }?
2116 & attribute table:rejecting-change-id { \string }?
2117style-handout-master =
2118 element style:handout-master {
2119 common-presentation-header-footer-attlist,
2120 style-handout-master-attlist,
2121 shape*
2122 }
2123style-handout-master-attlist =
2124 attribute presentation:presentation-page-layout-name { styleNameRef }?
2125 & attribute style:page-layout-name { styleNameRef }
2126 & attribute draw:style-name { styleNameRef }?
2127draw-layer-set = element draw:layer-set { draw-layer* }
2128draw-layer =
2129 element draw:layer { draw-layer-attlist, svg-title?, svg-desc? }
2130draw-layer-attlist =
2131 attribute draw:name { \string }
2132 & attribute draw:protected { boolean }?
2133 & attribute draw:display { "always" | "screen" | "printer" | "none" }?
2134draw-page =
2135 element draw:page {
2136 common-presentation-header-footer-attlist,
2137 draw-page-attlist,
2138 svg-title?,
2139 svg-desc?,
2140 draw-layer-set?,
2141 office-forms?,
2142 shape*,
2143 (presentation-animations | animation-element)?,
2144 presentation-notes?
2145 }
2146draw-page-attlist =
2147 attribute draw:name { \string }?
2148 & attribute draw:style-name { styleNameRef }?
2149 & attribute draw:master-page-name { styleNameRef }
2150 & attribute presentation:presentation-page-layout-name {
2151 styleNameRef
2152 }?
2153 & (xml-id,
2154 attribute draw:id { NCName }?)?
2155 & attribute draw:nav-order { IDREFS }?
2156common-presentation-header-footer-attlist =
2157 attribute presentation:use-header-name { \string }?
2158 & attribute presentation:use-footer-name { \string }?
2159 & attribute presentation:use-date-time-name { \string }?
2160shape = shape-instance | draw-a
2161shape-instance =
2162 draw-rect
2163 | draw-line
2164 | draw-polyline
2165 | draw-polygon
2166 | draw-regular-polygon
2167 | draw-path
2168 | draw-circle
2169 | draw-ellipse
2170 | draw-g
2171 | draw-page-thumbnail
2172 | draw-frame
2173 | draw-measure
2174 | draw-caption
2175 | draw-connector
2176 | draw-control
2177 | dr3d-scene
2178 | draw-custom-shape
2179draw-rect =
2180 element draw:rect {
2181 draw-rect-attlist,
2182 common-draw-position-attlist,
2183 common-draw-size-attlist,
2184 common-draw-shape-with-text-and-styles-attlist,
2185 common-draw-caption-id-attlist,
2186 svg-title?,
2187 svg-desc?,
2188 office-event-listeners?,
2189 draw-glue-point*,
2190 draw-text
2191 }
2192draw-rect-attlist =
2193 attribute draw:corner-radius { nonNegativeLength }?
2194 | (attribute svg:rx { nonNegativeLength }?,
2195 attribute svg:ry { nonNegativeLength }?)
2196draw-line =
2197 element draw:line {
2198 draw-line-attlist,
2199 common-draw-shape-with-text-and-styles-attlist,
2200 common-draw-caption-id-attlist,
2201 svg-title?,
2202 svg-desc?,
2203 office-event-listeners?,
2204 draw-glue-point*,
2205 draw-text
2206 }
2207draw-line-attlist =
2208 attribute svg:x1 { coordinate }
2209 & attribute svg:y1 { coordinate }
2210 & attribute svg:x2 { coordinate }
2211 & attribute svg:y2 { coordinate }
2212draw-polyline =
2213 element draw:polyline {
2214 common-draw-points-attlist,
2215 common-draw-position-attlist,
2216 common-draw-size-attlist,
2217 common-draw-viewbox-attlist,
2218 common-draw-shape-with-text-and-styles-attlist,
2219 common-draw-caption-id-attlist,
2220 svg-title?,
2221 svg-desc?,
2222 office-event-listeners?,
2223 draw-glue-point*,
2224 draw-text
2225 }
2226common-draw-points-attlist = attribute draw:points { points }
2227draw-polygon =
2228 element draw:polygon {
2229 common-draw-points-attlist,
2230 common-draw-position-attlist,
2231 common-draw-size-attlist,
2232 common-draw-viewbox-attlist,
2233 common-draw-shape-with-text-and-styles-attlist,
2234 common-draw-caption-id-attlist,
2235 svg-title?,
2236 svg-desc?,
2237 office-event-listeners?,
2238 draw-glue-point*,
2239 draw-text
2240 }
2241draw-regular-polygon =
2242 element draw:regular-polygon {
2243 draw-regular-polygon-attlist,
2244 common-draw-position-attlist,
2245 common-draw-size-attlist,
2246 common-draw-shape-with-text-and-styles-attlist,
2247 common-draw-caption-id-attlist,
2248 svg-title?,
2249 svg-desc?,
2250 office-event-listeners?,
2251 draw-glue-point*,
2252 draw-text
2253 }
2254draw-regular-polygon-attlist =
2255 (attribute draw:concave { "false" }
2256 | (attribute draw:concave { "true" },
2257 draw-regular-polygon-sharpness-attlist))
2258 & attribute draw:corners { positiveInteger }
2259draw-regular-polygon-sharpness-attlist =
2260 attribute draw:sharpness { percent }
2261draw-path =
2262 element draw:path {
2263 common-draw-path-data-attlist,
2264 common-draw-position-attlist,
2265 common-draw-size-attlist,
2266 common-draw-viewbox-attlist,
2267 common-draw-shape-with-text-and-styles-attlist,
2268 common-draw-caption-id-attlist,
2269 svg-title?,
2270 svg-desc?,
2271 office-event-listeners?,
2272 draw-glue-point*,
2273 draw-text
2274 }
2275common-draw-path-data-attlist = attribute svg:d { pathData }
2276draw-circle =
2277 element draw:circle {
2278 ((draw-circle-attlist, common-draw-circle-ellipse-pos-attlist)
2279 | (common-draw-position-attlist, common-draw-size-attlist)),
2280 common-draw-circle-ellipse-attlist,
2281 common-draw-shape-with-text-and-styles-attlist,
2282 common-draw-caption-id-attlist,
2283 svg-title?,
2284 svg-desc?,
2285 office-event-listeners?,
2286 draw-glue-point*,
2287 draw-text
2288 }
2289common-draw-circle-ellipse-pos-attlist =
2290 attribute svg:cx { coordinate },
2291 attribute svg:cy { coordinate }
2292draw-circle-attlist = attribute svg:r { length }
2293common-draw-circle-ellipse-attlist =
2294 attribute draw:kind { "full" | "section" | "cut" | "arc" }?
2295 & attribute draw:start-angle { angle }?
2296 & attribute draw:end-angle { angle }?
2297draw-ellipse =
2298 element draw:ellipse {
2299 ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist)
2300 | (common-draw-position-attlist, common-draw-size-attlist)),
2301 common-draw-circle-ellipse-attlist,
2302 common-draw-shape-with-text-and-styles-attlist,
2303 common-draw-caption-id-attlist,
2304 svg-title?,
2305 svg-desc?,
2306 office-event-listeners?,
2307 draw-glue-point*,
2308 draw-text
2309 }
2310draw-ellipse-attlist =
2311 attribute svg:rx { length },
2312 attribute svg:ry { length }
2313draw-connector =
2314 element draw:connector {
2315 draw-connector-attlist,
2316 common-draw-shape-with-text-and-styles-attlist,
2317 common-draw-caption-id-attlist,
2318 common-draw-viewbox-attlist,
2319 svg-title?,
2320 svg-desc?,
2321 office-event-listeners?,
2322 draw-glue-point*,
2323 draw-text
2324 }
2325draw-connector-attlist =
2326 attribute draw:type { "standard" | "lines" | "line" | "curve" }?
2327 & (attribute svg:x1 { coordinate },
2328 attribute svg:y1 { coordinate })?
2329 & attribute draw:start-shape { IDREF }?
2330 & attribute draw:start-glue-point { nonNegativeInteger }?
2331 & (attribute svg:x2 { coordinate },
2332 attribute svg:y2 { coordinate })?
2333 & attribute draw:end-shape { IDREF }?
2334 & attribute draw:end-glue-point { nonNegativeInteger }?
2335 & attribute draw:line-skew {
2336 list { length, (length, length?)? }
2337 }?
2338 & attribute svg:d { pathData }?
2339draw-caption =
2340 element draw:caption {
2341 draw-caption-attlist,
2342 common-draw-position-attlist,
2343 common-draw-size-attlist,
2344 common-draw-shape-with-text-and-styles-attlist,
2345 common-draw-caption-id-attlist,
2346 svg-title?,
2347 svg-desc?,
2348 office-event-listeners?,
2349 draw-glue-point*,
2350 draw-text
2351 }
2352draw-caption-attlist =
2353 (attribute draw:caption-point-x { coordinate },
2354 attribute draw:caption-point-y { coordinate })?
2355 & attribute draw:corner-radius { nonNegativeLength }?
2356draw-measure =
2357 element draw:measure {
2358 draw-measure-attlist,
2359 common-draw-shape-with-text-and-styles-attlist,
2360 common-draw-caption-id-attlist,
2361 svg-title?,
2362 svg-desc?,
2363 office-event-listeners?,
2364 draw-glue-point*,
2365 draw-text
2366 }
2367draw-measure-attlist =
2368 attribute svg:x1 { coordinate }
2369 & attribute svg:y1 { coordinate }
2370 & attribute svg:x2 { coordinate }
2371 & attribute svg:y2 { coordinate }
2372draw-control =
2373 element draw:control {
2374 draw-control-attlist,
2375 common-draw-position-attlist,
2376 common-draw-size-attlist,
2377 common-draw-shape-with-text-and-styles-attlist,
2378 common-draw-caption-id-attlist,
2379 svg-title?,
2380 svg-desc?,
2381 draw-glue-point*
2382 }
2383draw-control-attlist = attribute draw:control { IDREF }
2384draw-page-thumbnail =
2385 element draw:page-thumbnail {
2386 draw-page-thumbnail-attlist,
2387 common-draw-position-attlist,
2388 common-draw-size-attlist,
2389 presentation-shape-attlist,
2390 common-draw-shape-with-styles-attlist,
2391 common-draw-caption-id-attlist,
2392 svg-title?,
2393 svg-desc?
2394 }
2395draw-page-thumbnail-attlist =
2396 attribute draw:page-number { positiveInteger }?
2397draw-g =
2398 element draw:g {
2399 draw-g-attlist,
2400 common-draw-z-index-attlist,
2401 common-draw-name-attlist,
2402 common-draw-id-attlist,
2403 common-draw-style-name-attlist,
2404 common-text-spreadsheet-shape-attlist,
2405 common-draw-caption-id-attlist,
2406 svg-title?,
2407 svg-desc?,
2408 office-event-listeners?,
2409 draw-glue-point*,
2410 shape*
2411 }
2412draw-g-attlist = attribute svg:y { coordinate }?
2413common-draw-name-attlist = attribute draw:name { \string }?
2414common-draw-caption-id-attlist = attribute draw:caption-id { IDREF }?
2415common-draw-position-attlist =
2416 attribute svg:x { coordinate }?,
2417 attribute svg:y { coordinate }?
2418common-draw-size-attlist =
2419 attribute svg:width { length }?,
2420 attribute svg:height { length }?
2421common-draw-transform-attlist = attribute draw:transform { \string }?
2422common-draw-viewbox-attlist =
2423 attribute svg:viewBox {
2424 list { integer, integer, integer, integer }
2425 }
2426common-draw-style-name-attlist =
2427 (attribute draw:style-name { styleNameRef }?,
2428 attribute draw:class-names { styleNameRefs }?)
2429 | (attribute presentation:style-name { styleNameRef }?,
2430 attribute presentation:class-names { styleNameRefs }?)
2431common-draw-text-style-name-attlist =
2432 attribute draw:text-style-name { styleNameRef }?
2433common-draw-layer-name-attlist = attribute draw:layer { \string }?
2434common-draw-id-attlist =
2435 (xml-id,
2436 attribute draw:id { NCName }?)?
2437common-draw-z-index-attlist =
2438 attribute draw:z-index { nonNegativeInteger }?
2439common-text-spreadsheet-shape-attlist =
2440 attribute table:end-cell-address { cellAddress }?
2441 & attribute table:end-x { coordinate }?
2442 & attribute table:end-y { coordinate }?
2443 & attribute table:table-background { boolean }?
2444 & common-text-anchor-attlist
2445common-text-anchor-attlist =
2446 attribute text:anchor-type {
2447 "page" | "frame" | "paragraph" | "char" | "as-char"
2448 }?
2449 & attribute text:anchor-page-number { positiveInteger }?
2450draw-text = (text-p | text-list)*
2451common-draw-shape-with-styles-attlist =
2452 common-draw-z-index-attlist,
2453 common-draw-id-attlist,
2454 common-draw-layer-name-attlist,
2455 common-draw-style-name-attlist,
2456 common-draw-transform-attlist,
2457 common-draw-name-attlist,
2458 common-text-spreadsheet-shape-attlist
2459common-draw-shape-with-text-and-styles-attlist =
2460 common-draw-shape-with-styles-attlist,
2461 common-draw-text-style-name-attlist
2462draw-glue-point =
2463 element draw:glue-point { draw-glue-point-attlist, empty }
2464draw-glue-point-attlist =
2465 attribute draw:id { nonNegativeInteger }
2466 & attribute svg:x { distance | percent }
2467 & attribute svg:y { distance | percent }
2468 & attribute draw:align {
2469 "top-left"
2470 | "top"
2471 | "top-right"
2472 | "left"
2473 | "center"
2474 | "right"
2475 | "bottom-left"
2476 | "bottom-right"
2477 }?
2478 & attribute draw:escape-direction {
2479 "auto"
2480 | "left"
2481 | "right"
2482 | "up"
2483 | "down"
2484 | "horizontal"
2485 | "vertical"
2486 }
2487svg-title = element svg:title { text }
2488svg-desc = element svg:desc { text }
2489draw-frame =
2490 element draw:frame {
2491 common-draw-shape-with-text-and-styles-attlist,
2492 common-draw-position-attlist,
2493 common-draw-rel-size-attlist,
2494 common-draw-caption-id-attlist,
2495 presentation-shape-attlist,
2496 draw-frame-attlist,
2497 (draw-text-box
2498 | draw-image
2499 | draw-object
2500 | draw-object-ole
2501 | draw-applet
2502 | draw-floating-frame
2503 | draw-plugin
2504 | table-table)*,
2505 office-event-listeners?,
2506 draw-glue-point*,
2507 draw-image-map?,
2508 svg-title?,
2509 svg-desc?,
2510 (draw-contour-polygon | draw-contour-path)?
2511 }
2512common-draw-rel-size-attlist =
2513 common-draw-size-attlist,
2514 attribute style:rel-width { percent | "scale" | "scale-min" }?,
2515 attribute style:rel-height { percent | "scale" | "scale-min" }?
2516draw-frame-attlist = attribute draw:copy-of { \string }?
2517draw-text-box =
2518 element draw:text-box { draw-text-box-attlist, text-content* }
2519draw-text-box-attlist =
2520 attribute draw:chain-next-name { \string }?
2521 & attribute draw:corner-radius { nonNegativeLength }?
2522 & attribute fo:min-height { length | percent }?
2523 & attribute fo:min-width { length | percent }?
2524 & attribute fo:max-height { length | percent }?
2525 & attribute fo:max-width { length | percent }?
2526 & (xml-id,
2527 attribute text:id { NCName }?)?
2528draw-image =
2529 element draw:image {
2530 draw-image-attlist,
2531 (common-draw-data-attlist | office-binary-data),
2532 draw-text
2533 }
2534common-draw-data-attlist =
2535 attribute xlink:type { "simple" },
2536 attribute xlink:href { anyIRI },
2537 attribute xlink:show { "embed" }?,
2538 attribute xlink:actuate { "onLoad" }?
2539office-binary-data = element office:binary-data { base64Binary }
2540draw-image-attlist =
2541 attribute draw:filter-name { \string }?
2542 & xml-id?
2543draw-object =
2544 element draw:object {
2545 draw-object-attlist,
2546 (common-draw-data-attlist | office-document | math-math)
2547 }
2548draw-object-ole =
2549 element draw:object-ole {
2550 draw-object-ole-attlist,
2551 (common-draw-data-attlist | office-binary-data)
2552 }
2553draw-object-attlist =
2554 attribute draw:notify-on-update-of-ranges {
2555 cellRangeAddressList | \string
2556 }?
2557 & xml-id?
2558draw-object-ole-attlist =
2559 attribute draw:class-id { \string }?
2560 & xml-id?
2561draw-applet =
2562 element draw:applet {
2563 draw-applet-attlist, common-draw-data-attlist?, draw-param*
2564 }
2565draw-applet-attlist =
2566 attribute draw:code { \string }?
2567 & attribute draw:object { \string }?
2568 & attribute draw:archive { \string }?
2569 & attribute draw:may-script { boolean }?
2570 & xml-id?
2571draw-plugin =
2572 element draw:plugin {
2573 draw-plugin-attlist, common-draw-data-attlist, draw-param*
2574 }
2575draw-plugin-attlist =
2576 attribute draw:mime-type { \string }?
2577 & xml-id?
2578draw-param = element draw:param { draw-param-attlist, empty }
2579draw-param-attlist =
2580 attribute draw:name { \string }?
2581 & attribute draw:value { \string }?
2582draw-floating-frame =
2583 element draw:floating-frame {
2584 draw-floating-frame-attlist, common-draw-data-attlist
2585 }
2586draw-floating-frame-attlist =
2587 attribute draw:frame-name { \string }?
2588 & xml-id?
2589draw-contour-polygon =
2590 element draw:contour-polygon {
2591 common-contour-attlist,
2592 common-draw-size-attlist,
2593 common-draw-viewbox-attlist,
2594 common-draw-points-attlist,
2595 empty
2596 }
2597draw-contour-path =
2598 element draw:contour-path {
2599 common-contour-attlist,
2600 common-draw-size-attlist,
2601 common-draw-viewbox-attlist,
2602 common-draw-path-data-attlist,
2603 empty
2604 }
2605common-contour-attlist = attribute draw:recreate-on-edit { boolean }
2606draw-a = element draw:a { draw-a-attlist, shape-instance }
2607draw-a-attlist =
2608 attribute xlink:type { "simple" }
2609 & attribute xlink:href { anyIRI }
2610 & attribute xlink:actuate { "onRequest" }?
2611 & attribute office:target-frame-name { targetFrameName }?
2612 & attribute xlink:show { "new" | "replace" }?
2613 & attribute office:name { \string }?
2614 & attribute office:title { \string }?
2615 & attribute office:server-map { boolean }?
2616 & xml-id?
2617draw-image-map =
2618 element draw:image-map {
2619 (draw-area-rectangle | draw-area-circle | draw-area-polygon)*
2620 }
2621draw-area-rectangle =
2622 element draw:area-rectangle {
2623 common-draw-area-attlist,
2624 attribute svg:x { coordinate },
2625 attribute svg:y { coordinate },
2626 attribute svg:width { length },
2627 attribute svg:height { length },
2628 svg-title?,
2629 svg-desc?,
2630 office-event-listeners?
2631 }
2632draw-area-circle =
2633 element draw:area-circle {
2634 common-draw-area-attlist,
2635 attribute svg:cx { coordinate },
2636 attribute svg:cy { coordinate },
2637 attribute svg:r { length },
2638 svg-title?,
2639 svg-desc?,
2640 office-event-listeners?
2641 }
2642draw-area-polygon =
2643 element draw:area-polygon {
2644 common-draw-area-attlist,
2645 attribute svg:x { coordinate },
2646 attribute svg:y { coordinate },
2647 attribute svg:width { length },
2648 attribute svg:height { length },
2649 common-draw-viewbox-attlist,
2650 common-draw-points-attlist,
2651 svg-title?,
2652 svg-desc?,
2653 office-event-listeners?
2654 }
2655common-draw-area-attlist =
2656 (attribute xlink:type { "simple" },
2657 attribute xlink:href { anyIRI },
2658 attribute office:target-frame-name { targetFrameName }?,
2659 attribute xlink:show { "new" | "replace" }?)?
2660 & attribute office:name { \string }?
2661 & attribute draw:nohref { "nohref" }?
2662dr3d-scene =
2663 element dr3d:scene {
2664 dr3d-scene-attlist,
2665 common-draw-position-attlist,
2666 common-draw-size-attlist,
2667 common-draw-style-name-attlist,
2668 common-draw-z-index-attlist,
2669 common-draw-id-attlist,
2670 common-draw-layer-name-attlist,
2671 common-text-spreadsheet-shape-attlist,
2672 common-dr3d-transform-attlist,
2673 common-draw-caption-id-attlist,
2674 svg-title?,
2675 svg-desc?,
2676 dr3d-light*,
2677 shapes3d*,
2678 draw-glue-point*
2679 }
2680shapes3d =
2681 dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cube
2682dr3d-scene-attlist =
2683 attribute dr3d:vrp { vector3D }?
2684 & attribute dr3d:vpn { vector3D }?
2685 & attribute dr3d:vup { vector3D }?
2686 & attribute dr3d:projection { "parallel" | "perspective" }?
2687 & attribute dr3d:distance { length }?
2688 & attribute dr3d:focal-length { length }?
2689 & attribute dr3d:shadow-slant { angle }?
2690 & attribute dr3d:shade-mode {
2691 "flat" | "phong" | "gouraud" | "draft"
2692 }?
2693 & attribute dr3d:ambient-color { color }?
2694 & attribute dr3d:lighting-mode { boolean }?
2695common-dr3d-transform-attlist = attribute dr3d:transform { \string }?
2696dr3d-light = element dr3d:light { dr3d-light-attlist, empty }
2697dr3d-light-attlist =
2698 attribute dr3d:diffuse-color { color }?
2699 & attribute dr3d:direction { vector3D }
2700 & attribute dr3d:enabled { boolean }?
2701 & attribute dr3d:specular { boolean }?
2702dr3d-cube =
2703 element dr3d:cube {
2704 dr3d-cube-attlist,
2705 common-draw-z-index-attlist,
2706 common-draw-id-attlist,
2707 common-draw-layer-name-attlist,
2708 common-draw-style-name-attlist,
2709 common-dr3d-transform-attlist,
2710 empty
2711 }
2712dr3d-cube-attlist =
2713 attribute dr3d:min-edge { vector3D }?,
2714 attribute dr3d:max-edge { vector3D }?
2715dr3d-sphere =
2716 element dr3d:sphere {
2717 dr3d-sphere-attlist,
2718 common-draw-z-index-attlist,
2719 common-draw-id-attlist,
2720 common-draw-layer-name-attlist,
2721 common-draw-style-name-attlist,
2722 common-dr3d-transform-attlist,
2723 empty
2724 }
2725dr3d-sphere-attlist =
2726 attribute dr3d:center { vector3D }?
2727 & attribute dr3d:size { vector3D }?
2728dr3d-extrude =
2729 element dr3d:extrude {
2730 common-draw-path-data-attlist,
2731 common-draw-viewbox-attlist,
2732 common-draw-id-attlist,
2733 common-draw-z-index-attlist,
2734 common-draw-layer-name-attlist,
2735 common-draw-style-name-attlist,
2736 common-dr3d-transform-attlist,
2737 empty
2738 }
2739dr3d-rotate =
2740 element dr3d:rotate {
2741 common-draw-viewbox-attlist,
2742 common-draw-path-data-attlist,
2743 common-draw-z-index-attlist,
2744 common-draw-id-attlist,
2745 common-draw-layer-name-attlist,
2746 common-draw-style-name-attlist,
2747 common-dr3d-transform-attlist,
2748 empty
2749 }
2750draw-custom-shape =
2751 element draw:custom-shape {
2752 draw-custom-shape-attlist,
2753 common-draw-position-attlist,
2754 common-draw-size-attlist,
2755 common-draw-shape-with-text-and-styles-attlist,
2756 common-draw-caption-id-attlist,
2757 svg-title?,
2758 svg-desc?,
2759 office-event-listeners?,
2760 draw-glue-point*,
2761 draw-text,
2762 draw-enhanced-geometry?
2763 }
2764draw-custom-shape-attlist =
2765 attribute draw:engine { namespacedToken }?
2766 & attribute draw:data { \string }?
2767draw-enhanced-geometry =
2768 element draw:enhanced-geometry {
2769 draw-enhanced-geometry-attlist, draw-equation*, draw-handle*
2770 }
2771draw-enhanced-geometry-attlist =
2772 attribute draw:type { custom-shape-type }?
2773 & attribute svg:viewBox {
2774 list { integer, integer, integer, integer }
2775 }?
2776 & attribute draw:mirror-vertical { boolean }?
2777 & attribute draw:mirror-horizontal { boolean }?
2778 & attribute draw:text-rotate-angle { angle }?
2779 & attribute draw:extrusion-allowed { boolean }?
2780 & attribute draw:text-path-allowed { boolean }?
2781 & attribute draw:concentric-gradient-fill-allowed { boolean }?
2782 & attribute draw:extrusion { boolean }?
2783 & attribute draw:extrusion-brightness { zeroToHundredPercent }?
2784 & attribute draw:extrusion-depth {
2785 list { length, double }
2786 }?
2787 & attribute draw:extrusion-diffusion { percent }?
2788 & attribute draw:extrusion-number-of-line-segments { integer }?
2789 & attribute draw:extrusion-light-face { boolean }?
2790 & attribute draw:extrusion-first-light-harsh { boolean }?
2791 & attribute draw:extrusion-second-light-harsh { boolean }?
2792 & attribute draw:extrusion-first-light-level { zeroToHundredPercent }?
2793 & attribute draw:extrusion-second-light-level {
2794 zeroToHundredPercent
2795 }?
2796 & attribute draw:extrusion-first-light-direction { vector3D }?
2797 & attribute draw:extrusion-second-light-direction { vector3D }?
2798 & attribute draw:extrusion-metal { boolean }?
2799 & attribute dr3d:shade-mode {
2800 "flat" | "phong" | "gouraud" | "draft"
2801 }?
2802 & attribute draw:extrusion-rotation-angle {
2803 list { angle, angle }
2804 }?
2805 & attribute draw:extrusion-rotation-center { vector3D }?
2806 & attribute draw:extrusion-shininess { zeroToHundredPercent }?
2807 & attribute draw:extrusion-skew {
2808 list { double, angle }
2809 }?
2810 & attribute draw:extrusion-specularity { zeroToHundredPercent }?
2811 & attribute dr3d:projection { "parallel" | "perspective" }?
2812 & attribute draw:extrusion-viewpoint { point3D }?
2813 & attribute draw:extrusion-origin {
2814 list { extrusionOrigin, extrusionOrigin }
2815 }?
2816 & attribute draw:extrusion-color { boolean }?
2817 & attribute draw:enhanced-path { \string }?
2818 & attribute draw:path-stretchpoint-x { double }?
2819 & attribute draw:path-stretchpoint-y { double }?
2820 & attribute draw:text-areas { \string }?
2821 & attribute draw:glue-points { \string }?
2822 & attribute draw:glue-point-type {
2823 "none" | "segments" | "rectangle"
2824 }?
2825 & attribute draw:glue-point-leaving-directions { \string }?
2826 & attribute draw:text-path { boolean }?
2827 & attribute draw:text-path-mode { "normal" | "path" | "shape" }?
2828 & attribute draw:text-path-scale { "path" | "shape" }?
2829 & attribute draw:text-path-same-letter-heights { boolean }?
2830 & attribute draw:modifiers { \string }?
2831custom-shape-type = "non-primitive" | \string
2832point3D =
2833 xsd:string {
2834 pattern =
2835 "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)"
2836 }
2837extrusionOrigin =
2838 xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" }
2839draw-equation = element draw:equation { draw-equation-attlist, empty }
2840draw-equation-attlist =
2841 attribute draw:name { \string }?
2842 & attribute draw:formula { \string }?
2843draw-handle = element draw:handle { draw-handle-attlist, empty }
2844draw-handle-attlist =
2845 attribute draw:handle-mirror-vertical { boolean }?
2846 & attribute draw:handle-mirror-horizontal { boolean }?
2847 & attribute draw:handle-switched { boolean }?
2848 & attribute draw:handle-position { \string }
2849 & attribute draw:handle-range-x-minimum { \string }?
2850 & attribute draw:handle-range-x-maximum { \string }?
2851 & attribute draw:handle-range-y-minimum { \string }?
2852 & attribute draw:handle-range-y-maximum { \string }?
2853 & attribute draw:handle-polar { \string }?
2854 & attribute draw:handle-radius-range-minimum { \string }?
2855 & attribute draw:handle-radius-range-maximum { \string }?
2856presentation-shape-attlist =
2857 attribute presentation:class { presentation-classes }?
2858 & attribute presentation:placeholder { boolean }?
2859 & attribute presentation:user-transformed { boolean }?
2860presentation-classes =
2861 "title"
2862 | "outline"
2863 | "subtitle"
2864 | "text"
2865 | "graphic"
2866 | "object"
2867 | "chart"
2868 | "table"
2869 | "orgchart"
2870 | "page"
2871 | "notes"
2872 | "handout"
2873 | "header"
2874 | "footer"
2875 | "date-time"
2876 | "page-number"
2877presentation-animations =
2878 element presentation:animations {
2879 (presentation-animation-elements | presentation-animation-group)*
2880 }
2881presentation-animation-elements =
2882 presentation-show-shape
2883 | presentation-show-text
2884 | presentation-hide-shape
2885 | presentation-hide-text
2886 | presentation-dim
2887 | presentation-play
2888presentation-sound =
2889 element presentation:sound {
2890 presentation-sound-attlist,
2891 attribute xlink:type { "simple" },
2892 attribute xlink:href { anyIRI },
2893 attribute xlink:actuate { "onRequest" }?,
2894 attribute xlink:show { "new" | "replace" }?,
2895 empty
2896 }
2897presentation-sound-attlist =
2898 attribute presentation:play-full { boolean }?
2899 & xml-id?
2900presentation-show-shape =
2901 element presentation:show-shape {
2902 common-presentation-effect-attlist, presentation-sound?
2903 }
2904common-presentation-effect-attlist =
2905 attribute draw:shape-id { IDREF }
2906 & attribute presentation:effect { presentationEffects }?
2907 & attribute presentation:direction { presentationEffectDirections }?
2908 & attribute presentation:speed { presentationSpeeds }?
2909 & attribute presentation:delay { duration }?
2910 & attribute presentation:start-scale { percent }?
2911 & attribute presentation:path-id { \string }?
2912presentationEffects =
2913 "none"
2914 | "fade"
2915 | "move"
2916 | "stripes"
2917 | "open"
2918 | "close"
2919 | "dissolve"
2920 | "wavyline"
2921 | "random"
2922 | "lines"
2923 | "laser"
2924 | "appear"
2925 | "hide"
2926 | "move-short"
2927 | "checkerboard"
2928 | "rotate"
2929 | "stretch"
2930presentationEffectDirections =
2931 "none"
2932 | "from-left"
2933 | "from-top"
2934 | "from-right"
2935 | "from-bottom"
2936 | "from-center"
2937 | "from-upper-left"
2938 | "from-upper-right"
2939 | "from-lower-left"
2940 | "from-lower-right"
2941 | "to-left"
2942 | "to-top"
2943 | "to-right"
2944 | "to-bottom"
2945 | "to-upper-left"
2946 | "to-upper-right"
2947 | "to-lower-right"
2948 | "to-lower-left"
2949 | "path"
2950 | "spiral-inward-left"
2951 | "spiral-inward-right"
2952 | "spiral-outward-left"
2953 | "spiral-outward-right"
2954 | "vertical"
2955 | "horizontal"
2956 | "to-center"
2957 | "clockwise"
2958 | "counter-clockwise"
2959presentationSpeeds = "slow" | "medium" | "fast"
2960presentation-show-text =
2961 element presentation:show-text {
2962 common-presentation-effect-attlist, presentation-sound?
2963 }
2964presentation-hide-shape =
2965 element presentation:hide-shape {
2966 common-presentation-effect-attlist, presentation-sound?
2967 }
2968presentation-hide-text =
2969 element presentation:hide-text {
2970 common-presentation-effect-attlist, presentation-sound?
2971 }
2972presentation-dim =
2973 element presentation:dim {
2974 presentation-dim-attlist, presentation-sound?
2975 }
2976presentation-dim-attlist =
2977 attribute draw:shape-id { IDREF }
2978 & attribute draw:color { color }
2979presentation-play =
2980 element presentation:play { presentation-play-attlist, empty }
2981presentation-play-attlist =
2982 attribute draw:shape-id { IDREF },
2983 attribute presentation:speed { presentationSpeeds }?
2984presentation-animation-group =
2985 element presentation:animation-group {
2986 presentation-animation-elements*
2987 }
2988common-anim-attlist =
2989 attribute presentation:node-type {
2990 "default"
2991 | "on-click"
2992 | "with-previous"
2993 | "after-previous"
2994 | "timing-root"
2995 | "main-sequence"
2996 | "interactive-sequence"
2997 }?
2998 & attribute presentation:preset-id { \string }?
2999 & attribute presentation:preset-sub-type { \string }?
3000 & attribute presentation:preset-class {
3001 "custom"
3002 | "entrance"
3003 | "exit"
3004 | "emphasis"
3005 | "motion-path"
3006 | "ole-action"
3007 | "media-call"
3008 }?
3009 & attribute presentation:master-element { IDREF }?
3010 & attribute presentation:group-id { \string }?
3011 & (xml-id,
3012 attribute anim:id { NCName }?)?
3013presentation-event-listener =
3014 element presentation:event-listener {
3015 presentation-event-listener-attlist, presentation-sound?
3016 }
3017presentation-event-listener-attlist =
3018 attribute script:event-name { \string }
3019 & attribute presentation:action {
3020 "none"
3021 | "previous-page"
3022 | "next-page"
3023 | "first-page"
3024 | "last-page"
3025 | "hide"
3026 | "stop"
3027 | "execute"
3028 | "show"
3029 | "verb"
3030 | "fade-out"
3031 | "sound"
3032 | "last-visited-page"
3033 }
3034 & attribute presentation:effect { presentationEffects }?
3035 & attribute presentation:direction { presentationEffectDirections }?
3036 & attribute presentation:speed { presentationSpeeds }?
3037 & attribute presentation:start-scale { percent }?
3038 & (attribute xlink:type { "simple" },
3039 attribute xlink:href { anyIRI },
3040 attribute xlink:show { "embed" }?,
3041 attribute xlink:actuate { "onRequest" }?)?
3042 & attribute presentation:verb { nonNegativeInteger }?
3043presentation-decls = presentation-decl*
3044presentation-decl =
3045 element presentation:header-decl {
3046 presentation-header-decl-attlist, text
3047 }
3048 | element presentation:footer-decl {
3049 presentation-footer-decl-attlist, text
3050 }
3051 | element presentation:date-time-decl {
3052 presentation-date-time-decl-attlist, text
3053 }
3054presentation-header-decl-attlist =
3055 attribute presentation:name { \string }
3056presentation-footer-decl-attlist =
3057 attribute presentation:name { \string }
3058presentation-date-time-decl-attlist =
3059 attribute presentation:name { \string }
3060 & attribute presentation:source { "fixed" | "current-date" }
3061 & attribute style:data-style-name { styleNameRef }?
3062presentation-settings =
3063 element presentation:settings {
3064 presentation-settings-attlist, presentation-show*
3065 }?
3066presentation-settings-attlist =
3067 attribute presentation:start-page { \string }?
3068 & attribute presentation:show { \string }?
3069 & attribute presentation:full-screen { boolean }?
3070 & attribute presentation:endless { boolean }?
3071 & attribute presentation:pause { duration }?
3072 & attribute presentation:show-logo { boolean }?
3073 & attribute presentation:force-manual { boolean }?
3074 & attribute presentation:mouse-visible { boolean }?
3075 & attribute presentation:mouse-as-pen { boolean }?
3076 & attribute presentation:start-with-navigator { boolean }?
3077 & attribute presentation:animations { "enabled" | "disabled" }?
3078 & attribute presentation:transition-on-click {
3079 "enabled" | "disabled"
3080 }?
3081 & attribute presentation:stay-on-top { boolean }?
3082 & attribute presentation:show-end-of-presentation-slide { boolean }?
3083presentation-show =
3084 element presentation:show { presentation-show-attlist, empty }
3085presentation-show-attlist =
3086 attribute presentation:name { \string }
3087 & attribute presentation:pages { \string }
3088chart-chart =
3089 element chart:chart {
3090 chart-chart-attlist,
3091 chart-title?,
3092 chart-subtitle?,
3093 chart-footer?,
3094 chart-legend?,
3095 chart-plot-area,
3096 table-table?
3097 }
3098chart-chart-attlist =
3099 attribute chart:class { namespacedToken }
3100 & common-draw-size-attlist
3101 & attribute chart:column-mapping { \string }?
3102 & attribute chart:row-mapping { \string }?
3103 & attribute chart:style-name { styleNameRef }?
3104 & (attribute xlink:type { "simple" },
3105 attribute xlink:href { anyIRI })?
3106 & xml-id?
3107chart-title = element chart:title { chart-title-attlist, text-p? }
3108chart-title-attlist =
3109 attribute table:cell-range { cellRangeAddressList }?
3110 & common-draw-position-attlist
3111 & attribute chart:style-name { styleNameRef }?
3112chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? }
3113chart-footer = element chart:footer { chart-title-attlist, text-p? }
3114chart-legend = element chart:legend { chart-legend-attlist, text-p? }
3115chart-legend-attlist =
3116 ((attribute chart:legend-position {
3117 "start" | "end" | "top" | "bottom"
3118 },
3119 attribute chart:legend-align { "start" | "center" | "end" }?)
3120 | attribute chart:legend-position {
3121 "top-start" | "bottom-start" | "top-end" | "bottom-end"
3122 }
3123 | empty)
3124 & common-draw-position-attlist
3125 & (attribute style:legend-expansion { "wide" | "high" | "balanced" }
3126 | (attribute style:legend-expansion { "custom" },
3127 attribute style:legend-expansion-aspect-ratio { double })
3128 | empty)
3129 & attribute chart:style-name { styleNameRef }?
3130chart-plot-area =
3131 element chart:plot-area {
3132 chart-plot-area-attlist,
3133 dr3d-light*,
3134 chart-axis*,
3135 chart-series*,
3136 chart-stock-gain-marker?,
3137 chart-stock-loss-marker?,
3138 chart-stock-range-line?,
3139 chart-wall?,
3140 chart-floor?
3141 }
3142chart-plot-area-attlist =
3143 common-draw-position-attlist
3144 & common-draw-size-attlist
3145 & attribute chart:style-name { styleNameRef }?
3146 & attribute table:cell-range-address { cellRangeAddressList }?
3147 & attribute chart:data-source-has-labels {
3148 "none" | "row" | "column" | "both"
3149 }?
3150 & dr3d-scene-attlist
3151 & common-dr3d-transform-attlist
3152 & xml-id?
3153chart-wall = element chart:wall { chart-wall-attlist, empty }
3154chart-wall-attlist =
3155 attribute svg:width { length }?
3156 & attribute chart:style-name { styleNameRef }?
3157chart-floor = element chart:floor { chart-floor-attlist, empty }
3158chart-floor-attlist =
3159 attribute svg:width { length }?
3160 & attribute chart:style-name { styleNameRef }?
3161chart-axis =
3162 element chart:axis {
3163 chart-axis-attlist, chart-title?, chart-categories?, chart-grid*
3164 }
3165chart-axis-attlist =
3166 attribute chart:dimension { chart-dimension }
3167 & attribute chart:name { \string }?
3168 & attribute chart:style-name { styleNameRef }?
3169chart-dimension = "x" | "y" | "z"
3170chart-categories =
3171 element chart:categories {
3172 attribute table:cell-range-address { cellRangeAddressList }?
3173 }
3174chart-grid = element chart:grid { chart-grid-attlist }
3175chart-grid-attlist =
3176 attribute chart:class { "major" | "minor" }?
3177 & attribute chart:style-name { styleNameRef }?
3178chart-series =
3179 element chart:series {
3180 chart-series-attlist,
3181 chart-domain*,
3182 chart-mean-value?,
3183 chart-regression-curve*,
3184 chart-error-indicator*,
3185 chart-data-point*,
3186 chart-data-label?
3187 }
3188chart-series-attlist =
3189 attribute chart:values-cell-range-address { cellRangeAddressList }?
3190 & attribute chart:label-cell-address { cellRangeAddressList }?
3191 & attribute chart:class { namespacedToken }?
3192 & attribute chart:attached-axis { \string }?
3193 & attribute chart:style-name { styleNameRef }?
3194 & xml-id?
3195chart-domain =
3196 element chart:domain {
3197 attribute table:cell-range-address { cellRangeAddressList }?
3198 }
3199chart-data-point =
3200 element chart:data-point {
3201 chart-data-point-attlist, chart-data-label?
3202 }
3203chart-data-point-attlist =
3204 attribute chart:repeated { positiveInteger }?
3205 & attribute chart:style-name { styleNameRef }?
3206 & xml-id?
3207chart-data-label =
3208 element chart:data-label { chart-data-label-attlist, text-p? }
3209chart-data-label-attlist =
3210 common-draw-position-attlist
3211 & attribute chart:style-name { styleNameRef }?
3212chart-mean-value =
3213 element chart:mean-value { chart-mean-value-attlist, empty }
3214chart-mean-value-attlist = attribute chart:style-name { styleNameRef }?
3215chart-error-indicator =
3216 element chart:error-indicator { chart-error-indicator-attlist, empty }
3217chart-error-indicator-attlist =
3218 attribute chart:style-name { styleNameRef }?
3219 & attribute chart:dimension { chart-dimension }
3220chart-regression-curve =
3221 element chart:regression-curve {
3222 chart-regression-curve-attlist, chart-equation?
3223 }
3224chart-regression-curve-attlist =
3225 attribute chart:style-name { styleNameRef }?
3226chart-equation =
3227 element chart:equation { chart-equation-attlist, text-p? }
3228chart-equation-attlist =
3229 attribute chart:automatic-content { boolean }?
3230 & attribute chart:display-r-square { boolean }?
3231 & attribute chart:display-equation { boolean }?
3232 & common-draw-position-attlist
3233 & attribute chart:style-name { styleNameRef }?
3234chart-stock-gain-marker =
3235 element chart:stock-gain-marker { common-stock-marker-attlist }
3236chart-stock-loss-marker =
3237 element chart:stock-loss-marker { common-stock-marker-attlist }
3238chart-stock-range-line =
3239 element chart:stock-range-line { common-stock-marker-attlist }
3240common-stock-marker-attlist =
3241 attribute chart:style-name { styleNameRef }?
3242office-database =
3243 element office:database {
3244 db-data-source,
3245 db-forms?,
3246 db-reports?,
3247 db-queries?,
3248 db-table-presentations?,
3249 db-schema-definition?
3250 }
3251db-data-source =
3252 element db:data-source {
3253 db-data-source-attlist,
3254 db-connection-data,
3255 db-driver-settings?,
3256 db-application-connection-settings?
3257 }
3258db-data-source-attlist = empty
3259db-connection-data =
3260 element db:connection-data {
3261 db-connection-data-attlist,
3262 (db-database-description | db-connection-resource),
3263 db-login?
3264 }
3265db-connection-data-attlist = empty
3266db-database-description =
3267 element db:database-description {
3268 db-database-description-attlist,
3269 (db-file-based-database | db-server-database)
3270 }
3271db-database-description-attlist = empty
3272db-file-based-database =
3273 element db:file-based-database { db-file-based-database-attlist }
3274db-file-based-database-attlist =
3275 attribute xlink:type { "simple" }
3276 & attribute xlink:href { anyIRI }
3277 & attribute db:media-type { \string }
3278 & attribute db:extension { \string }?
3279db-server-database =
3280 element db:server-database { db-server-database-attlist, empty }
3281db-server-database-attlist =
3282 attribute db:type { namespacedToken }
3283 & (db-host-and-port | db-local-socket-name)
3284 & attribute db:database-name { \string }?
3285db-host-and-port =
3286 attribute db:hostname { \string },
3287 attribute db:port { positiveInteger }?
3288db-local-socket-name = attribute db:local-socket { \string }?
3289db-connection-resource =
3290 element db:connection-resource {
3291 db-connection-resource-attlist, empty
3292 }
3293db-connection-resource-attlist =
3294 attribute xlink:type { "simple" },
3295 attribute xlink:href { anyIRI },
3296 attribute xlink:show { "none" }?,
3297 attribute xlink:actuate { "onRequest" }?
3298db-login = element db:login { db-login-attlist, empty }
3299db-login-attlist =
3300 (attribute db:user-name { \string }
3301 | attribute db:use-system-user { boolean })?
3302 & attribute db:is-password-required { boolean }?
3303 & attribute db:login-timeout { positiveInteger }?
3304db-driver-settings =
3305 element db:driver-settings {
3306 db-driver-settings-attlist,
3307 db-auto-increment?,
3308 db-delimiter?,
3309 db-character-set?,
3310 db-table-settings?
3311 }
3312db-driver-settings-attlist =
3313 db-show-deleted
3314 & attribute db:system-driver-settings { \string }?
3315 & attribute db:base-dn { \string }?
3316 & db-is-first-row-header-line
3317 & attribute db:parameter-name-substitution { boolean }?
3318db-show-deleted = attribute db:show-deleted { boolean }?
3319db-is-first-row-header-line =
3320 attribute db:is-first-row-header-line { boolean }?
3321db-auto-increment =
3322 element db:auto-increment { db-auto-increment-attlist, empty }
3323db-auto-increment-attlist =
3324 attribute db:additional-column-statement { \string }?
3325 & attribute db:row-retrieving-statement { \string }?
3326db-delimiter = element db:delimiter { db-delimiter-attlist, empty }
3327db-delimiter-attlist =
3328 attribute db:field { \string }?
3329 & attribute db:string { \string }?
3330 & attribute db:decimal { \string }?
3331 & attribute db:thousand { \string }?
3332db-character-set =
3333 element db:character-set { db-character-set-attlist, empty }
3334db-character-set-attlist = attribute db:encoding { textEncoding }?
3335db-table-settings = element db:table-settings { db-table-setting* }
3336db-table-setting =
3337 element db:table-setting {
3338 db-table-setting-attlist, db-delimiter?, db-character-set?, empty
3339 }
3340db-table-setting-attlist = db-is-first-row-header-line, db-show-deleted
3341db-application-connection-settings =
3342 element db:application-connection-settings {
3343 db-application-connection-settings-attlist,
3344 db-table-filter?,
3345 db-table-type-filter?,
3346 db-data-source-settings?
3347 }
3348db-application-connection-settings-attlist =
3349 attribute db:is-table-name-length-limited { boolean }?
3350 & attribute db:enable-sql92-check { boolean }?
3351 & attribute db:append-table-alias-name { boolean }?
3352 & attribute db:ignore-driver-privileges { boolean }?
3353 & attribute db:boolean-comparison-mode {
3354 "equal-integer"
3355 | "is-boolean"
3356 | "equal-boolean"
3357 | "equal-use-only-zero"
3358 }?
3359 & attribute db:use-catalog { boolean }?
3360 & attribute db:max-row-count { integer }?
3361 & attribute db:suppress-version-columns { boolean }?
3362db-table-filter =
3363 element db:table-filter {
3364 db-table-filter-attlist,
3365 db-table-include-filter?,
3366 db-table-exclude-filter?
3367 }
3368db-table-filter-attlist = empty
3369db-table-include-filter =
3370 element db:table-include-filter {
3371 db-table-include-filter-attlist, db-table-filter-pattern+
3372 }
3373db-table-include-filter-attlist = empty
3374db-table-exclude-filter =
3375 element db:table-exclude-filter {
3376 db-table-exclude-filter-attlist, db-table-filter-pattern+
3377 }
3378db-table-exclude-filter-attlist = empty
3379db-table-filter-pattern =
3380 element db:table-filter-pattern {
3381 db-table-filter-pattern-attlist, \string
3382 }
3383db-table-filter-pattern-attlist = empty
3384db-table-type-filter =
3385 element db:table-type-filter {
3386 db-table-type-filter-attlist, db-table-type*
3387 }
3388db-table-type-filter-attlist = empty
3389db-table-type = element db:table-type { db-table-type-attlist, \string }
3390db-table-type-attlist = empty
3391db-data-source-settings =
3392 element db:data-source-settings {
3393 db-data-source-settings-attlist, db-data-source-setting+
3394 }
3395db-data-source-settings-attlist = empty
3396db-data-source-setting =
3397 element db:data-source-setting {
3398 db-data-source-setting-attlist, db-data-source-setting-value+
3399 }
3400db-data-source-setting-attlist =
3401 attribute db:data-source-setting-is-list { boolean }?
3402 & attribute db:data-source-setting-name { \string }
3403 & attribute db:data-source-setting-type {
3404 db-data-source-setting-types
3405 }
3406db-data-source-setting-types =
3407 "boolean" | "short" | "int" | "long" | "double" | "string"
3408db-data-source-setting-value =
3409 element db:data-source-setting-value {
3410 db-data-source-setting-value-attlist, \string
3411 }
3412db-data-source-setting-value-attlist = empty
3413db-forms =
3414 element db:forms {
3415 db-forms-attlist, (db-component | db-component-collection)*
3416 }
3417db-forms-attlist = empty
3418db-reports =
3419 element db:reports {
3420 db-reports-attlist, (db-component | db-component-collection)*
3421 }
3422db-reports-attlist = empty
3423db-component-collection =
3424 element db:component-collection {
3425 db-component-collection-attlist,
3426 common-db-object-name,
3427 common-db-object-title,
3428 common-db-object-description,
3429 (db-component | db-component-collection)*
3430 }
3431db-component-collection-attlist = empty
3432db-component =
3433 element db:component {
3434 db-component-attlist,
3435 common-db-object-name,
3436 common-db-object-title,
3437 common-db-object-description,
3438 (office-document | math-math)?
3439 }
3440db-component-attlist =
3441 (attribute xlink:type { "simple" },
3442 attribute xlink:href { anyIRI },
3443 attribute xlink:show { "none" }?,
3444 attribute xlink:actuate { "onRequest" }?)?
3445 & attribute db:as-template { boolean }?
3446db-queries =
3447 element db:queries {
3448 db-queries-attlist, (db-query | db-query-collection)*
3449 }
3450db-queries-attlist = empty
3451db-query-collection =
3452 element db:query-collection {
3453 db-query-collection-attlist,
3454 common-db-object-name,
3455 common-db-object-title,
3456 common-db-object-description,
3457 (db-query | db-query-collection)*
3458 }
3459db-query-collection-attlist = empty
3460db-query =
3461 element db:query {
3462 db-query-attlist,
3463 common-db-object-name,
3464 common-db-object-title,
3465 common-db-object-description,
3466 common-db-table-style-name,
3467 db-order-statement?,
3468 db-filter-statement?,
3469 db-columns?,
3470 db-update-table?
3471 }
3472db-query-attlist =
3473 attribute db:command { \string }
3474 & attribute db:escape-processing { boolean }?
3475db-order-statement =
3476 element db:order-statement { db-command, db-apply-command, empty }
3477db-filter-statement =
3478 element db:filter-statement { db-command, db-apply-command, empty }
3479db-update-table =
3480 element db:update-table { common-db-table-name-attlist }
3481db-table-presentations =
3482 element db:table-representations {
3483 db-table-presentations-attlist, db-table-presentation*
3484 }
3485db-table-presentations-attlist = empty
3486db-table-presentation =
3487 element db:table-representation {
3488 db-table-presentation-attlist,
3489 common-db-table-name-attlist,
3490 common-db-object-title,
3491 common-db-object-description,
3492 common-db-table-style-name,
3493 db-order-statement?,
3494 db-filter-statement?,
3495 db-columns?
3496 }
3497db-table-presentation-attlist = empty
3498db-columns = element db:columns { db-columns-attlist, db-column+ }
3499db-columns-attlist = empty
3500db-column =
3501 element db:column {
3502 db-column-attlist,
3503 common-db-object-name,
3504 common-db-object-title,
3505 common-db-object-description,
3506 common-db-default-value
3507 }
3508db-column-attlist =
3509 attribute db:visible { boolean }?
3510 & attribute db:style-name { styleNameRef }?
3511 & attribute db:default-cell-style-name { styleNameRef }?
3512db-command = attribute db:command { \string }
3513db-apply-command = attribute db:apply-command { boolean }?
3514common-db-table-name-attlist =
3515 attribute db:name { \string }
3516 & attribute db:catalog-name { \string }?
3517 & attribute db:schema-name { \string }?
3518common-db-object-name = attribute db:name { \string }
3519common-db-object-title = attribute db:title { \string }?
3520common-db-object-description = attribute db:description { \string }?
3521common-db-table-style-name =
3522 attribute db:style-name { styleNameRef }?
3523 & attribute db:default-row-style-name { styleNameRef }?
3524common-db-default-value = common-value-and-type-attlist?
3525db-schema-definition =
3526 element db:schema-definition {
3527 db-schema-definition-attlist, db-table-definitions
3528 }
3529db-schema-definition-attlist = empty
3530db-table-definitions =
3531 element db:table-definitions {
3532 db-table-definitions-attlist, db-table-definition*
3533 }
3534db-table-definitions-attlist = empty
3535db-table-definition =
3536 element db:table-definition {
3537 common-db-table-name-attlist,
3538 db-table-definition-attlist,
3539 db-column-definitions,
3540 db-keys?,
3541 db-indices?
3542 }
3543db-table-definition-attlist = attribute db:type { \string }?
3544db-column-definitions =
3545 element db:column-definitions {
3546 db-column-definitions-attlist, db-column-definition+
3547 }
3548db-column-definitions-attlist = empty
3549db-column-definition =
3550 element db:column-definition {
3551 db-column-definition-attlist, common-db-default-value
3552 }
3553db-column-definition-attlist =
3554 attribute db:name { \string }
3555 & attribute db:data-type { db-data-types }?
3556 & attribute db:type-name { \string }?
3557 & attribute db:precision { positiveInteger }?
3558 & attribute db:scale { positiveInteger }?
3559 & attribute db:is-nullable { "no-nulls" | "nullable" }?
3560 & attribute db:is-empty-allowed { boolean }?
3561 & attribute db:is-autoincrement { boolean }?
3562db-data-types =
3563 "bit"
3564 | "boolean"
3565 | "tinyint"
3566 | "smallint"
3567 | "integer"
3568 | "bigint"
3569 | "float"
3570 | "real"
3571 | "double"
3572 | "numeric"
3573 | "decimal"
3574 | "char"
3575 | "varchar"
3576 | "longvarchar"
3577 | "date"
3578 | "time"
3579 | "timestmp"
3580 | "binary"
3581 | "varbinary"
3582 | "longvarbinary"
3583 | "sqlnull"
3584 | "other"
3585 | "object"
3586 | "distinct"
3587 | "struct"
3588 | "array"
3589 | "blob"
3590 | "clob"
3591 | "ref"
3592db-keys = element db:keys { db-keys-attlist, db-key+ }
3593db-keys-attlist = empty
3594db-key = element db:key { db-key-attlist, db-key-columns+ }
3595db-key-attlist =
3596 attribute db:name { \string }?
3597 & attribute db:type { "primary" | "unique" | "foreign" }
3598 & attribute db:referenced-table-name { \string }?
3599 & attribute db:update-rule {
3600 "cascade" | "restrict" | "set-null" | "no-action" | "set-default"
3601 }?
3602 & attribute db:delete-rule {
3603 "cascade" | "restrict" | "set-null" | "no-action" | "set-default"
3604 }?
3605db-key-columns =
3606 element db:key-columns { db-key-columns-attlist, db-key-column+ }
3607db-key-columns-attlist = empty
3608db-key-column = element db:key-column { db-key-column-attlist, empty }
3609db-key-column-attlist =
3610 attribute db:name { \string }?
3611 & attribute db:related-column-name { \string }?
3612db-indices = element db:indices { db-indices-attlist, db-index+ }
3613db-indices-attlist = empty
3614db-index = element db:index { db-index-attlist, db-index-columns+ }
3615db-index-attlist =
3616 attribute db:name { \string }
3617 & attribute db:catalog-name { \string }?
3618 & attribute db:is-unique { boolean }?
3619 & attribute db:is-clustered { boolean }?
3620db-index-columns = element db:index-columns { db-index-column+ }
3621db-index-column =
3622 element db:index-column { db-index-column-attlist, empty }
3623db-index-column-attlist =
3624 attribute db:name { \string }
3625 & attribute db:is-ascending { boolean }?
3626office-forms =
3627 element office:forms {
3628 office-forms-attlist, (form-form | xforms-model)*
3629 }?
3630office-forms-attlist =
3631 attribute form:automatic-focus { boolean }?
3632 & attribute form:apply-design-mode { boolean }?
3633form-form =
3634 element form:form {
3635 common-form-control-attlist,
3636 form-form-attlist,
3637 form-properties?,
3638 office-event-listeners?,
3639 (controls | form-form)*,
3640 form-connection-resource?
3641 }
3642form-form-attlist =
3643 (attribute xlink:type { "simple" },
3644 attribute xlink:href { anyIRI },
3645 attribute xlink:actuate { "onRequest" }?)?
3646 & attribute office:target-frame { targetFrameName }?
3647 & attribute form:method { "get" | "post" | \string }?
3648 & attribute form:enctype { \string }?
3649 & attribute form:allow-deletes { boolean }?
3650 & attribute form:allow-inserts { boolean }?
3651 & attribute form:allow-updates { boolean }?
3652 & attribute form:apply-filter { boolean }?
3653 & attribute form:command-type { "table" | "query" | "command" }?
3654 & attribute form:command { \string }?
3655 & attribute form:datasource { anyIRI | \string }?
3656 & attribute form:master-fields { \string }?
3657 & attribute form:detail-fields { \string }?
3658 & attribute form:escape-processing { boolean }?
3659 & attribute form:filter { \string }?
3660 & attribute form:ignore-result { boolean }?
3661 & attribute form:navigation-mode { navigation }?
3662 & attribute form:order { \string }?
3663 & attribute form:tab-cycle { tab-cycles }?
3664navigation = "none" | "current" | "parent"
3665tab-cycles = "records" | "current" | "page"
3666form-connection-resource =
3667 element form:connection-resource {
3668 attribute xlink:href { anyIRI },
3669 empty
3670 }
3671xforms-model = element xforms:model { anyAttListOrElements }
3672column-controls =
3673 element form:text { form-text-attlist, common-form-control-content }
3674 | element form:textarea {
3675 form-textarea-attlist, common-form-control-content, text-p*
3676 }
3677 | element form:formatted-text {
3678 form-formatted-text-attlist, common-form-control-content
3679 }
3680 | element form:number {
3681 form-number-attlist,
3682 common-numeric-control-attlist,
3683 common-form-control-content,
3684 common-linked-cell,
3685 common-spin-button,
3686 common-repeat,
3687 common-delay-for-repeat
3688 }
3689 | element form:date {
3690 form-date-attlist,
3691 common-numeric-control-attlist,
3692 common-form-control-content,
3693 common-linked-cell,
3694 common-spin-button,
3695 common-repeat,
3696 common-delay-for-repeat
3697 }
3698 | element form:time {
3699 form-time-attlist,
3700 common-numeric-control-attlist,
3701 common-form-control-content,
3702 common-linked-cell,
3703 common-spin-button,
3704 common-repeat,
3705 common-delay-for-repeat
3706 }
3707 | element form:combobox {
3708 form-combobox-attlist, common-form-control-content, form-item*
3709 }
3710 | element form:listbox {
3711 form-listbox-attlist, common-form-control-content, form-option*
3712 }
3713 | element form:checkbox {
3714 form-checkbox-attlist, common-form-control-content
3715 }
3716controls =
3717 column-controls
3718 | element form:password {
3719 form-password-attlist, common-form-control-content
3720 }
3721 | element form:file { form-file-attlist, common-form-control-content }
3722 | element form:fixed-text {
3723 form-fixed-text-attlist, common-form-control-content
3724 }
3725 | element form:button {
3726 form-button-attlist, common-form-control-content
3727 }
3728 | element form:image {
3729 form-image-attlist, common-form-control-content
3730 }
3731 | element form:radio {
3732 form-radio-attlist, common-form-control-content
3733 }
3734 | element form:frame {
3735 form-frame-attlist, common-form-control-content
3736 }
3737 | element form:image-frame {
3738 form-image-frame-attlist, common-form-control-content
3739 }
3740 | element form:hidden {
3741 form-hidden-attlist, common-form-control-content
3742 }
3743 | element form:grid {
3744 form-grid-attlist, common-form-control-content, form-column*
3745 }
3746 | element form:value-range {
3747 form-value-range-attlist, common-form-control-content
3748 }
3749 | element form:generic-control {
3750 form-generic-control-attlist, common-form-control-content
3751 }
3752form-text-attlist =
3753 form-control-attlist,
3754 common-current-value-attlist,
3755 common-disabled-attlist,
3756 common-maxlength-attlist,
3757 common-printable-attlist,
3758 common-readonly-attlist,
3759 common-tab-attlist,
3760 common-title-attlist,
3761 common-value-attlist,
3762 common-convert-empty-attlist,
3763 common-data-field-attlist,
3764 common-linked-cell
3765form-control-attlist =
3766 common-form-control-attlist,
3767 common-control-id-attlist,
3768 xforms-bind-attlist
3769common-form-control-content = form-properties?, office-event-listeners?
3770form-textarea-attlist =
3771 form-control-attlist,
3772 common-current-value-attlist,
3773 common-disabled-attlist,
3774 common-maxlength-attlist,
3775 common-printable-attlist,
3776 common-readonly-attlist,
3777 common-tab-attlist,
3778 common-title-attlist,
3779 common-value-attlist,
3780 common-convert-empty-attlist,
3781 common-data-field-attlist,
3782 common-linked-cell
3783form-password-attlist =
3784 form-control-attlist
3785 & common-disabled-attlist
3786 & common-maxlength-attlist
3787 & common-printable-attlist
3788 & common-tab-attlist
3789 & common-title-attlist
3790 & common-value-attlist
3791 & common-convert-empty-attlist
3792 & common-linked-cell
3793 & attribute form:echo-char { character }?
3794form-file-attlist =
3795 form-control-attlist,
3796 common-current-value-attlist,
3797 common-disabled-attlist,
3798 common-maxlength-attlist,
3799 common-printable-attlist,
3800 common-readonly-attlist,
3801 common-tab-attlist,
3802 common-title-attlist,
3803 common-value-attlist,
3804 common-linked-cell
3805form-formatted-text-attlist =
3806 form-control-attlist
3807 & common-current-value-attlist
3808 & common-disabled-attlist
3809 & common-maxlength-attlist
3810 & common-printable-attlist
3811 & common-readonly-attlist
3812 & common-tab-attlist
3813 & common-title-attlist
3814 & common-value-attlist
3815 & common-convert-empty-attlist
3816 & common-data-field-attlist
3817 & common-linked-cell
3818 & common-spin-button
3819 & common-repeat
3820 & common-delay-for-repeat
3821 & attribute form:max-value { \string }?
3822 & attribute form:min-value { \string }?
3823 & attribute form:validation { boolean }?
3824common-numeric-control-attlist =
3825 form-control-attlist,
3826 common-disabled-attlist,
3827 common-maxlength-attlist,
3828 common-printable-attlist,
3829 common-readonly-attlist,
3830 common-tab-attlist,
3831 common-title-attlist,
3832 common-convert-empty-attlist,
3833 common-data-field-attlist
3834form-number-attlist =
3835 attribute form:value { double }?
3836 & attribute form:current-value { double }?
3837 & attribute form:min-value { double }?
3838 & attribute form:max-value { double }?
3839form-date-attlist =
3840 attribute form:value { date }?
3841 & attribute form:current-value { date }?
3842 & attribute form:min-value { date }?
3843 & attribute form:max-value { date }?
3844form-time-attlist =
3845 attribute form:value { time }?
3846 & attribute form:current-value { time }?
3847 & attribute form:min-value { time }?
3848 & attribute form:max-value { time }?
3849form-fixed-text-attlist =
3850 form-control-attlist
3851 & for
3852 & common-disabled-attlist
3853 & label
3854 & common-printable-attlist
3855 & common-title-attlist
3856 & attribute form:multi-line { boolean }?
3857form-combobox-attlist =
3858 form-control-attlist
3859 & common-current-value-attlist
3860 & common-disabled-attlist
3861 & dropdown
3862 & common-maxlength-attlist
3863 & common-printable-attlist
3864 & common-readonly-attlist
3865 & size
3866 & common-tab-attlist
3867 & common-title-attlist
3868 & common-value-attlist
3869 & common-convert-empty-attlist
3870 & common-data-field-attlist
3871 & list-source
3872 & list-source-type
3873 & common-linked-cell
3874 & common-source-cell-range
3875 & attribute form:auto-complete { boolean }?
3876form-item = element form:item { form-item-attlist, text }
3877form-item-attlist = label
3878form-listbox-attlist =
3879 form-control-attlist
3880 & common-disabled-attlist
3881 & dropdown
3882 & common-printable-attlist
3883 & size
3884 & common-tab-attlist
3885 & common-title-attlist
3886 & bound-column
3887 & common-data-field-attlist
3888 & list-source
3889 & list-source-type
3890 & common-linked-cell
3891 & list-linkage-type
3892 & common-source-cell-range
3893 & attribute form:multiple { boolean }?
3894 & attribute form:xforms-list-source { \string }?
3895list-linkage-type =
3896 attribute form:list-linkage-type {
3897 "selection" | "selection-indices"
3898 }?
3899form-option = element form:option { form-option-attlist, text }
3900form-option-attlist =
3901 current-selected, selected, label, common-value-attlist
3902form-button-attlist =
3903 form-control-attlist
3904 & button-type
3905 & common-disabled-attlist
3906 & label
3907 & image-data
3908 & common-printable-attlist
3909 & common-tab-attlist
3910 & target-frame
3911 & target-location
3912 & common-title-attlist
3913 & common-value-attlist
3914 & common-form-relative-image-position-attlist
3915 & common-repeat
3916 & common-delay-for-repeat
3917 & attribute form:default-button { boolean }?
3918 & attribute form:toggle { boolean }?
3919 & attribute form:focus-on-click { boolean }?
3920 & attribute form:xforms-submission { \string }?
3921form-image-attlist =
3922 form-control-attlist,
3923 button-type,
3924 common-disabled-attlist,
3925 image-data,
3926 common-printable-attlist,
3927 common-tab-attlist,
3928 target-frame,
3929 target-location,
3930 common-title-attlist,
3931 common-value-attlist
3932form-checkbox-attlist =
3933 form-control-attlist
3934 & common-disabled-attlist
3935 & label
3936 & common-printable-attlist
3937 & common-tab-attlist
3938 & common-title-attlist
3939 & common-value-attlist
3940 & common-data-field-attlist
3941 & common-form-visual-effect-attlist
3942 & common-form-relative-image-position-attlist
3943 & common-linked-cell
3944 & attribute form:current-state { states }?
3945 & attribute form:is-tristate { boolean }?
3946 & attribute form:state { states }?
3947states = "unchecked" | "checked" | "unknown"
3948form-radio-attlist =
3949 form-control-attlist,
3950 current-selected,
3951 common-disabled-attlist,
3952 label,
3953 common-printable-attlist,
3954 selected,
3955 common-tab-attlist,
3956 common-title-attlist,
3957 common-value-attlist,
3958 common-data-field-attlist,
3959 common-form-visual-effect-attlist,
3960 common-form-relative-image-position-attlist,
3961 common-linked-cell
3962form-frame-attlist =
3963 form-control-attlist,
3964 common-disabled-attlist,
3965 for,
3966 label,
3967 common-printable-attlist,
3968 common-title-attlist
3969form-image-frame-attlist =
3970 form-control-attlist,
3971 common-disabled-attlist,
3972 image-data,
3973 common-printable-attlist,
3974 common-readonly-attlist,
3975 common-title-attlist,
3976 common-data-field-attlist
3977form-hidden-attlist = form-control-attlist, common-value-attlist
3978form-grid-attlist =
3979 form-control-attlist,
3980 common-disabled-attlist,
3981 common-printable-attlist,
3982 common-tab-attlist,
3983 common-title-attlist
3984form-column =
3985 element form:column { form-column-attlist, column-controls+ }
3986form-column-attlist =
3987 common-form-control-attlist, label, text-style-name
3988text-style-name = attribute form:text-style-name { styleNameRef }?
3989form-value-range-attlist =
3990 form-control-attlist
3991 & common-disabled-attlist
3992 & common-printable-attlist
3993 & common-tab-attlist
3994 & common-title-attlist
3995 & common-value-attlist
3996 & common-linked-cell
3997 & common-repeat
3998 & common-delay-for-repeat
3999 & attribute form:max-value { integer }?
4000 & attribute form:min-value { integer }?
4001 & attribute form:step-size { positiveInteger }?
4002 & attribute form:page-step-size { positiveInteger }?
4003 & attribute form:orientation { "horizontal" | "vertical" }?
4004form-generic-control-attlist = form-control-attlist
4005common-form-control-attlist =
4006 attribute form:name { \string }?
4007 & attribute form:control-implementation { namespacedToken }?
4008xforms-bind-attlist = attribute xforms:bind { \string }?
4009types = "submit" | "reset" | "push" | "url"
4010button-type = attribute form:button-type { types }?
4011common-control-id-attlist =
4012 xml-id,
4013 attribute form:id { NCName }?
4014current-selected = attribute form:current-selected { boolean }?
4015common-value-attlist = attribute form:value { \string }?
4016common-current-value-attlist = attribute form:current-value { \string }?
4017common-disabled-attlist = attribute form:disabled { boolean }?
4018dropdown = attribute form:dropdown { boolean }?
4019for = attribute form:for { \string }?
4020image-data = attribute form:image-data { anyIRI }?
4021label = attribute form:label { \string }?
4022common-maxlength-attlist =
4023 attribute form:max-length { nonNegativeInteger }?
4024common-printable-attlist = attribute form:printable { boolean }?
4025common-readonly-attlist = attribute form:readonly { boolean }?
4026selected = attribute form:selected { boolean }?
4027size = attribute form:size { nonNegativeInteger }?
4028common-tab-attlist =
4029 attribute form:tab-index { nonNegativeInteger }?
4030 & attribute form:tab-stop { boolean }?
4031target-frame = attribute office:target-frame { targetFrameName }?
4032target-location = attribute xlink:href { anyIRI }?
4033common-title-attlist = attribute form:title { \string }?
4034common-form-visual-effect-attlist =
4035 attribute form:visual-effect { "flat" | "3d" }?
4036common-form-relative-image-position-attlist =
4037 attribute form:image-position { "center" }?
4038 | (attribute form:image-position {
4039 "start" | "end" | "top" | "bottom"
4040 },
4041 attribute form:image-align { "start" | "center" | "end" }?)
4042bound-column = attribute form:bound-column { \string }?
4043common-convert-empty-attlist =
4044 attribute form:convert-empty-to-null { boolean }?
4045common-data-field-attlist = attribute form:data-field { \string }?
4046list-source = attribute form:list-source { \string }?
4047list-source-type =
4048 attribute form:list-source-type {
4049 "table"
4050 | "query"
4051 | "sql"
4052 | "sql-pass-through"
4053 | "value-list"
4054 | "table-fields"
4055 }?
4056common-linked-cell =
4057 attribute form:linked-cell { cellAddress | \string }?
4058common-source-cell-range =
4059 attribute form:source-cell-range { cellRangeAddress | \string }?
4060common-spin-button = attribute form:spin-button { boolean }?
4061common-repeat = attribute form:repeat { boolean }?
4062common-delay-for-repeat = attribute form:delay-for-repeat { duration }?
4063form-properties = element form:properties { form-property+ }
4064form-property =
4065 element form:property {
4066 form-property-name, form-property-value-and-type-attlist
4067 }
4068 | element form:list-property {
4069 form-property-name, form-property-type-and-value-list
4070 }
4071form-property-name = attribute form:property-name { \string }
4072form-property-value-and-type-attlist =
4073 common-value-and-type-attlist
4074 | attribute office:value-type { "void" }
4075form-property-type-and-value-list =
4076 (attribute office:value-type { "float" },
4077 element form:list-value {
4078 attribute office:value { double }
4079 }*)
4080 | (attribute office:value-type { "percentage" },
4081 element form:list-value {
4082 attribute office:value { double }
4083 }*)
4084 | (attribute office:value-type { "currency" },
4085 element form:list-value {
4086 attribute office:value { double },
4087 attribute office:currency { \string }?
4088 }*)
4089 | (attribute office:value-type { "date" },
4090 element form:list-value {
4091 attribute office:date-value { dateOrDateTime }
4092 }*)
4093 | (attribute office:value-type { "time" },
4094 element form:list-value {
4095 attribute office:time-value { duration }
4096 }*)
4097 | (attribute office:value-type { "boolean" },
4098 element form:list-value {
4099 attribute office:boolean-value { boolean }
4100 }*)
4101 | (attribute office:value-type { "string" },
4102 element form:list-value {
4103 attribute office:string-value { \string }
4104 }*)
4105 | attribute office:value-type { "void" }
4106office-annotation =
4107 element office:annotation {
4108 office-annotation-attlist,
4109 draw-caption-attlist,
4110 common-draw-position-attlist,
4111 common-draw-size-attlist,
4112 common-draw-shape-with-text-and-styles-attlist,
4113 dc-creator?,
4114 dc-date?,
4115 meta-date-string?,
4116 (text-p | text-list)*
4117 }
4118office-annotation-end =
4119 element office:annotation-end { office-annotation-end-attlist }
4120office-annotation-attlist =
4121 attribute office:display { boolean }?
4122 & common-office-annotation-name-attlist?
4123office-annotation-end-attlist = common-office-annotation-name-attlist
4124common-office-annotation-name-attlist =
4125 attribute office:name { \string }
4126meta-date-string = element meta:date-string { \string }
4127common-num-format-prefix-suffix-attlist =
4128 attribute style:num-prefix { \string }?,
4129 attribute style:num-suffix { \string }?
4130common-num-format-attlist =
4131 attribute style:num-format { "1" | "i" | "I" | \string | empty }
4132 | (attribute style:num-format { "a" | "A" },
4133 style-num-letter-sync-attlist)
4134 | empty
4135style-num-letter-sync-attlist =
4136 attribute style:num-letter-sync { boolean }?
4137office-change-info =
4138 element office:change-info { dc-creator, dc-date, text-p* }
4139office-event-listeners =
4140 element office:event-listeners {
4141 (script-event-listener | presentation-event-listener)*
4142 }
4143script-event-listener =
4144 element script:event-listener { script-event-listener-attlist, empty }
4145script-event-listener-attlist =
4146 attribute script:event-name { \string }
4147 & attribute script:language { \string }
4148 & (attribute script:macro-name { \string }
4149 | (attribute xlink:type { "simple" },
4150 attribute xlink:href { anyIRI },
4151 attribute xlink:actuate { "onRequest" }?))
4152math-math = element math:math { mathMarkup }
4153[
4154 dc:description [
4155 "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element"
4156 ]
4157]
4158mathMarkup =
4159 (attribute * { text }
4160 | text
4161 | element * { mathMarkup })*
4162text-dde-connection-decl =
4163 element text:dde-connection-decl {
4164 text-dde-connection-decl-attlist, common-dde-connection-decl-attlist
4165 }
4166text-dde-connection-decl-attlist = attribute office:name { \string }
4167common-dde-connection-decl-attlist =
4168 attribute office:dde-application { \string }
4169 & attribute office:dde-topic { \string }
4170 & attribute office:dde-item { \string }
4171 & attribute office:automatic-update { boolean }?
4172table-dde-link =
4173 element table:dde-link { office-dde-source, table-table }
4174office-dde-source =
4175 element office:dde-source {
4176 office-dde-source-attlist, common-dde-connection-decl-attlist
4177 }
4178office-dde-source-attlist =
4179 attribute office:name { \string }?
4180 & attribute office:conversion-mode {
4181 "into-default-style-data-style"
4182 | "into-english-number"
4183 | "keep-text"
4184 }?
4185animation-element =
4186 element anim:animate {
4187 common-anim-target-attlist,
4188 common-anim-named-target-attlist,
4189 common-anim-values-attlist,
4190 common-anim-spline-mode-attlist,
4191 common-spline-anim-value-attlist,
4192 common-timing-attlist,
4193 common-anim-add-accum-attlist
4194 }
4195 | element anim:set {
4196 common-anim-target-attlist,
4197 common-anim-named-target-attlist,
4198 common-anim-set-values-attlist,
4199 common-timing-attlist,
4200 common-anim-add-accum-attlist
4201 }
4202 | element anim:animateMotion {
4203 anim-animate-motion-attlist,
4204 common-anim-target-attlist,
4205 common-anim-named-target-attlist,
4206 common-anim-add-accum-attlist,
4207 common-anim-values-attlist,
4208 common-timing-attlist,
4209 common-spline-anim-value-attlist
4210 }
4211 | element anim:animateColor {
4212 common-anim-target-attlist,
4213 common-anim-named-target-attlist,
4214 common-anim-add-accum-attlist,
4215 common-anim-values-attlist,
4216 common-anim-spline-mode-attlist,
4217 common-spline-anim-value-attlist,
4218 anim-animate-color-attlist,
4219 common-timing-attlist
4220 }
4221 | element anim:animateTransform {
4222 common-anim-target-attlist,
4223 common-anim-named-target-attlist,
4224 common-anim-add-accum-attlist,
4225 common-anim-values-attlist,
4226 anim-animate-transform-attlist,
4227 common-timing-attlist
4228 }
4229 | element anim:transitionFilter {
4230 common-anim-target-attlist,
4231 common-anim-add-accum-attlist,
4232 common-anim-values-attlist,
4233 common-anim-spline-mode-attlist,
4234 anim-transition-filter-attlist,
4235 common-timing-attlist
4236 }
4237 | element anim:par {
4238 common-anim-attlist,
4239 common-timing-attlist,
4240 common-endsync-timing-attlist,
4241 animation-element*
4242 }
4243 | element anim:seq {
4244 common-anim-attlist,
4245 common-endsync-timing-attlist,
4246 common-timing-attlist,
4247 animation-element*
4248 }
4249 | element anim:iterate {
4250 common-anim-attlist,
4251 anim-iterate-attlist,
4252 common-timing-attlist,
4253 common-endsync-timing-attlist,
4254 animation-element*
4255 }
4256 | element anim:audio {
4257 common-anim-attlist,
4258 anim-audio-attlist,
4259 common-basic-timing-attlist
4260 }
4261 | element anim:command {
4262 common-anim-attlist,
4263 anim-command-attlist,
4264 common-begin-end-timing-attlist,
4265 common-anim-target-attlist,
4266 element anim:param {
4267 attribute anim:name { \string },
4268 attribute anim:value { \string }
4269 }*
4270 }
4271anim-animate-motion-attlist =
4272 attribute svg:path { pathData }?
4273 & attribute svg:origin { \string }?
4274 & attribute smil:calcMode {
4275 "discrete" | "linear" | "paced" | "spline"
4276 }?
4277anim-animate-color-attlist =
4278 attribute anim:color-interpolation { "rgb" | "hsl" }?
4279 & attribute anim:color-interpolation-direction {
4280 "clockwise" | "counter-clockwise"
4281 }?
4282anim-animate-transform-attlist =
4283 attribute svg:type {
4284 "translate" | "scale" | "rotate" | "skewX" | "skewY"
4285 }
4286anim-transition-filter-attlist =
4287 attribute smil:type { \string }
4288 & attribute smil:subtype { \string }?
4289 & attribute smil:direction { "forward" | "reverse" }?
4290 & attribute smil:fadeColor { color }?
4291 & attribute smil:mode { "in" | "out" }?
4292common-anim-target-attlist =
4293 attribute smil:targetElement { IDREF }?
4294 & attribute anim:sub-item { \string }?
4295common-anim-named-target-attlist =
4296 attribute smil:attributeName { \string }
4297common-anim-values-attlist =
4298 attribute smil:values { \string }?
4299 & attribute anim:formula { \string }?
4300 & common-anim-set-values-attlist
4301 & attribute smil:from { \string }?
4302 & attribute smil:by { \string }?
4303common-anim-spline-mode-attlist =
4304 attribute smil:calcMode {
4305 "discrete" | "linear" | "paced" | "spline"
4306 }?
4307common-spline-anim-value-attlist =
4308 attribute smil:keyTimes { \string }?
4309 & attribute smil:keySplines { \string }?
4310common-anim-add-accum-attlist =
4311 attribute smil:accumulate { "none" | "sum" }?
4312 & attribute smil:additive { "replace" | "sum" }?
4313common-anim-set-values-attlist = attribute smil:to { \string }?
4314common-begin-end-timing-attlist =
4315 attribute smil:begin { \string }?
4316 & attribute smil:end { \string }?
4317common-dur-timing-attlist = attribute smil:dur { \string }?
4318common-endsync-timing-attlist =
4319 attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }?
4320common-repeat-timing-attlist =
4321 attribute smil:repeatDur { \string }?,
4322 attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }?
4323nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" }
4324common-fill-timing-attlist =
4325 attribute smil:fill {
4326 "remove" | "freeze" | "hold" | "auto" | "default" | "transition"
4327 }?
4328common-fill-default-attlist =
4329 attribute smil:fillDefault {
4330 "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit"
4331 }?
4332common-restart-timing-attlist =
4333 attribute smil:restart {
4334 "never" | "always" | "whenNotActive" | "default"
4335 }?
4336common-restart-default-attlist =
4337 attribute smil:restartDefault {
4338 "never" | "always" | "whenNotActive" | "inherit"
4339 }?
4340common-time-manip-attlist =
4341 attribute smil:accelerate { zeroToOneDecimal }?
4342 & attribute smil:decelerate { zeroToOneDecimal }?
4343 & attribute smil:autoReverse { boolean }?
4344zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" }
4345common-basic-timing-attlist =
4346 common-begin-end-timing-attlist,
4347 common-dur-timing-attlist,
4348 common-repeat-timing-attlist,
4349 common-restart-timing-attlist,
4350 common-restart-default-attlist,
4351 common-fill-timing-attlist,
4352 common-fill-default-attlist
4353common-timing-attlist =
4354 common-basic-timing-attlist, common-time-manip-attlist
4355anim-iterate-attlist =
4356 common-anim-target-attlist
4357 & attribute anim:iterate-type { \string }?
4358 & attribute anim:iterate-interval { duration }?
4359anim-audio-attlist =
4360 attribute xlink:href { anyIRI }?
4361 & attribute anim:audio-level { double }?
4362anim-command-attlist = attribute anim:command { \string }
4363style-style =
4364 element style:style {
4365 style-style-attlist, style-style-content, style-map*
4366 }
4367common-in-content-meta-attlist =
4368 attribute xhtml:about { URIorSafeCURIE },
4369 attribute xhtml:property { CURIEs },
4370 common-meta-literal-attlist
4371common-meta-literal-attlist =
4372 attribute xhtml:datatype { CURIE }?,
4373 attribute xhtml:content { \string }?
4374xml-id = attribute xml:id { ID }
4375style-style-attlist =
4376 attribute style:name { styleName }
4377 & attribute style:display-name { \string }?
4378 & attribute style:parent-style-name { styleNameRef }?
4379 & attribute style:next-style-name { styleNameRef }?
4380 & attribute style:list-level { positiveInteger | empty }?
4381 & attribute style:list-style-name { styleName | empty }?
4382 & attribute style:master-page-name { styleNameRef }?
4383 & attribute style:auto-update { boolean }?
4384 & attribute style:data-style-name { styleNameRef }?
4385 & attribute style:percentage-data-style-name { styleNameRef }?
4386 & attribute style:class { \string }?
4387 & attribute style:default-outline-level { positiveInteger | empty }?
4388style-map = element style:map { style-map-attlist, empty }
4389style-map-attlist =
4390 attribute style:condition { \string }
4391 & attribute style:apply-style-name { styleNameRef }
4392 & attribute style:base-cell-address { cellAddress }?
4393style-default-style =
4394 element style:default-style { style-style-content }
4395style-page-layout =
4396 element style:page-layout {
4397 style-page-layout-attlist, style-page-layout-content
4398 }
4399style-page-layout-content =
4400 style-page-layout-properties?,
4401 style-header-style?,
4402 style-footer-style?
4403style-page-layout-attlist =
4404 attribute style:name { styleName }
4405 & attribute style:page-usage {
4406 "all" | "left" | "right" | "mirrored"
4407 }?
4408style-header-style =
4409 element style:header-style { style-header-footer-properties? }
4410style-footer-style =
4411 element style:footer-style { style-header-footer-properties? }
4412style-default-page-layout =
4413 element style:default-page-layout { style-page-layout-content }
4414style-master-page =
4415 element style:master-page {
4416 style-master-page-attlist,
4417 (style-header, style-header-left?)?,
4418 (style-footer, style-footer-left?)?,
4419 draw-layer-set?,
4420 office-forms?,
4421 shape*,
4422 animation-element?,
4423 presentation-notes?
4424 }
4425style-master-page-attlist =
4426 attribute style:name { styleName }
4427 & attribute style:display-name { \string }?
4428 & attribute style:page-layout-name { styleNameRef }
4429 & attribute draw:style-name { styleNameRef }?
4430 & attribute style:next-style-name { styleNameRef }?
4431style-header =
4432 element style:header {
4433 common-style-header-footer-attlist, header-footer-content
4434 }
4435style-footer =
4436 element style:footer {
4437 common-style-header-footer-attlist, header-footer-content
4438 }
4439style-header-left =
4440 element style:header-left {
4441 common-style-header-footer-attlist, header-footer-content
4442 }
4443style-footer-left =
4444 element style:footer-left {
4445 common-style-header-footer-attlist, header-footer-content
4446 }
4447header-footer-content =
4448 (text-tracked-changes,
4449 text-decls,
4450 (text-h
4451 | text-p
4452 | text-list
4453 | table-table
4454 | text-section
4455 | text-table-of-content
4456 | text-illustration-index
4457 | text-table-index
4458 | text-object-index
4459 | text-user-index
4460 | text-alphabetical-index
4461 | text-bibliography
4462 | text-index-title
4463 | change-marks)*)
4464 | (style-region-left?, style-region-center?, style-region-right?)
4465common-style-header-footer-attlist =
4466 attribute style:display { boolean }?
4467style-region-left = element style:region-left { region-content }
4468style-region-center = element style:region-center { region-content }
4469style-region-right = element style:region-right { region-content }
4470region-content = text-p*
4471presentation-notes =
4472 element presentation:notes {
4473 common-presentation-header-footer-attlist,
4474 presentation-notes-attlist,
4475 office-forms,
4476 shape*
4477 }
4478presentation-notes-attlist =
4479 attribute style:page-layout-name { styleNameRef }?
4480 & attribute draw:style-name { styleNameRef }?
4481table-table-template =
4482 element table:table-template {
4483 table-table-template-attlist,
4484 table-first-row?,
4485 table-last-row?,
4486 table-first-column?,
4487 table-last-column?,
4488 table-body,
4489 table-even-rows?,
4490 table-odd-rows?,
4491 table-even-columns?,
4492 table-odd-columns?,
4493 table-background?
4494 }
4495table-table-template-attlist =
4496 attribute table:name { \string }
4497 & attribute table:first-row-start-column { rowOrCol }
4498 & attribute table:first-row-end-column { rowOrCol }
4499 & attribute table:last-row-start-column { rowOrCol }
4500 & attribute table:last-row-end-column { rowOrCol }
4501rowOrCol = "row" | "column"
4502table-first-row =
4503 element table:first-row { common-table-template-attlist, empty }
4504table-last-row =
4505 element table:last-row { common-table-template-attlist, empty }
4506table-first-column =
4507 element table:first-column { common-table-template-attlist, empty }
4508table-last-column =
4509 element table:last-column { common-table-template-attlist, empty }
4510table-body = element table:body { common-table-template-attlist, empty }
4511table-even-rows =
4512 element table:even-rows { common-table-template-attlist, empty }
4513table-odd-rows =
4514 element table:odd-rows { common-table-template-attlist, empty }
4515table-even-columns =
4516 element table:even-columns { common-table-template-attlist, empty }
4517table-odd-columns =
4518 element table:odd-columns { common-table-template-attlist, empty }
4519common-table-template-attlist =
4520 attribute table:style-name { styleNameRef },
4521 attribute table:paragraph-style-name { styleNameRef }?
4522table-background =
4523 element table:background { table-background-attlist, empty }
4524table-background-attlist = attribute table:style-name { styleNameRef }
4525style-font-face =
4526 element style:font-face {
4527 style-font-face-attlist, svg-font-face-src?, svg-definition-src?
4528 }
4529style-font-face-attlist =
4530 attribute svg:font-family { \string }?
4531 & attribute svg:font-style { fontStyle }?
4532 & attribute svg:font-variant { fontVariant }?
4533 & attribute svg:font-weight { fontWeight }?
4534 & attribute svg:font-stretch {
4535 "normal"
4536 | "ultra-condensed"
4537 | "extra-condensed"
4538 | "condensed"
4539 | "semi-condensed"
4540 | "semi-expanded"
4541 | "expanded"
4542 | "extra-expanded"
4543 | "ultra-expanded"
4544 }?
4545 & attribute svg:font-size { positiveLength }?
4546 & attribute svg:unicode-range { \string }?
4547 & attribute svg:units-per-em { integer }?
4548 & attribute svg:panose-1 { \string }?
4549 & attribute svg:stemv { integer }?
4550 & attribute svg:stemh { integer }?
4551 & attribute svg:slope { integer }?
4552 & attribute svg:cap-height { integer }?
4553 & attribute svg:x-height { integer }?
4554 & attribute svg:accent-height { integer }?
4555 & attribute svg:ascent { integer }?
4556 & attribute svg:descent { integer }?
4557 & attribute svg:widths { \string }?
4558 & attribute svg:bbox { \string }?
4559 & attribute svg:ideographic { integer }?
4560 & attribute svg:alphabetic { integer }?
4561 & attribute svg:mathematical { integer }?
4562 & attribute svg:hanging { integer }?
4563 & attribute svg:v-ideographic { integer }?
4564 & attribute svg:v-alphabetic { integer }?
4565 & attribute svg:v-mathematical { integer }?
4566 & attribute svg:v-hanging { integer }?
4567 & attribute svg:underline-position { integer }?
4568 & attribute svg:underline-thickness { integer }?
4569 & attribute svg:strikethrough-position { integer }?
4570 & attribute svg:strikethrough-thickness { integer }?
4571 & attribute svg:overline-position { integer }?
4572 & attribute svg:overline-thickness { integer }?
4573 & attribute style:name { \string }
4574 & attribute style:font-adornments { \string }?
4575 & attribute style:font-family-generic { fontFamilyGeneric }?
4576 & attribute style:font-pitch { fontPitch }?
4577 & attribute style:font-charset { textEncoding }?
4578svg-font-face-src =
4579 element svg:font-face-src {
4580 (svg-font-face-uri | svg-font-face-name)+
4581 }
4582svg-font-face-uri =
4583 element svg:font-face-uri {
4584 common-svg-font-face-xlink-attlist, svg-font-face-format*
4585 }
4586svg-font-face-format =
4587 element svg:font-face-format {
4588 attribute svg:string { \string }?,
4589 empty
4590 }
4591svg-font-face-name =
4592 element svg:font-face-name {
4593 attribute svg:name { \string }?,
4594 empty
4595 }
4596svg-definition-src =
4597 element svg:definition-src {
4598 common-svg-font-face-xlink-attlist, empty
4599 }
4600common-svg-font-face-xlink-attlist =
4601 attribute xlink:type { "simple" },
4602 attribute xlink:href { anyIRI },
4603 attribute xlink:actuate { "onRequest" }?
4604number-number-style =
4605 element number:number-style {
4606 common-data-style-attlist,
4607 style-text-properties?,
4608 number-text?,
4609 (any-number, number-text?)?,
4610 style-map*
4611 }
4612any-number = number-number | number-scientific-number | number-fraction
4613number-number =
4614 element number:number {
4615 number-number-attlist,
4616 common-decimal-places-attlist,
4617 common-number-attlist,
4618 number-embedded-text*
4619 }
4620number-number-attlist =
4621 attribute number:decimal-replacement { \string }?
4622 & attribute number:display-factor { double }?
4623number-embedded-text =
4624 element number:embedded-text { number-embedded-text-attlist, text }
4625number-embedded-text-attlist = attribute number:position { integer }
4626number-scientific-number =
4627 element number:scientific-number {
4628 number-scientific-number-attlist,
4629 common-decimal-places-attlist,
4630 common-number-attlist,
4631 empty
4632 }
4633number-scientific-number-attlist =
4634 attribute number:min-exponent-digits { integer }?
4635number-fraction =
4636 element number:fraction {
4637 number-fraction-attlist, common-number-attlist, empty
4638 }
4639number-fraction-attlist =
4640 attribute number:min-numerator-digits { integer }?
4641 & attribute number:min-denominator-digits { integer }?
4642 & attribute number:denominator-value { integer }?
4643number-currency-style =
4644 element number:currency-style {
4645 common-data-style-attlist,
4646 common-auto-reorder-attlist,
4647 style-text-properties?,
4648 number-text?,
4649 ((number-and-text, currency-symbol-and-text?)
4650 | (currency-symbol-and-text, number-and-text?))?,
4651 style-map*
4652 }
4653currency-symbol-and-text = number-currency-symbol, number-text?
4654number-and-text = number-number, number-text?
4655number-currency-symbol =
4656 element number:currency-symbol {
4657 number-currency-symbol-attlist, text
4658 }
4659number-currency-symbol-attlist =
4660 attribute number:language { languageCode }?,
4661 attribute number:country { countryCode }?,
4662 attribute number:script { scriptCode }?,
4663 attribute number:rfc-language-tag { language }?
4664number-percentage-style =
4665 element number:percentage-style {
4666 common-data-style-attlist,
4667 style-text-properties?,
4668 number-text?,
4669 number-and-text?,
4670 style-map*
4671 }
4672number-date-style =
4673 element number:date-style {
4674 common-data-style-attlist,
4675 common-auto-reorder-attlist,
4676 common-format-source-attlist,
4677 style-text-properties?,
4678 number-text?,
4679 (any-date, number-text?)+,
4680 style-map*
4681 }
4682any-date =
4683 number-day
4684 | number-month
4685 | number-year
4686 | number-era
4687 | number-day-of-week
4688 | number-week-of-year
4689 | number-quarter
4690 | number-hours
4691 | number-am-pm
4692 | number-minutes
4693 | number-seconds
4694number-day =
4695 element number:day {
4696 number-day-attlist, common-calendar-attlist, empty
4697 }
4698number-day-attlist = attribute number:style { "short" | "long" }?
4699number-month =
4700 element number:month {
4701 number-month-attlist, common-calendar-attlist, empty
4702 }
4703number-month-attlist =
4704 attribute number:textual { boolean }?
4705 & attribute number:possessive-form { boolean }?
4706 & attribute number:style { "short" | "long" }?
4707number-year =
4708 element number:year {
4709 number-year-attlist, common-calendar-attlist, empty
4710 }
4711number-year-attlist = attribute number:style { "short" | "long" }?
4712number-era =
4713 element number:era {
4714 number-era-attlist, common-calendar-attlist, empty
4715 }
4716number-era-attlist = attribute number:style { "short" | "long" }?
4717number-day-of-week =
4718 element number:day-of-week {
4719 number-day-of-week-attlist, common-calendar-attlist, empty
4720 }
4721number-day-of-week-attlist =
4722 attribute number:style { "short" | "long" }?
4723number-week-of-year =
4724 element number:week-of-year { common-calendar-attlist, empty }
4725number-quarter =
4726 element number:quarter {
4727 number-quarter-attlist, common-calendar-attlist, empty
4728 }
4729number-quarter-attlist = attribute number:style { "short" | "long" }?
4730number-time-style =
4731 element number:time-style {
4732 number-time-style-attlist,
4733 common-data-style-attlist,
4734 common-format-source-attlist,
4735 style-text-properties?,
4736 number-text?,
4737 (any-time, number-text?)+,
4738 style-map*
4739 }
4740any-time = number-hours | number-am-pm | number-minutes | number-seconds
4741number-time-style-attlist =
4742 attribute number:truncate-on-overflow { boolean }?
4743number-hours = element number:hours { number-hours-attlist, empty }
4744number-hours-attlist = attribute number:style { "short" | "long" }?
4745number-minutes =
4746 element number:minutes { number-minutes-attlist, empty }
4747number-minutes-attlist = attribute number:style { "short" | "long" }?
4748number-seconds =
4749 element number:seconds { number-seconds-attlist, empty }
4750number-seconds-attlist =
4751 attribute number:style { "short" | "long" }?
4752 & attribute number:decimal-places { integer }?
4753number-am-pm = element number:am-pm { empty }
4754number-boolean-style =
4755 element number:boolean-style {
4756 common-data-style-attlist,
4757 style-text-properties?,
4758 number-text?,
4759 (number-boolean, number-text?)?,
4760 style-map*
4761 }
4762number-boolean = element number:boolean { empty }
4763number-text-style =
4764 element number:text-style {
4765 common-data-style-attlist,
4766 style-text-properties?,
4767 number-text?,
4768 (number-text-content, number-text?)*,
4769 style-map*
4770 }
4771number-text = element number:text { text }
4772number-text-content = element number:text-content { empty }
4773common-data-style-attlist =
4774 attribute style:name { styleName }
4775 & attribute style:display-name { \string }?
4776 & attribute number:language { languageCode }?
4777 & attribute number:country { countryCode }?
4778 & attribute number:script { scriptCode }?
4779 & attribute number:rfc-language-tag { language }?
4780 & attribute number:title { \string }?
4781 & attribute style:volatile { boolean }?
4782 & attribute number:transliteration-format { \string }?
4783 & attribute number:transliteration-language { countryCode }?
4784 & attribute number:transliteration-country { countryCode }?
4785 & attribute number:transliteration-style {
4786 "short" | "medium" | "long"
4787 }?
4788common-auto-reorder-attlist =
4789 attribute number:automatic-order { boolean }?
4790common-format-source-attlist =
4791 attribute number:format-source { "fixed" | "language" }?
4792common-decimal-places-attlist =
4793 attribute number:decimal-places { integer }?
4794common-number-attlist =
4795 attribute number:min-integer-digits { integer }?
4796 & attribute number:grouping { boolean }?
4797common-calendar-attlist =
4798 attribute number:calendar {
4799 "gregorian"
4800 | "gengou"
4801 | "ROC"
4802 | "hanja_yoil"
4803 | "hanja"
4804 | "hijri"
4805 | "jewish"
4806 | "buddhist"
4807 | \string
4808 }?
4809style-style-content =
4810 (attribute style:family { "text" },
4811 style-text-properties?)
4812 | (attribute style:family { "paragraph" },
4813 style-paragraph-properties?,
4814 style-text-properties?)
4815 | (attribute style:family { "section" },
4816 style-section-properties?)
4817 | (attribute style:family { "ruby" },
4818 style-ruby-properties?)
4819 | (attribute style:family { "table" },
4820 style-table-properties?)
4821 | (attribute style:family { "table-column" },
4822 style-table-column-properties?)
4823 | (attribute style:family { "table-row" },
4824 style-table-row-properties?)
4825 | (attribute style:family { "table-cell" },
4826 style-table-cell-properties?,
4827 style-paragraph-properties?,
4828 style-text-properties?)
4829 | (attribute style:family { "graphic" | "presentation" },
4830 style-graphic-properties?,
4831 style-paragraph-properties?,
4832 style-text-properties?)
4833 | (attribute style:family { "drawing-page" },
4834 style-drawing-page-properties?)
4835 | (attribute style:family { "chart" },
4836 style-chart-properties?,
4837 style-graphic-properties?,
4838 style-paragraph-properties?,
4839 style-text-properties?)
4840text-linenumbering-configuration =
4841 element text:linenumbering-configuration {
4842 text-linenumbering-configuration-attlist,
4843 text-linenumbering-separator?
4844 }
4845text-linenumbering-configuration-attlist =
4846 attribute text:number-lines { boolean }?
4847 & common-num-format-attlist?
4848 & attribute text:style-name { styleNameRef }?
4849 & attribute text:increment { nonNegativeInteger }?
4850 & attribute text:number-position {
4851 "left" | "right" | "inner" | "outer"
4852 }?
4853 & attribute text:offset { nonNegativeLength }?
4854 & attribute text:count-empty-lines { boolean }?
4855 & attribute text:count-in-text-boxes { boolean }?
4856 & attribute text:restart-on-page { boolean }?
4857text-linenumbering-separator =
4858 element text:linenumbering-separator {
4859 attribute text:increment { nonNegativeInteger }?,
4860 text
4861 }
4862text-notes-configuration =
4863 element text:notes-configuration { text-notes-configuration-content }
4864text-notes-configuration-content =
4865 text-note-class
4866 & attribute text:citation-style-name { styleNameRef }?
4867 & attribute text:citation-body-style-name { styleNameRef }?
4868 & attribute text:default-style-name { styleNameRef }?
4869 & attribute text:master-page-name { styleNameRef }?
4870 & attribute text:start-value { nonNegativeInteger }?
4871 & common-num-format-prefix-suffix-attlist
4872 & common-num-format-attlist?
4873 & attribute text:start-numbering-at {
4874 "document" | "chapter" | "page"
4875 }?
4876 & attribute text:footnotes-position {
4877 "text" | "page" | "section" | "document"
4878 }?
4879 & element text:note-continuation-notice-forward { text }?
4880 & element text:note-continuation-notice-backward { text }?
4881text-bibliography-configuration =
4882 element text:bibliography-configuration {
4883 text-bibliography-configuration-attlist, text-sort-key*
4884 }
4885text-bibliography-configuration-attlist =
4886 attribute text:prefix { \string }?
4887 & attribute text:suffix { \string }?
4888 & attribute text:numbered-entries { boolean }?
4889 & attribute text:sort-by-position { boolean }?
4890 & attribute fo:language { languageCode }?
4891 & attribute fo:country { countryCode }?
4892 & attribute fo:script { scriptCode }?
4893 & attribute style:rfc-language-tag { language }?
4894 & attribute text:sort-algorithm { \string }?
4895text-sort-key = element text:sort-key { text-sort-key-attlist, empty }
4896text-sort-key-attlist =
4897 attribute text:key {
4898 "address"
4899 | "annote"
4900 | "author"
4901 | "bibliography-type"
4902 | "booktitle"
4903 | "chapter"
4904 | "custom1"
4905 | "custom2"
4906 | "custom3"
4907 | "custom4"
4908 | "custom5"
4909 | "edition"
4910 | "editor"
4911 | "howpublished"
4912 | "identifier"
4913 | "institution"
4914 | "isbn"
4915 | "issn"
4916 | "journal"
4917 | "month"
4918 | "note"
4919 | "number"
4920 | "organizations"
4921 | "pages"
4922 | "publisher"
4923 | "report-type"
4924 | "school"
4925 | "series"
4926 | "title"
4927 | "url"
4928 | "volume"
4929 | "year"
4930 },
4931 attribute text:sort-ascending { boolean }?
4932text-list-style =
4933 element text:list-style {
4934 text-list-style-attr, text-list-style-content*
4935 }
4936text-list-style-attr =
4937 attribute style:name { styleName }
4938 & attribute style:display-name { \string }?
4939 & attribute text:consecutive-numbering { boolean }?
4940text-list-style-content =
4941 element text:list-level-style-number {
4942 text-list-level-style-attr,
4943 text-list-level-style-number-attr,
4944 style-list-level-properties?,
4945 style-text-properties?
4946 }
4947 | element text:list-level-style-bullet {
4948 text-list-level-style-attr,
4949 text-list-level-style-bullet-attr,
4950 style-list-level-properties?,
4951 style-text-properties?
4952 }
4953 | element text:list-level-style-image {
4954 text-list-level-style-attr,
4955 text-list-level-style-image-attr,
4956 style-list-level-properties?
4957 }
4958text-list-level-style-number-attr =
4959 attribute text:style-name { styleNameRef }?
4960 & common-num-format-attlist
4961 & common-num-format-prefix-suffix-attlist
4962 & attribute text:display-levels { positiveInteger }?
4963 & attribute text:start-value { positiveInteger }?
4964text-list-level-style-bullet-attr =
4965 attribute text:style-name { styleNameRef }?
4966 & attribute text:bullet-char { character }
4967 & common-num-format-prefix-suffix-attlist
4968 & attribute text:bullet-relative-size { percent }?
4969text-list-level-style-image-attr =
4970 common-draw-data-attlist | office-binary-data
4971text-list-level-style-attr = attribute text:level { positiveInteger }
4972text-outline-style =
4973 element text:outline-style {
4974 text-outline-style-attr, text-outline-level-style+
4975 }
4976text-outline-style-attr = attribute style:name { styleName }
4977text-outline-level-style =
4978 element text:outline-level-style {
4979 text-outline-level-style-attlist,
4980 style-list-level-properties?,
4981 style-text-properties?
4982 }
4983text-outline-level-style-attlist =
4984 attribute text:level { positiveInteger }
4985 & attribute text:style-name { styleNameRef }?
4986 & common-num-format-attlist
4987 & common-num-format-prefix-suffix-attlist
4988 & attribute text:display-levels { positiveInteger }?
4989 & attribute text:start-value { positiveInteger }?
4990style-graphic-properties =
4991 element style:graphic-properties {
4992 style-graphic-properties-content-strict
4993 }
4994style-graphic-properties-content-strict =
4995 style-graphic-properties-attlist,
4996 style-graphic-fill-properties-attlist,
4997 style-graphic-properties-elements
4998style-drawing-page-properties =
4999 element style:drawing-page-properties {
5000 style-drawing-page-properties-content-strict
5001 }
5002style-drawing-page-properties-content-strict =
5003 style-graphic-fill-properties-attlist,
5004 style-drawing-page-properties-attlist,
5005 style-drawing-page-properties-elements
5006draw-gradient =
5007 element draw:gradient {
5008 common-draw-gradient-attlist, draw-gradient-attlist, empty
5009 }
5010common-draw-gradient-attlist =
5011 attribute draw:name { styleName }?
5012 & attribute draw:display-name { \string }?
5013 & attribute draw:style { gradient-style }
5014 & attribute draw:cx { percent }?
5015 & attribute draw:cy { percent }?
5016 & attribute draw:angle { angle }?
5017 & attribute draw:border { percent }?
5018gradient-style =
5019 "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular"
5020draw-gradient-attlist =
5021 attribute draw:start-color { color }?
5022 & attribute draw:end-color { color }?
5023 & attribute draw:start-intensity { zeroToHundredPercent }?
5024 & attribute draw:end-intensity { zeroToHundredPercent }?
5025svg-linearGradient =
5026 element svg:linearGradient {
5027 common-svg-gradient-attlist,
5028 attribute svg:x1 { coordinate | percent }?,
5029 attribute svg:y1 { coordinate | percent }?,
5030 attribute svg:x2 { coordinate | percent }?,
5031 attribute svg:y2 { coordinate | percent }?,
5032 svg-stop*
5033 }
5034svg-radialGradient =
5035 element svg:radialGradient {
5036 common-svg-gradient-attlist,
5037 attribute svg:cx { coordinate | percent }?,
5038 attribute svg:cy { coordinate | percent }?,
5039 attribute svg:r { coordinate | percent }?,
5040 attribute svg:fx { coordinate | percent }?,
5041 attribute svg:fy { coordinate | percent }?,
5042 svg-stop*
5043 }
5044svg-stop =
5045 element svg:stop {
5046 attribute svg:offset { double | percent },
5047 attribute svg:stop-color { color }?,
5048 attribute svg:stop-opacity { double }?
5049 }
5050common-svg-gradient-attlist =
5051 attribute svg:gradientUnits { "objectBoundingBox" }?
5052 & attribute svg:gradientTransform { \string }?
5053 & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }?
5054 & attribute draw:name { styleName }
5055 & attribute draw:display-name { \string }?
5056draw-hatch = element draw:hatch { draw-hatch-attlist, empty }
5057draw-hatch-attlist =
5058 attribute draw:name { styleName }
5059 & attribute draw:display-name { \string }?
5060 & attribute draw:style { "single" | "double" | "triple" }
5061 & attribute draw:color { color }?
5062 & attribute draw:distance { length }?
5063 & attribute draw:rotation { angle }?
5064draw-fill-image =
5065 element draw:fill-image {
5066 draw-fill-image-attlist,
5067 attribute xlink:type { "simple" },
5068 attribute xlink:href { anyIRI },
5069 attribute xlink:show { "embed" }?,
5070 attribute xlink:actuate { "onLoad" }?,
5071 empty
5072 }
5073draw-fill-image-attlist =
5074 attribute draw:name { styleName }
5075 & attribute draw:display-name { \string }?
5076 & attribute svg:width { length }?
5077 & attribute svg:height { length }?
5078draw-opacity =
5079 element draw:opacity {
5080 common-draw-gradient-attlist, draw-opacity-attlist, empty
5081 }
5082draw-opacity-attlist =
5083 attribute draw:start { zeroToHundredPercent }?,
5084 attribute draw:end { zeroToHundredPercent }?
5085draw-marker =
5086 element draw:marker {
5087 draw-marker-attlist,
5088 common-draw-viewbox-attlist,
5089 common-draw-path-data-attlist,
5090 empty
5091 }
5092draw-marker-attlist =
5093 attribute draw:name { styleName }
5094 & attribute draw:display-name { \string }?
5095draw-stroke-dash =
5096 element draw:stroke-dash { draw-stroke-dash-attlist, empty }
5097draw-stroke-dash-attlist =
5098 attribute draw:name { styleName }
5099 & attribute draw:display-name { \string }?
5100 & attribute draw:style { "rect" | "round" }?
5101 & attribute draw:dots1 { integer }?
5102 & attribute draw:dots1-length { length | percent }?
5103 & attribute draw:dots2 { integer }?
5104 & attribute draw:dots2-length { length | percent }?
5105 & attribute draw:distance { length | percent }?
5106style-presentation-page-layout =
5107 element style:presentation-page-layout {
5108 attribute style:name { styleName },
5109 attribute style:display-name { \string }?,
5110 presentation-placeholder*
5111 }
5112presentation-placeholder =
5113 element presentation:placeholder {
5114 attribute presentation:object { presentation-classes },
5115 attribute svg:x { coordinate | percent },
5116 attribute svg:y { coordinate | percent },
5117 attribute svg:width { length | percent },
5118 attribute svg:height { length | percent },
5119 empty
5120 }
5121style-page-layout-properties =
5122 element style:page-layout-properties {
5123 style-page-layout-properties-content-strict
5124 }
5125style-page-layout-properties-content-strict =
5126 style-page-layout-properties-attlist,
5127 style-page-layout-properties-elements
5128style-page-layout-properties-attlist =
5129 attribute fo:page-width { length }?
5130 & attribute fo:page-height { length }?
5131 & common-num-format-attlist?
5132 & common-num-format-prefix-suffix-attlist
5133 & attribute style:paper-tray-name { "default" | \string }?
5134 & attribute style:print-orientation { "portrait" | "landscape" }?
5135 & common-horizontal-margin-attlist
5136 & common-vertical-margin-attlist
5137 & common-margin-attlist
5138 & common-border-attlist
5139 & common-border-line-width-attlist
5140 & common-padding-attlist
5141 & common-shadow-attlist
5142 & common-background-color-attlist
5143 & attribute style:register-truth-ref-style-name { styleNameRef }?
5144 & attribute style:print {
5145 list {
5146 ("headers"
5147 | "grid"
5148 | "annotations"
5149 | "objects"
5150 | "charts"
5151 | "drawings"
5152 | "formulas"
5153 | "zero-values")*
5154 }
5155 }?
5156 & attribute style:print-page-order { "ttb" | "ltr" }?
5157 & attribute style:first-page-number { positiveInteger | "continue" }?
5158 & attribute style:scale-to { percent }?
5159 & attribute style:scale-to-pages { positiveInteger }?
5160 & attribute style:table-centering {
5161 "horizontal" | "vertical" | "both" | "none"
5162 }?
5163 & attribute style:footnote-max-height { length }?
5164 & common-writing-mode-attlist
5165 & attribute style:layout-grid-mode { "none" | "line" | "both" }?
5166 & attribute style:layout-grid-standard-mode { boolean }?
5167 & attribute style:layout-grid-base-height { length }?
5168 & attribute style:layout-grid-ruby-height { length }?
5169 & attribute style:layout-grid-lines { positiveInteger }?
5170 & attribute style:layout-grid-base-width { length }?
5171 & attribute style:layout-grid-color { color }?
5172 & attribute style:layout-grid-ruby-below { boolean }?
5173 & attribute style:layout-grid-print { boolean }?
5174 & attribute style:layout-grid-display { boolean }?
5175 & attribute style:layout-grid-snap-to { boolean }?
5176style-page-layout-properties-elements =
5177 style-background-image & style-columns & style-footnote-sep
5178style-footnote-sep =
5179 element style:footnote-sep { style-footnote-sep-attlist, empty }?
5180style-footnote-sep-attlist =
5181 attribute style:width { length }?,
5182 attribute style:rel-width { percent }?,
5183 attribute style:color { color }?,
5184 attribute style:line-style { lineStyle }?,
5185 attribute style:adjustment { "left" | "center" | "right" }?,
5186 attribute style:distance-before-sep { length }?,
5187 attribute style:distance-after-sep { length }?
5188style-header-footer-properties =
5189 element style:header-footer-properties {
5190 style-header-footer-properties-content-strict
5191 }
5192style-header-footer-properties-content-strict =
5193 style-header-footer-properties-attlist,
5194 style-header-footer-properties-elements
5195style-header-footer-properties-attlist =
5196 attribute svg:height { length }?
5197 & attribute fo:min-height { length }?
5198 & common-horizontal-margin-attlist
5199 & common-vertical-margin-attlist
5200 & common-margin-attlist
5201 & common-border-attlist
5202 & common-border-line-width-attlist
5203 & common-padding-attlist
5204 & common-background-color-attlist
5205 & common-shadow-attlist
5206 & attribute style:dynamic-spacing { boolean }?
5207style-header-footer-properties-elements = style-background-image
5208style-text-properties =
5209 element style:text-properties { style-text-properties-content-strict }
5210style-text-properties-content-strict =
5211 style-text-properties-attlist, style-text-properties-elements
5212style-text-properties-elements = empty
5213style-text-properties-attlist =
5214 attribute fo:font-variant { fontVariant }?
5215 & attribute fo:text-transform {
5216 "none" | "lowercase" | "uppercase" | "capitalize"
5217 }?
5218 & attribute fo:color { color }?
5219 & attribute style:use-window-font-color { boolean }?
5220 & attribute style:text-outline { boolean }?
5221 & attribute style:text-line-through-type { lineType }?
5222 & attribute style:text-line-through-style { lineStyle }?
5223 & attribute style:text-line-through-width { lineWidth }?
5224 & attribute style:text-line-through-color { "font-color" | color }?
5225 & attribute style:text-line-through-text { \string }?
5226 & attribute style:text-line-through-text-style { styleNameRef }?
5227 & attribute style:text-position {
5228 list { (percent | "super" | "sub"), percent? }
5229 }?
5230 & attribute style:font-name { \string }?
5231 & attribute style:font-name-asian { \string }?
5232 & attribute style:font-name-complex { \string }?
5233 & attribute fo:font-family { \string }?
5234 & attribute style:font-family-asian { \string }?
5235 & attribute style:font-family-complex { \string }?
5236 & attribute style:font-family-generic { fontFamilyGeneric }?
5237 & attribute style:font-family-generic-asian { fontFamilyGeneric }?
5238 & attribute style:font-family-generic-complex { fontFamilyGeneric }?
5239 & attribute style:font-style-name { \string }?
5240 & attribute style:font-style-name-asian { \string }?
5241 & attribute style:font-style-name-complex { \string }?
5242 & attribute style:font-pitch { fontPitch }?
5243 & attribute style:font-pitch-asian { fontPitch }?
5244 & attribute style:font-pitch-complex { fontPitch }?
5245 & attribute style:font-charset { textEncoding }?
5246 & attribute style:font-charset-asian { textEncoding }?
5247 & attribute style:font-charset-complex { textEncoding }?
5248 & attribute fo:font-size { positiveLength | percent }?
5249 & attribute style:font-size-asian { positiveLength | percent }?
5250 & attribute style:font-size-complex { positiveLength | percent }?
5251 & attribute style:font-size-rel { length }?
5252 & attribute style:font-size-rel-asian { length }?
5253 & attribute style:font-size-rel-complex { length }?
5254 & attribute style:script-type {
5255 "latin" | "asian" | "complex" | "ignore"
5256 }?
5257 & attribute fo:letter-spacing { length | "normal" }?
5258 & attribute fo:language { languageCode }?
5259 & attribute style:language-asian { languageCode }?
5260 & attribute style:language-complex { languageCode }?
5261 & attribute fo:country { countryCode }?
5262 & attribute style:country-asian { countryCode }?
5263 & attribute style:country-complex { countryCode }?
5264 & attribute fo:script { scriptCode }?
5265 & attribute style:script-asian { scriptCode }?
5266 & attribute style:script-complex { scriptCode }?
5267 & attribute style:rfc-language-tag { language }?
5268 & attribute style:rfc-language-tag-asian { language }?
5269 & attribute style:rfc-language-tag-complex { language }?
5270 & attribute fo:font-style { fontStyle }?
5271 & attribute style:font-style-asian { fontStyle }?
5272 & attribute style:font-style-complex { fontStyle }?
5273 & attribute style:font-relief { "none" | "embossed" | "engraved" }?
5274 & attribute fo:text-shadow { shadowType }?
5275 & attribute style:text-underline-type { lineType }?
5276 & attribute style:text-underline-style { lineStyle }?
5277 & attribute style:text-underline-width { lineWidth }?
5278 & attribute style:text-underline-color { "font-color" | color }?
5279 & attribute style:text-overline-type { lineType }?
5280 & attribute style:text-overline-style { lineStyle }?
5281 & attribute style:text-overline-width { lineWidth }?
5282 & attribute style:text-overline-color { "font-color" | color }?
5283 & attribute style:text-overline-mode { lineMode }?
5284 & attribute fo:font-weight { fontWeight }?
5285 & attribute style:font-weight-asian { fontWeight }?
5286 & attribute style:font-weight-complex { fontWeight }?
5287 & attribute style:text-underline-mode { lineMode }?
5288 & attribute style:text-line-through-mode { lineMode }?
5289 & attribute style:letter-kerning { boolean }?
5290 & attribute style:text-blinking { boolean }?
5291 & common-background-color-attlist
5292 & attribute style:text-combine { "none" | "letters" | "lines" }?
5293 & attribute style:text-combine-start-char { character }?
5294 & attribute style:text-combine-end-char { character }?
5295 & attribute style:text-emphasize {
5296 "none"
5297 | list {
5298 ("none" | "accent" | "dot" | "circle" | "disc"),
5299 ("above" | "below")
5300 }
5301 }?
5302 & attribute style:text-scale { percent }?
5303 & attribute style:text-rotation-angle { angle }?
5304 & attribute style:text-rotation-scale { "fixed" | "line-height" }?
5305 & attribute fo:hyphenate { boolean }?
5306 & attribute fo:hyphenation-remain-char-count { positiveInteger }?
5307 & attribute fo:hyphenation-push-char-count { positiveInteger }?
5308 & (attribute text:display { "true" }
5309 | attribute text:display { "none" }
5310 | (attribute text:display { "condition" },
5311 attribute text:condition { "none" })
5312 | empty)
5313fontVariant = "normal" | "small-caps"
5314fontFamilyGeneric =
5315 "roman" | "swiss" | "modern" | "decorative" | "script" | "system"
5316fontPitch = "fixed" | "variable"
5317textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" }
5318fontStyle = "normal" | "italic" | "oblique"
5319shadowType = "none" | \string
5320lineType = "none" | "single" | "double"
5321lineStyle =
5322 "none"
5323 | "solid"
5324 | "dotted"
5325 | "dash"
5326 | "long-dash"
5327 | "dot-dash"
5328 | "dot-dot-dash"
5329 | "wave"
5330lineWidth =
5331 "auto"
5332 | "normal"
5333 | "bold"
5334 | "thin"
5335 | "medium"
5336 | "thick"
5337 | positiveInteger
5338 | percent
5339 | positiveLength
5340fontWeight =
5341 "normal"
5342 | "bold"
5343 | "100"
5344 | "200"
5345 | "300"
5346 | "400"
5347 | "500"
5348 | "600"
5349 | "700"
5350 | "800"
5351 | "900"
5352lineMode = "continuous" | "skip-white-space"
5353style-paragraph-properties =
5354 element style:paragraph-properties {
5355 style-paragraph-properties-content-strict
5356 }
5357style-paragraph-properties-content-strict =
5358 style-paragraph-properties-attlist,
5359 style-paragraph-properties-elements
5360style-paragraph-properties-attlist =
5361 attribute fo:line-height { "normal" | nonNegativeLength | percent }?
5362 & attribute style:line-height-at-least { nonNegativeLength }?
5363 & attribute style:line-spacing { length }?
5364 & attribute style:font-independent-line-spacing { boolean }?
5365 & common-text-align
5366 & attribute fo:text-align-last { "start" | "center" | "justify" }?
5367 & attribute style:justify-single-word { boolean }?
5368 & attribute fo:keep-together { "auto" | "always" }?
5369 & attribute fo:widows { nonNegativeInteger }?
5370 & attribute fo:orphans { nonNegativeInteger }?
5371 & attribute style:tab-stop-distance { nonNegativeLength }?
5372 & attribute fo:hyphenation-keep { "auto" | "page" }?
5373 & attribute fo:hyphenation-ladder-count {
5374 "no-limit" | positiveInteger
5375 }?
5376 & attribute style:register-true { boolean }?
5377 & common-horizontal-margin-attlist
5378 & attribute fo:text-indent { length | percent }?
5379 & attribute style:auto-text-indent { boolean }?
5380 & common-vertical-margin-attlist
5381 & common-margin-attlist
5382 & common-break-attlist
5383 & common-background-color-attlist
5384 & common-border-attlist
5385 & common-border-line-width-attlist
5386 & attribute style:join-border { boolean }?
5387 & common-padding-attlist
5388 & common-shadow-attlist
5389 & common-keep-with-next-attlist
5390 & attribute text:number-lines { boolean }?
5391 & attribute text:line-number { nonNegativeInteger }?
5392 & attribute style:text-autospace { "none" | "ideograph-alpha" }?
5393 & attribute style:punctuation-wrap { "simple" | "hanging" }?
5394 & attribute style:line-break { "normal" | "strict" }?
5395 & attribute style:vertical-align {
5396 "top" | "middle" | "bottom" | "auto" | "baseline"
5397 }?
5398 & common-writing-mode-attlist
5399 & attribute style:writing-mode-automatic { boolean }?
5400 & attribute style:snap-to-layout-grid { boolean }?
5401 & common-page-number-attlist
5402 & common-background-transparency-attlist
5403common-text-align =
5404 attribute fo:text-align {
5405 "start" | "end" | "left" | "right" | "center" | "justify"
5406 }?
5407style-paragraph-properties-elements =
5408 style-tab-stops & style-drop-cap & style-background-image
5409style-tab-stops = element style:tab-stops { style-tab-stop* }?
5410style-tab-stop =
5411 element style:tab-stop { style-tab-stop-attlist, empty }
5412style-tab-stop-attlist =
5413 attribute style:position { length }
5414 & (attribute style:type { "left" | "center" | "right" }?
5415 | (attribute style:type { "char" },
5416 style-tab-stop-char-attlist))
5417 & attribute style:leader-type { lineType }?
5418 & attribute style:leader-style { lineStyle }?
5419 & attribute style:leader-width { lineWidth }?
5420 & attribute style:leader-color { "font-color" | color }?
5421 & attribute style:leader-text { character }?
5422 & attribute style:leader-text-style { styleNameRef }?
5423style-tab-stop-char-attlist = attribute style:char { character }
5424style-drop-cap =
5425 element style:drop-cap { style-drop-cap-attlist, empty }?
5426style-drop-cap-attlist =
5427 attribute style:length { "word" | positiveInteger }?
5428 & attribute style:lines { positiveInteger }?
5429 & attribute style:distance { length }?
5430 & attribute style:style-name { styleNameRef }?
5431common-horizontal-margin-attlist =
5432 attribute fo:margin-left { length | percent }?,
5433 attribute fo:margin-right { length | percent }?
5434common-vertical-margin-attlist =
5435 attribute fo:margin-top { nonNegativeLength | percent }?,
5436 attribute fo:margin-bottom { nonNegativeLength | percent }?
5437common-margin-attlist =
5438 attribute fo:margin { nonNegativeLength | percent }?
5439common-break-attlist =
5440 attribute fo:break-before { "auto" | "column" | "page" }?,
5441 attribute fo:break-after { "auto" | "column" | "page" }?
5442common-background-color-attlist =
5443 attribute fo:background-color { "transparent" | color }?
5444style-background-image =
5445 element style:background-image {
5446 style-background-image-attlist,
5447 (common-draw-data-attlist | office-binary-data | empty)
5448 }?
5449style-background-image-attlist =
5450 attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
5451 & attribute style:position {
5452 "left"
5453 | "center"
5454 | "right"
5455 | "top"
5456 | "bottom"
5457 | list { horiBackPos, vertBackPos }
5458 | list { vertBackPos, horiBackPos }
5459 }?
5460 & attribute style:filter-name { \string }?
5461 & attribute draw:opacity { zeroToHundredPercent }?
5462horiBackPos = "left" | "center" | "right"
5463vertBackPos = "top" | "center" | "bottom"
5464common-border-attlist =
5465 attribute fo:border { \string }?,
5466 attribute fo:border-top { \string }?,
5467 attribute fo:border-bottom { \string }?,
5468 attribute fo:border-left { \string }?,
5469 attribute fo:border-right { \string }?
5470common-border-line-width-attlist =
5471 attribute style:border-line-width { borderWidths }?,
5472 attribute style:border-line-width-top { borderWidths }?,
5473 attribute style:border-line-width-bottom { borderWidths }?,
5474 attribute style:border-line-width-left { borderWidths }?,
5475 attribute style:border-line-width-right { borderWidths }?
5476borderWidths = list { positiveLength, positiveLength, positiveLength }
5477common-padding-attlist =
5478 attribute fo:padding { nonNegativeLength }?,
5479 attribute fo:padding-top { nonNegativeLength }?,
5480 attribute fo:padding-bottom { nonNegativeLength }?,
5481 attribute fo:padding-left { nonNegativeLength }?,
5482 attribute fo:padding-right { nonNegativeLength }?
5483common-shadow-attlist = attribute style:shadow { shadowType }?
5484common-keep-with-next-attlist =
5485 attribute fo:keep-with-next { "auto" | "always" }?
5486common-writing-mode-attlist =
5487 attribute style:writing-mode {
5488 "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page"
5489 }?
5490common-page-number-attlist =
5491 attribute style:page-number { positiveInteger | "auto" }?
5492common-background-transparency-attlist =
5493 attribute style:background-transparency { zeroToHundredPercent }?
5494style-ruby-properties =
5495 element style:ruby-properties { style-ruby-properties-content-strict }
5496style-ruby-properties-content-strict =
5497 style-ruby-properties-attlist, style-ruby-properties-elements
5498style-ruby-properties-elements = empty
5499style-ruby-properties-attlist =
5500 attribute style:ruby-position { "above" | "below" }?
5501 & attribute style:ruby-align {
5502 "left"
5503 | "center"
5504 | "right"
5505 | "distribute-letter"
5506 | "distribute-space"
5507 }?
5508style-section-properties =
5509 element style:section-properties {
5510 style-section-properties-content-strict
5511 }
5512style-section-properties-content-strict =
5513 style-section-properties-attlist, style-section-properties-elements
5514style-section-properties-attlist =
5515 common-background-color-attlist
5516 & common-horizontal-margin-attlist
5517 & attribute style:protect { boolean }?
5518 & common-editable-attlist
5519 & attribute text:dont-balance-text-columns { boolean }?
5520 & common-writing-mode-attlist
5521style-section-properties-elements =
5522 style-background-image & style-columns & text-notes-configuration*
5523style-columns =
5524 element style:columns {
5525 style-columns-attlist, style-column-sep?, style-column*
5526 }?
5527style-columns-attlist =
5528 attribute fo:column-count { positiveInteger }
5529 & attribute fo:column-gap { length }?
5530style-column = element style:column { style-column-attlist }
5531style-column-attlist =
5532 attribute style:rel-width { relativeLength }
5533 & attribute fo:start-indent { length }?
5534 & attribute fo:end-indent { length }?
5535 & attribute fo:space-before { length }?
5536 & attribute fo:space-after { length }?
5537style-column-sep = element style:column-sep { style-column-sep-attlist }
5538style-column-sep-attlist =
5539 attribute style:style {
5540 "none" | "solid" | "dotted" | "dashed" | "dot-dashed"
5541 }?
5542 & attribute style:width { length }
5543 & attribute style:height { zeroToHundredPercent }?
5544 & attribute style:vertical-align { "top" | "middle" | "bottom" }?
5545 & attribute style:color { color }?
5546style-table-properties =
5547 element style:table-properties {
5548 style-table-properties-content-strict
5549 }
5550style-table-properties-content-strict =
5551 style-table-properties-attlist, style-table-properties-elements
5552style-table-properties-attlist =
5553 attribute style:width { positiveLength }?
5554 & attribute style:rel-width { percent }?
5555 & attribute table:align { "left" | "center" | "right" | "margins" }?
5556 & common-horizontal-margin-attlist
5557 & common-vertical-margin-attlist
5558 & common-margin-attlist
5559 & common-page-number-attlist
5560 & common-break-attlist
5561 & common-background-color-attlist
5562 & common-shadow-attlist
5563 & common-keep-with-next-attlist
5564 & attribute style:may-break-between-rows { boolean }?
5565 & attribute table:border-model { "collapsing" | "separating" }?
5566 & common-writing-mode-attlist
5567 & attribute table:display { boolean }?
5568style-table-properties-elements = style-background-image
5569style-table-column-properties =
5570 element style:table-column-properties {
5571 style-table-column-properties-content-strict
5572 }
5573style-table-column-properties-content-strict =
5574 style-table-column-properties-attlist,
5575 style-table-column-properties-elements
5576style-table-column-properties-elements = empty
5577style-table-column-properties-attlist =
5578 attribute style:column-width { positiveLength }?
5579 & attribute style:rel-column-width { relativeLength }?
5580 & attribute style:use-optimal-column-width { boolean }?
5581 & common-break-attlist
5582style-table-row-properties =
5583 element style:table-row-properties {
5584 style-table-row-properties-content-strict
5585 }
5586style-table-row-properties-content-strict =
5587 style-table-row-properties-attlist,
5588 style-table-row-properties-elements
5589style-table-row-properties-attlist =
5590 attribute style:row-height { positiveLength }?
5591 & attribute style:min-row-height { nonNegativeLength }?
5592 & attribute style:use-optimal-row-height { boolean }?
5593 & common-background-color-attlist
5594 & common-break-attlist
5595 & attribute fo:keep-together { "auto" | "always" }?
5596style-table-row-properties-elements = style-background-image
5597style-table-cell-properties =
5598 element style:table-cell-properties {
5599 style-table-cell-properties-content-strict
5600 }
5601style-table-cell-properties-content-strict =
5602 style-table-cell-properties-attlist,
5603 style-table-cell-properties-elements
5604style-table-cell-properties-attlist =
5605 attribute style:vertical-align {
5606 "top" | "middle" | "bottom" | "automatic"
5607 }?
5608 & attribute style:text-align-source { "fix" | "value-type" }?
5609 & common-style-direction-attlist
5610 & attribute style:glyph-orientation-vertical {
5611 "auto" | "0" | "0deg" | "0rad" | "0grad"
5612 }?
5613 & common-writing-mode-attlist
5614 & common-shadow-attlist
5615 & common-background-color-attlist
5616 & common-border-attlist
5617 & attribute style:diagonal-tl-br { \string }?
5618 & attribute style:diagonal-tl-br-widths { borderWidths }?
5619 & attribute style:diagonal-bl-tr { \string }?
5620 & attribute style:diagonal-bl-tr-widths { borderWidths }?
5621 & common-border-line-width-attlist
5622 & common-padding-attlist
5623 & attribute fo:wrap-option { "no-wrap" | "wrap" }?
5624 & common-rotation-angle-attlist
5625 & attribute style:rotation-align {
5626 "none" | "bottom" | "top" | "center"
5627 }?
5628 & attribute style:cell-protect {
5629 "none"
5630 | "hidden-and-protected"
5631 | list { ("protected" | "formula-hidden")+ }
5632 }?
5633 & attribute style:print-content { boolean }?
5634 & attribute style:decimal-places { nonNegativeInteger }?
5635 & attribute style:repeat-content { boolean }?
5636 & attribute style:shrink-to-fit { boolean }?
5637common-style-direction-attlist =
5638 attribute style:direction { "ltr" | "ttb" }?
5639style-table-cell-properties-elements = style-background-image
5640common-rotation-angle-attlist =
5641 attribute style:rotation-angle { angle }?
5642style-list-level-properties =
5643 element style:list-level-properties {
5644 style-list-level-properties-content-strict
5645 }
5646style-list-level-properties-content-strict =
5647 style-list-level-properties-attlist,
5648 style-list-level-properties-elements
5649style-list-level-properties-attlist =
5650 common-text-align
5651 & attribute text:space-before { length }?
5652 & attribute text:min-label-width { nonNegativeLength }?
5653 & attribute text:min-label-distance { nonNegativeLength }?
5654 & attribute style:font-name { \string }?
5655 & attribute fo:width { positiveLength }?
5656 & attribute fo:height { positiveLength }?
5657 & common-vertical-rel-attlist
5658 & common-vertical-pos-attlist
5659 & attribute text:list-level-position-and-space-mode {
5660 "label-width-and-position" | "label-alignment"
5661 }?
5662style-list-level-properties-elements = style-list-level-label-alignment
5663style-list-level-label-alignment =
5664 element style:list-level-label-alignment {
5665 style-list-level-label-alignment-attlist, empty
5666 }?
5667style-list-level-label-alignment-attlist =
5668 attribute text:label-followed-by { "listtab" | "space" | "nothing" }
5669 & attribute text:list-tab-stop-position { length }?
5670 & attribute fo:text-indent { length }?
5671 & attribute fo:margin-left { length }?
5672style-graphic-properties-attlist =
5673 attribute draw:stroke { "none" | "dash" | "solid" }?
5674 & attribute draw:stroke-dash { styleNameRef }?
5675 & attribute draw:stroke-dash-names { styleNameRefs }?
5676 & attribute svg:stroke-width { length }?
5677 & attribute svg:stroke-color { color }?
5678 & attribute draw:marker-start { styleNameRef }?
5679 & attribute draw:marker-end { styleNameRef }?
5680 & attribute draw:marker-start-width { length }?
5681 & attribute draw:marker-end-width { length }?
5682 & attribute draw:marker-start-center { boolean }?
5683 & attribute draw:marker-end-center { boolean }?
5684 & attribute svg:stroke-opacity {
5685 xsd:double { minInclusive = "0" maxInclusive = "1" }
5686 | zeroToHundredPercent
5687 }?
5688 & attribute draw:stroke-linejoin {
5689 "miter" | "round" | "bevel" | "middle" | "none"
5690 }?
5691 & attribute svg:stroke-linecap { "butt" | "square" | "round" }?
5692 & attribute draw:symbol-color { color }?
5693 & attribute text:animation {
5694 "none" | "scroll" | "alternate" | "slide"
5695 }?
5696 & attribute text:animation-direction {
5697 "left" | "right" | "up" | "down"
5698 }?
5699 & attribute text:animation-start-inside { boolean }?
5700 & attribute text:animation-stop-inside { boolean }?
5701 & attribute text:animation-repeat { nonNegativeInteger }?
5702 & attribute text:animation-delay { duration }?
5703 & attribute text:animation-steps { length }?
5704 & attribute draw:auto-grow-width { boolean }?
5705 & attribute draw:auto-grow-height { boolean }?
5706 & attribute draw:fit-to-size { boolean }?
5707 & attribute draw:fit-to-contour { boolean }?
5708 & attribute draw:textarea-vertical-align {
5709 "top" | "middle" | "bottom" | "justify"
5710 }?
5711 & attribute draw:textarea-horizontal-align {
5712 "left" | "center" | "right" | "justify"
5713 }?
5714 & attribute fo:wrap-option { "no-wrap" | "wrap" }?
5715 & attribute style:shrink-to-fit { boolean }?
5716 & attribute draw:color-mode {
5717 "greyscale" | "mono" | "watermark" | "standard"
5718 }?
5719 & attribute draw:color-inversion { boolean }?
5720 & attribute draw:luminance { zeroToHundredPercent }?
5721 & attribute draw:contrast { percent }?
5722 & attribute draw:gamma { percent }?
5723 & attribute draw:red { signedZeroToHundredPercent }?
5724 & attribute draw:green { signedZeroToHundredPercent }?
5725 & attribute draw:blue { signedZeroToHundredPercent }?
5726 & attribute draw:image-opacity { zeroToHundredPercent }?
5727 & attribute draw:shadow { "visible" | "hidden" }?
5728 & attribute draw:shadow-offset-x { length }?
5729 & attribute draw:shadow-offset-y { length }?
5730 & attribute draw:shadow-color { color }?
5731 & attribute draw:shadow-opacity { zeroToHundredPercent }?
5732 & attribute draw:start-line-spacing-horizontal { distance }?
5733 & attribute draw:start-line-spacing-vertical { distance }?
5734 & attribute draw:end-line-spacing-horizontal { distance }?
5735 & attribute draw:end-line-spacing-vertical { distance }?
5736 & attribute draw:line-distance { distance }?
5737 & attribute draw:guide-overhang { length }?
5738 & attribute draw:guide-distance { distance }?
5739 & attribute draw:start-guide { length }?
5740 & attribute draw:end-guide { length }?
5741 & attribute draw:placing { "below" | "above" }?
5742 & attribute draw:parallel { boolean }?
5743 & attribute draw:measure-align {
5744 "automatic" | "left-outside" | "inside" | "right-outside"
5745 }?
5746 & attribute draw:measure-vertical-align {
5747 "automatic" | "above" | "below" | "center"
5748 }?
5749 & attribute draw:unit {
5750 "automatic"
5751 | "mm"
5752 | "cm"
5753 | "m"
5754 | "km"
5755 | "pt"
5756 | "pc"
5757 | "inch"
5758 | "ft"
5759 | "mi"
5760 }?
5761 & attribute draw:show-unit { boolean }?
5762 & attribute draw:decimal-places { nonNegativeInteger }?
5763 & attribute draw:caption-type {
5764 "straight-line" | "angled-line" | "angled-connector-line"
5765 }?
5766 & attribute draw:caption-angle-type { "fixed" | "free" }?
5767 & attribute draw:caption-angle { angle }?
5768 & attribute draw:caption-gap { distance }?
5769 & attribute draw:caption-escape-direction {
5770 "horizontal" | "vertical" | "auto"
5771 }?
5772 & attribute draw:caption-escape { length | percent }?
5773 & attribute draw:caption-line-length { length }?
5774 & attribute draw:caption-fit-line-length { boolean }?
5775 & attribute dr3d:horizontal-segments { nonNegativeInteger }?
5776 & attribute dr3d:vertical-segments { nonNegativeInteger }?
5777 & attribute dr3d:edge-rounding { percent }?
5778 & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
5779 & attribute dr3d:back-scale { percent }?
5780 & attribute dr3d:depth { length }?
5781 & attribute dr3d:backface-culling { "enabled" | "disabled" }?
5782 & attribute dr3d:end-angle { angle }?
5783 & attribute dr3d:close-front { boolean }?
5784 & attribute dr3d:close-back { boolean }?
5785 & attribute dr3d:lighting-mode { "standard" | "double-sided" }?
5786 & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
5787 & attribute dr3d:normals-direction { "normal" | "inverse" }?
5788 & attribute dr3d:texture-generation-mode-x {
5789 "object" | "parallel" | "sphere"
5790 }?
5791 & attribute dr3d:texture-generation-mode-y {
5792 "object" | "parallel" | "sphere"
5793 }?
5794 & attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }?
5795 & attribute dr3d:texture-filter { "enabled" | "disabled" }?
5796 & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
5797 & attribute dr3d:ambient-color { color }?
5798 & attribute dr3d:emissive-color { color }?
5799 & attribute dr3d:specular-color { color }?
5800 & attribute dr3d:diffuse-color { color }?
5801 & attribute dr3d:shininess { percent }?
5802 & attribute dr3d:shadow { "visible" | "hidden" }?
5803 & common-draw-rel-size-attlist
5804 & attribute fo:min-width { length | percent }?
5805 & attribute fo:min-height { length | percent }?
5806 & attribute fo:max-height { length | percent }?
5807 & attribute fo:max-width { length | percent }?
5808 & common-horizontal-margin-attlist
5809 & common-vertical-margin-attlist
5810 & common-margin-attlist
5811 & attribute style:print-content { boolean }?
5812 & attribute style:protect {
5813 "none"
5814 | list { ("content" | "position" | "size")+ }
5815 }?
5816 & attribute style:horizontal-pos {
5817 "left"
5818 | "center"
5819 | "right"
5820 | "from-left"
5821 | "inside"
5822 | "outside"
5823 | "from-inside"
5824 }?
5825 & attribute svg:x { coordinate }?
5826 & attribute style:horizontal-rel {
5827 "page"
5828 | "page-content"
5829 | "page-start-margin"
5830 | "page-end-margin"
5831 | "frame"
5832 | "frame-content"
5833 | "frame-start-margin"
5834 | "frame-end-margin"
5835 | "paragraph"
5836 | "paragraph-content"
5837 | "paragraph-start-margin"
5838 | "paragraph-end-margin"
5839 | "char"
5840 }?
5841 & common-vertical-pos-attlist
5842 & common-vertical-rel-attlist
5843 & common-text-anchor-attlist
5844 & common-border-attlist
5845 & common-border-line-width-attlist
5846 & common-padding-attlist
5847 & common-shadow-attlist
5848 & common-background-color-attlist
5849 & common-background-transparency-attlist
5850 & common-editable-attlist
5851 & attribute style:wrap {
5852 "none"
5853 | "left"
5854 | "right"
5855 | "parallel"
5856 | "dynamic"
5857 | "run-through"
5858 | "biggest"
5859 }?
5860 & attribute style:wrap-dynamic-threshold { nonNegativeLength }?
5861 & attribute style:number-wrapped-paragraphs {
5862 "no-limit" | positiveInteger
5863 }?
5864 & attribute style:wrap-contour { boolean }?
5865 & attribute style:wrap-contour-mode { "full" | "outside" }?
5866 & attribute style:run-through { "foreground" | "background" }?
5867 & attribute style:flow-with-text { boolean }?
5868 & attribute style:overflow-behavior {
5869 "clip" | "auto-create-new-frame"
5870 }?
5871 & attribute style:mirror {
5872 "none"
5873 | "vertical"
5874 | horizontal-mirror
5875 | list { "vertical", horizontal-mirror }
5876 | list { horizontal-mirror, "vertical" }
5877 }?
5878 & attribute fo:clip { "auto" | clipShape }?
5879 & attribute draw:wrap-influence-on-position {
5880 "iterative" | "once-concurrent" | "once-successive"
5881 }?
5882 & common-writing-mode-attlist
5883 & attribute draw:frame-display-scrollbar { boolean }?
5884 & attribute draw:frame-display-border { boolean }?
5885 & attribute draw:frame-margin-horizontal { nonNegativePixelLength }?
5886 & attribute draw:frame-margin-vertical { nonNegativePixelLength }?
5887 & attribute draw:visible-area-left { nonNegativeLength }?
5888 & attribute draw:visible-area-top { nonNegativeLength }?
5889 & attribute draw:visible-area-width { positiveLength }?
5890 & attribute draw:visible-area-height { positiveLength }?
5891 & attribute draw:draw-aspect {
5892 "content" | "thumbnail" | "icon" | "print-view"
5893 }?
5894 & attribute draw:ole-draw-aspect { nonNegativeInteger }?
5895style-graphic-fill-properties-attlist =
5896 attribute draw:fill {
5897 "none" | "solid" | "bitmap" | "gradient" | "hatch"
5898 }?
5899 & attribute draw:fill-color { color }?
5900 & attribute draw:secondary-fill-color { color }?
5901 & attribute draw:fill-gradient-name { styleNameRef }?
5902 & attribute draw:gradient-step-count { nonNegativeInteger }?
5903 & attribute draw:fill-hatch-name { styleNameRef }?
5904 & attribute draw:fill-hatch-solid { boolean }?
5905 & attribute draw:fill-image-name { styleNameRef }?
5906 & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
5907 & attribute draw:fill-image-width { length | percent }?
5908 & attribute draw:fill-image-height { length | percent }?
5909 & attribute draw:fill-image-ref-point-x { percent }?
5910 & attribute draw:fill-image-ref-point-y { percent }?
5911 & attribute draw:fill-image-ref-point {
5912 "top-left"
5913 | "top"
5914 | "top-right"
5915 | "left"
5916 | "center"
5917 | "right"
5918 | "bottom-left"
5919 | "bottom"
5920 | "bottom-right"
5921 }?
5922 & attribute draw:tile-repeat-offset {
5923 list { zeroToHundredPercent, ("horizontal" | "vertical") }
5924 }?
5925 & attribute draw:opacity { zeroToHundredPercent }?
5926 & attribute draw:opacity-name { styleNameRef }?
5927 & attribute svg:fill-rule { "nonzero" | "evenodd" }?
5928style-graphic-properties-elements =
5929 text-list-style? & style-background-image & style-columns
5930common-vertical-pos-attlist =
5931 attribute style:vertical-pos {
5932 "top" | "middle" | "bottom" | "from-top" | "below"
5933 }?,
5934 attribute svg:y { coordinate }?
5935common-vertical-rel-attlist =
5936 attribute style:vertical-rel {
5937 "page"
5938 | "page-content"
5939 | "frame"
5940 | "frame-content"
5941 | "paragraph"
5942 | "paragraph-content"
5943 | "char"
5944 | "line"
5945 | "baseline"
5946 | "text"
5947 }?
5948common-editable-attlist = attribute style:editable { boolean }?
5949horizontal-mirror =
5950 "horizontal" | "horizontal-on-odd" | "horizontal-on-even"
5951clipShape =
5952 xsd:string {
5953 pattern =
5954 "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)"
5955 }
5956nonNegativePixelLength =
5957 xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" }
5958style-chart-properties =
5959 element style:chart-properties {
5960 style-chart-properties-content-strict
5961 }
5962style-chart-properties-content-strict =
5963 style-chart-properties-attlist, style-chart-properties-elements
5964style-chart-properties-elements = empty
5965style-chart-properties-attlist =
5966 attribute chart:scale-text { boolean }?
5967 & attribute chart:three-dimensional { boolean }?
5968 & attribute chart:deep { boolean }?
5969 & attribute chart:right-angled-axes { boolean }?
5970 & (attribute chart:symbol-type { "none" }
5971 | attribute chart:symbol-type { "automatic" }
5972 | (attribute chart:symbol-type { "named-symbol" },
5973 attribute chart:symbol-name {
5974 "square"
5975 | "diamond"
5976 | "arrow-down"
5977 | "arrow-up"
5978 | "arrow-right"
5979 | "arrow-left"
5980 | "bow-tie"
5981 | "hourglass"
5982 | "circle"
5983 | "star"
5984 | "x"
5985 | "plus"
5986 | "asterisk"
5987 | "horizontal-bar"
5988 | "vertical-bar"
5989 })
5990 | (attribute chart:symbol-type { "image" },
5991 element chart:symbol-image {
5992 attribute xlink:href { anyIRI }
5993 })
5994 | empty)
5995 & attribute chart:symbol-width { nonNegativeLength }?
5996 & attribute chart:symbol-height { nonNegativeLength }?
5997 & attribute chart:sort-by-x-values { boolean }?
5998 & attribute chart:vertical { boolean }?
5999 & attribute chart:connect-bars { boolean }?
6000 & attribute chart:gap-width { integer }?
6001 & attribute chart:overlap { integer }?
6002 & attribute chart:group-bars-per-axis { boolean }?
6003 & attribute chart:japanese-candle-stick { boolean }?
6004 & attribute chart:interpolation {
6005 "none" | "cubic-spline" | "b-spline"
6006 }?
6007 & attribute chart:spline-order { positiveInteger }?
6008 & attribute chart:spline-resolution { positiveInteger }?
6009 & attribute chart:pie-offset { nonNegativeInteger }?
6010 & attribute chart:angle-offset { angle }?
6011 & attribute chart:hole-size { percent }?
6012 & attribute chart:lines { boolean }?
6013 & attribute chart:solid-type {
6014 "cuboid" | "cylinder" | "cone" | "pyramid"
6015 }?
6016 & attribute chart:stacked { boolean }?
6017 & attribute chart:percentage { boolean }?
6018 & attribute chart:treat-empty-cells {
6019 "use-zero" | "leave-gap" | "ignore"
6020 }?
6021 & attribute chart:link-data-style-to-source { boolean }?
6022 & attribute chart:logarithmic { boolean }?
6023 & attribute chart:maximum { double }?
6024 & attribute chart:minimum { double }?
6025 & attribute chart:origin { double }?
6026 & attribute chart:interval-major { double }?
6027 & attribute chart:interval-minor-divisor { positiveInteger }?
6028 & attribute chart:tick-marks-major-inner { boolean }?
6029 & attribute chart:tick-marks-major-outer { boolean }?
6030 & attribute chart:tick-marks-minor-inner { boolean }?
6031 & attribute chart:tick-marks-minor-outer { boolean }?
6032 & attribute chart:reverse-direction { boolean }?
6033 & attribute chart:display-label { boolean }?
6034 & attribute chart:text-overlap { boolean }?
6035 & attribute text:line-break { boolean }?
6036 & attribute chart:label-arrangement {
6037 "side-by-side" | "stagger-even" | "stagger-odd"
6038 }?
6039 & common-style-direction-attlist
6040 & common-rotation-angle-attlist
6041 & attribute chart:data-label-number {
6042 "none" | "value" | "percentage" | "value-and-percentage"
6043 }?
6044 & attribute chart:data-label-text { boolean }?
6045 & attribute chart:data-label-symbol { boolean }?
6046 & element chart:label-separator { text-p }?
6047 & attribute chart:label-position { labelPositions }?
6048 & attribute chart:label-position-negative { labelPositions }?
6049 & attribute chart:visible { boolean }?
6050 & attribute chart:auto-position { boolean }?
6051 & attribute chart:auto-size { boolean }?
6052 & attribute chart:mean-value { boolean }?
6053 & attribute chart:error-category {
6054 "none"
6055 | "variance"
6056 | "standard-deviation"
6057 | "percentage"
6058 | "error-margin"
6059 | "constant"
6060 | "standard-error"
6061 | "cell-range"
6062 }?
6063 & attribute chart:error-percentage { double }?
6064 & attribute chart:error-margin { double }?
6065 & attribute chart:error-lower-limit { double }?
6066 & attribute chart:error-upper-limit { double }?
6067 & attribute chart:error-upper-indicator { boolean }?
6068 & attribute chart:error-lower-indicator { boolean }?
6069 & attribute chart:error-lower-range { cellRangeAddressList }?
6070 & attribute chart:error-upper-range { cellRangeAddressList }?
6071 & attribute chart:series-source { "columns" | "rows" }?
6072 & attribute chart:regression-type {
6073 "none" | "linear" | "logarithmic" | "exponential" | "power"
6074 }?
6075 & attribute chart:axis-position { "start" | "end" | double }?
6076 & attribute chart:axis-label-position {
6077 "near-axis"
6078 | "near-axis-other-side"
6079 | "outside-start"
6080 | "outside-end"
6081 }?
6082 & attribute chart:tick-mark-position {
6083 "at-labels" | "at-axis" | "at-labels-and-axis"
6084 }?
6085 & attribute chart:include-hidden-cells { boolean }?
6086labelPositions =
6087 "avoid-overlap"
6088 | "center"
6089 | "top"
6090 | "top-right"
6091 | "right"
6092 | "bottom-right"
6093 | "bottom"
6094 | "bottom-left"
6095 | "left"
6096 | "top-left"
6097 | "inside"
6098 | "outside"
6099 | "near-origin"
6100style-drawing-page-properties-attlist =
6101 attribute presentation:transition-type {
6102 "manual" | "automatic" | "semi-automatic"
6103 }?
6104 & attribute presentation:transition-style {
6105 "none"
6106 | "fade-from-left"
6107 | "fade-from-top"
6108 | "fade-from-right"
6109 | "fade-from-bottom"
6110 | "fade-from-upperleft"
6111 | "fade-from-upperright"
6112 | "fade-from-lowerleft"
6113 | "fade-from-lowerright"
6114 | "move-from-left"
6115 | "move-from-top"
6116 | "move-from-right"
6117 | "move-from-bottom"
6118 | "move-from-upperleft"
6119 | "move-from-upperright"
6120 | "move-from-lowerleft"
6121 | "move-from-lowerright"
6122 | "uncover-to-left"
6123 | "uncover-to-top"
6124 | "uncover-to-right"
6125 | "uncover-to-bottom"
6126 | "uncover-to-upperleft"
6127 | "uncover-to-upperright"
6128 | "uncover-to-lowerleft"
6129 | "uncover-to-lowerright"
6130 | "fade-to-center"
6131 | "fade-from-center"
6132 | "vertical-stripes"
6133 | "horizontal-stripes"
6134 | "clockwise"
6135 | "counterclockwise"
6136 | "open-vertical"
6137 | "open-horizontal"
6138 | "close-vertical"
6139 | "close-horizontal"
6140 | "wavyline-from-left"
6141 | "wavyline-from-top"
6142 | "wavyline-from-right"
6143 | "wavyline-from-bottom"
6144 | "spiralin-left"
6145 | "spiralin-right"
6146 | "spiralout-left"
6147 | "spiralout-right"
6148 | "roll-from-top"
6149 | "roll-from-left"
6150 | "roll-from-right"
6151 | "roll-from-bottom"
6152 | "stretch-from-left"
6153 | "stretch-from-top"
6154 | "stretch-from-right"
6155 | "stretch-from-bottom"
6156 | "vertical-lines"
6157 | "horizontal-lines"
6158 | "dissolve"
6159 | "random"
6160 | "vertical-checkerboard"
6161 | "horizontal-checkerboard"
6162 | "interlocking-horizontal-left"
6163 | "interlocking-horizontal-right"
6164 | "interlocking-vertical-top"
6165 | "interlocking-vertical-bottom"
6166 | "fly-away"
6167 | "open"
6168 | "close"
6169 | "melt"
6170 }?
6171 & attribute presentation:transition-speed { presentationSpeeds }?
6172 & attribute smil:type { \string }?
6173 & attribute smil:subtype { \string }?
6174 & attribute smil:direction { "forward" | "reverse" }?
6175 & attribute smil:fadeColor { color }?
6176 & attribute presentation:duration { duration }?
6177 & attribute presentation:visibility { "visible" | "hidden" }?
6178 & attribute draw:background-size { "full" | "border" }?
6179 & attribute presentation:background-objects-visible { boolean }?
6180 & attribute presentation:background-visible { boolean }?
6181 & attribute presentation:display-header { boolean }?
6182 & attribute presentation:display-footer { boolean }?
6183 & attribute presentation:display-page-number { boolean }?
6184 & attribute presentation:display-date-time { boolean }?
6185style-drawing-page-properties-elements = presentation-sound?
6186\string = xsd:string
6187date = xsd:date
6188time = xsd:time
6189dateTime = xsd:dateTime
6190duration = xsd:duration
6191integer = xsd:integer
6192nonNegativeInteger = xsd:nonNegativeInteger
6193positiveInteger = xsd:positiveInteger
6194double = xsd:double
6195anyURI = xsd:anyURI
6196base64Binary = xsd:base64Binary
6197ID = xsd:ID
6198IDREF = xsd:IDREF
6199IDREFS = xsd:IDREFS
6200NCName = xsd:NCName
6201boolean = "true" | "false"
6202dateOrDateTime = xsd:date | xsd:dateTime
6203timeOrDateTime = xsd:time | xsd:dateTime
6204language = xsd:language
6205countryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" }
6206languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" }
6207scriptCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" }
6208character = xsd:string { length = "1" }
6209length =
6210 xsd:string {
6211 pattern =
6212 "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"
6213 }
6214nonNegativeLength =
6215 xsd:string {
6216 pattern =
6217 "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"
6218 }
6219positiveLength =
6220 xsd:string {
6221 pattern =
6222 "([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))"
6223 }
6224percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" }
6225zeroToHundredPercent =
6226 xsd:string {
6227 pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"
6228 }
6229signedZeroToHundredPercent =
6230 xsd:string {
6231 pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"
6232 }
6233relativeLength = xsd:string { pattern = "[0-9]+\*" }
6234coordinate = length
6235distance = length
6236color = xsd:string { pattern = "#[0-9a-fA-F]{6}" }
6237angle = xsd:string
6238CURIE =
6239 xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" }
6240CURIEs = list { CURIE+ }
6241SafeCURIE =
6242 xsd:string {
6243 pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]"
6244 minLength = "3"
6245 }
6246URIorSafeCURIE = anyURI | SafeCURIE
6247styleName = xsd:NCName
6248styleNameRef = xsd:NCName | empty
6249styleNameRefs = list { xsd:NCName* }
6250variableName = xsd:string
6251targetFrameName = "_self" | "_blank" | "_parent" | "_top" | \string
6252valueType =
6253 "float"
6254 | "time"
6255 | "date"
6256 | "percentage"
6257 | "currency"
6258 | "boolean"
6259 | "string"
6260points =
6261 xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" }
6262pathData = xsd:string
6263vector3D =
6264 xsd:string {
6265 pattern =
6266 "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)"
6267 }
6268namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }
6269anyIRI =
6270 xsd:anyURI
6271 >> dc:description [
6272 "An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3."
6273 ]
6274anyAttListOrElements =
6275 attribute * { text }*,
6276 anyElements
6277anyElements =
6278 element * {
6279 mixed { anyAttListOrElements }
6280 }*