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 }* 6281