|
From: <nma...@us...> - 2006-03-13 07:43:15
|
Revision: 18 Author: nmarkgraf Date: 2006-03-12 23:42:56 -0800 (Sun, 12 Mar 2006) ViewCVS: http://svn.sourceforge.net/opendocumentphp/?rev=18&view=rev Log Message: ----------- This is the first part of some new test methods. Now it tests if the produced manifest.xml is valid against the Relax NG schema. TODO: Make such Relax NG based tests for all the produced *.xml (like content.xml, styles.xml, ...,and for a whole single document). Modified Paths: -------------- poc/src/OpenDocumentManifestTest.php Added Paths: ----------- poc/etc/test/ poc/etc/test/OpenDocument-manifest-schema-v1.0-os.rng poc/etc/test/OpenDocument-schema-v1.0-os.rng Added: poc/etc/test/OpenDocument-manifest-schema-v1.0-os.rng =================================================================== --- poc/etc/test/OpenDocument-manifest-schema-v1.0-os.rng (rev 0) +++ poc/etc/test/OpenDocument-manifest-schema-v1.0-os.rng 2006-03-13 07:42:56 UTC (rev 18) @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + OASIS OpenDocument v1.0 + OASIS standard, 1 May 2005 + Relax-NG Manifest Schema + + $Id$ + + © 2002-2005 OASIS Open + © 1999-2005 Sun Microsystems, Inc. +--> + +<grammar + xmlns="http://relaxng.org/ns/structure/1.0" + + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + + xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"> +<define name="manifest"> + <element name="manifest:manifest"> + <oneOrMore> + <ref name="file-entry"/> + </oneOrMore> + </element> +</define> + +<start> + <choice> + <ref name="manifest"/> + </choice> +</start> +<define name="file-entry"> + <element name="manifest:file-entry"> + <ref name="file-entry-attlist"/> + <optional> + <ref name="encryption-data"/> + </optional> + </element> +</define> +<define name="file-entry-attlist" combine="interleave"> + <attribute name="manifest:full-path"> + <data type="string"/> + </attribute> +</define> +<define name="file-entry-attlist" combine="interleave"> + <optional> + <attribute name="manifest:size"> + <data type="nonNegativeInteger"/> + </attribute> + </optional> +</define> +<define name="file-entry-attlist" combine="interleave"> + <attribute name="manifest:media-type"> + <data type="string"/> + </attribute> +</define> +<define name="encryption-data"> + <element name="manifest:encryption-data"> + <ref name="encryption-data-attlist"/> + <ref name="algorithm"/> + <ref name="key-derivation"/> + </element> +</define> +<define name="encryption-data-attlist" combine="interleave"> + <attribute name="manifest:checksum-type"> + <data type="string"/> + </attribute> +</define> +<define name="encryption-data-attlist" combine="interleave"> + <attribute name="manifest:checksum"> + <data type="base64Binary"/> + </attribute> +</define> +<define name="algorithm"> + <element name="manifest:algorithm"> + <ref name="algorithm-attlist"/> + <empty/> + </element> +</define> +<define name="algorithm-attlist" combine="interleave"> + <attribute name="manifest:algorithm-name"> + <data type="string"/> + </attribute> +</define> +<define name="algorithm-attlist" combine="interleave"> + <attribute name="manifest:initialisation-vector"> + <data type="base64Binary"/> + </attribute> +</define> +<define name="key-derivation"> + <element name="manifest:key-derivation"> + <ref name="key-derivation-attlist"/> + <empty/> + </element> +</define> +<define name="key-derivation-attlist" combine="interleave"> + <attribute name="manifest:key-derivation-name"> + <data type="string"/> + </attribute> +</define> +<define name="key-derivation-attlist" combine="interleave"> + <attribute name="manifest:salt"> + <data type="base64Binary"/> + </attribute> +</define> +<define name="key-derivation-attlist" combine="interleave"> + <attribute name="manifest:iteration-count"> + <data type="nonNegativeInteger"/> + </attribute> +</define> +</grammar> Added: poc/etc/test/OpenDocument-schema-v1.0-os.rng =================================================================== --- poc/etc/test/OpenDocument-schema-v1.0-os.rng (rev 0) +++ poc/etc/test/OpenDocument-schema-v1.0-os.rng 2006-03-13 07:42:56 UTC (rev 18) @@ -0,0 +1,17593 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + OASIS OpenDocument v1.0 + OASIS Standard, 1 May 2005 + Relax-NG Schema + + $Id$ + + © 2002-2005 OASIS Open + © 1999-2005 Sun Microsystems, Inc. +--> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"> +<define name="office-process-content"> + <optional> + <attribute name="office:process-content" a:defaultValue="true"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<start> + <choice> + <ref name="office-document"/> + <ref name="office-document-content"/> + <ref name="office-document-styles"/> + <ref name="office-document-meta"/> + <ref name="office-document-settings"/> + </choice> +</start> +<define name="office-document"> + <element name="office:document"> + <ref name="office-document-attrs"/> + <ref name="office-document-common-attrs"/> + <ref name="office-meta"/> + <ref name="office-settings"/> + <ref name="office-scripts"/> + <ref name="office-font-face-decls"/> + <ref name="office-styles"/> + <ref name="office-automatic-styles"/> + <ref name="office-master-styles"/> + <ref name="office-body"/> + </element> +</define> +<define name="office-document-content"> + <element name="office:document-content"> + <ref name="office-document-common-attrs"/> + <ref name="office-scripts"/> + <ref name="office-font-face-decls"/> + <ref name="office-automatic-styles"/> + <ref name="office-body"/> + </element> +</define> +<define name="office-document-styles"> + <element name="office:document-styles"> + <ref name="office-document-common-attrs"/> + <ref name="office-font-face-decls"/> + <ref name="office-styles"/> + <ref name="office-automatic-styles"/> + <ref name="office-master-styles"/> + </element> +</define> +<define name="office-document-meta"> + <element name="office:document-meta"> + <ref name="office-document-common-attrs"/> + <ref name="office-meta"/> + </element> +</define> +<define name="office-document-settings"> + <element name="office:document-settings"> + <ref name="office-document-common-attrs"/> + <ref name="office-settings"/> + </element> +</define> +<define name="office-document-common-attrs" combine="interleave"> + <optional> + <attribute name="office:version"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="office-document-attrs" combine="interleave"> + <attribute name="office:mimetype"> + <ref name="string"/> + </attribute> +</define> +<define name="office-meta"> + <optional> + <element name="office:meta"> + <ref name="office-meta-content"/> + </element> + </optional> +</define> + +<define name="office-meta-content"> + <ref name="anyElements"/> +</define> + +<define name="office-meta-content-strict"> + <zeroOrMore> + <ref name="office-meta-data"/> + </zeroOrMore> +</define> +<define name="office-body"> + <element name="office:body"> + <ref name="office-body-content"/> + </element> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:text"> + <ref name="office-text-attlist"/> + <ref name="office-text-content-prelude"/> + <zeroOrMore> + <ref name="office-text-content-main"/> + </zeroOrMore> + <ref name="office-text-content-epilogue"/> + </element> +</define> +<define name="office-text-content-prelude"> + <ref name="office-forms"/> + <ref name="text-tracked-changes"/> + <ref name="text-decls"/> + <ref name="table-decls"/> +</define> +<define name="office-text-content-main"> + <choice> + <zeroOrMore> + <ref name="text-content"/> + </zeroOrMore> + <group> + <ref name="text-page-sequence"/> + <zeroOrMore> + <choice> + <ref name="draw-a"/> + <ref name="shape"/> + </choice> + </zeroOrMore> + </group> + </choice> +</define> + +<define name="text-content"> + <choice> + <ref name="text-h"/> + <ref name="text-p"/> + <ref name="text-list"/> + <ref name="text-numbered-paragraph"/> + <ref name="table-table"/> + <ref name="draw-a"/> + <ref name="text-section"/> + <ref name="text-table-of-content"/> + <ref name="text-illustration-index"/> + <ref name="text-table-index"/> + <ref name="text-object-index"/> + <ref name="text-user-index"/> + <ref name="text-alphabetical-index"/> + <ref name="text-bibliography"/> + <ref name="shape"/> + <ref name="change-marks"/> + </choice> +</define> +<define name="office-text-content-epilogue"> + <ref name="table-functions"/> +</define> +<define name="office-text-attlist" combine="interleave"> + <optional> + <attribute name="text:global" a:defaultValue="false"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:drawing"> + <ref name="office-drawing-attlist"/> + <ref name="office-drawing-content-prelude"/> + <ref name="office-drawing-content-main"/> + <ref name="office-drawing-content-epilogue"/> + </element> +</define> + +<define name="office-drawing-attlist"> + <empty/> +</define> +<define name="office-drawing-content-prelude"> + <ref name="text-decls"/> + <ref name="table-decls"/> +</define> +<define name="office-drawing-content-main"> + <zeroOrMore> + <ref name="draw-page"/> + </zeroOrMore> +</define> +<define name="office-drawing-content-epilogue"> + <ref name="table-functions"/> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:presentation"> + <ref name="office-presentation-attlist"/> + <ref name="office-presentation-content-prelude"/> + <ref name="office-presentation-content-main"/> + <ref name="office-presentation-content-epilogue"/> + </element> +</define> + +<define name="office-presentation-attlist"> + <empty/> +</define> +<define name="office-presentation-content-prelude"> + <ref name="text-decls"/> + <ref name="table-decls"/> + <ref name="presentation-decls"/> +</define> +<define name="office-presentation-content-main"> + <zeroOrMore> + <ref name="draw-page"/> + </zeroOrMore> +</define> +<define name="office-presentation-content-epilogue"> + <ref name="presentation-settings"/> + <ref name="table-functions"/> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:spreadsheet"> + <ref name="office-spreadsheet-attlist"/> + <ref name="office-spreadsheet-content-prelude"/> + <ref name="office-spreadsheet-content-main"/> + <ref name="office-spreadsheet-content-epilogue"/> + </element> +</define> +<define name="office-spreadsheet-content-prelude"> + <optional> + <ref name="table-tracked-changes"/> + </optional> + <ref name="text-decls"/> + <ref name="table-decls"/> +</define> + +<define name="table-decls"> + <optional> + <ref name="table-calculation-settings"/> + </optional> + <optional> + <ref name="table-content-validations"/> + </optional> + <optional> + <ref name="table-label-ranges"/> + </optional> +</define> +<define name="office-spreadsheet-content-main"> + <zeroOrMore> + <ref name="table-table"/> + </zeroOrMore> +</define> +<define name="office-spreadsheet-content-epilogue"> + <ref name="table-functions"/> +</define> + +<define name="table-functions"> + <optional> + <ref name="table-named-expressions"/> + </optional> + <optional> + <ref name="table-database-ranges"/> + </optional> + <optional> + <ref name="table-data-pilot-tables"/> + </optional> + <optional> + <ref name="table-consolidation"/> + </optional> + <optional> + <ref name="table-dde-links"/> + </optional> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:chart"> + <ref name="office-chart-attlist"/> + <ref name="office-chart-content-prelude"/> + <ref name="office-chart-content-main"/> + <ref name="office-chart-content-epilogue"/> + </element> +</define> + +<define name="office-chart-attlist"> + <empty/> +</define> +<define name="office-chart-content-prelude"> + <ref name="text-decls"/> + <ref name="table-decls"/> +</define> +<define name="office-chart-content-main"> + <ref name="chart-chart"/> +</define> +<define name="office-chart-content-epilogue"> + <ref name="table-functions"/> +</define> +<define name="office-body-content" combine="choice"> + <element name="office:image"> + <ref name="office-image-attlist"/> + <ref name="office-image-content-prelude"/> + <ref name="office-image-content-main"/> + <ref name="office-image-content-epilogue"/> + </element> +</define> + +<define name="office-image-attlist"> + <empty/> +</define> +<define name="office-image-content-prelude"> + <empty/> +</define> +<define name="office-image-content-main"> + <ref name="draw-frame"/> +</define> +<define name="office-image-content-epilogue"> + <empty/> +</define> +<define name="office-settings"> + <optional> + <element name="office:settings"> + <oneOrMore> + <ref name="config-config-item-set"/> + </oneOrMore> + </element> + </optional> +</define> +<define name="config-config-item-set"> + <element name="config:config-item-set"> + <ref name="config-config-item-set-attlist"/> + <ref name="config-items"/> + </element> +</define> + +<define name="config-items"> + <oneOrMore> + <choice> + <ref name="config-config-item"/> + <ref name="config-config-item-set"/> + <ref name="config-config-item-map-named"/> + <ref name="config-config-item-map-indexed"/> + </choice> + </oneOrMore> +</define> +<define name="config-config-item-set-attlist" combine="interleave"> + <attribute name="config:name"> + <ref name="string"/> + </attribute> +</define> +<define name="config-config-item"> + <element name="config:config-item"> + <ref name="config-config-item-attlist"/> + <text/> + </element> +</define> +<define name="config-config-item-attlist" combine="interleave"> + <attribute name="config:name"> + <ref name="string"/> + </attribute> +</define> +<define name="config-config-item-attlist" combine="interleave"> + <attribute name="config:type"> + <choice> + <value>boolean</value> + <value>short</value> + <value>int</value> + <value>long</value> + <value>double</value> + <value>string</value> + <value>datetime</value> + <value>base64Binary</value> + </choice> + </attribute> +</define> +<define name="config-config-item-map-indexed"> + <element name="config:config-item-map-indexed"> + <ref name="config-config-item-map-indexed-attlist"/> + <oneOrMore> + <ref name="config-config-item-map-entry"/> + </oneOrMore> + </element> +</define> +<define name="config-config-item-map-indexed-attlist" combine="interleave"> + <attribute name="config:name"> + <ref name="string"/> + </attribute> +</define> +<define name="config-config-item-map-entry"> + <element name="config:config-item-map-entry"> + <ref name="config-config-item-map-entry-attlist"/> + <ref name="config-items"/> + </element> +</define> +<define name="config-config-item-map-entry-attlist" combine="interleave"> + <optional> + <attribute name="config:name"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="config-config-item-map-named"> + <element name="config:config-item-map-named"> + <ref name="config-config-item-map-named-attlist"/> + <oneOrMore> + <ref name="config-config-item-map-entry"/> + </oneOrMore> + </element> +</define> +<define name="config-config-item-map-named-attlist" combine="interleave"> + <attribute name="config:name"> + <ref name="string"/> + </attribute> +</define> +<define name="office-scripts"> + <optional> + <element name="office:scripts"> + <zeroOrMore> + <ref name="office-script"/> + </zeroOrMore> + <optional> + <ref name="office-event-listeners"/> + </optional> + </element> + </optional> +</define> +<define name="office-script"> + <element name="office:script"> + <ref name="office-script-attlist"/> + <mixed> + <ref name="anyElements"/> + </mixed> + </element> +</define> +<define name="office-script-attlist"> + <attribute name="script:language"> + <ref name="string"/> + </attribute> +</define> +<define name="office-font-face-decls"> + <optional> + <element name="office:font-face-decls"> + <zeroOrMore> + <ref name="style-font-face"/> + </zeroOrMore> + </element> + </optional> +</define> +<define name="office-styles"> + <optional> + <element name="office:styles"> + <interleave> + <ref name="styles"/> + <zeroOrMore> + <ref name="style-default-style"/> + </zeroOrMore> + <optional> + <ref name="text-outline-style"/> + </optional> + <zeroOrMore> + <ref name="text-notes-configuration"/> + </zeroOrMore> + <optional> + <ref name="text-bibliography-configuration"/> + </optional> + <optional> + <ref name="text-linenumbering-configuration"/> + </optional> + <zeroOrMore> + <ref name="draw-gradient"/> + </zeroOrMore> + <zeroOrMore> + <ref name="svg-linearGradient"/> + </zeroOrMore> + <zeroOrMore> + <ref name="svg-radialGradient"/> + </zeroOrMore> + <zeroOrMore> + <ref name="draw-hatch"/> + </zeroOrMore> + <zeroOrMore> + <ref name="draw-fill-image"/> + </zeroOrMore> + <zeroOrMore> + <ref name="draw-marker"/> + </zeroOrMore> + <zeroOrMore> + <ref name="draw-stroke-dash"/> + </zeroOrMore> + <zeroOrMore> + <ref name="draw-opacity"/> + </zeroOrMore> + <zeroOrMore> + <ref name="style-presentation-page-layout"/> + </zeroOrMore> + </interleave> + </element> + </optional> +</define> +<define name="office-automatic-styles"> + <optional> + <element name="office:automatic-styles"> + <interleave> + <ref name="styles"/> + <zeroOrMore> + <ref name="style-page-layout"/> + </zeroOrMore> + </interleave> + </element> + </optional> +</define> +<define name="office-master-styles"> + <optional> + <element name="office:master-styles"> + <interleave> + <zeroOrMore> + <ref name="style-master-page"/> + </zeroOrMore> + <optional> + <ref name="style-handout-master"/> + </optional> + <optional> + <ref name="draw-layer-set"/> + </optional> + </interleave> + </element> + </optional> +</define> + +<define name="styles"> + <interleave> + <zeroOrMore> + <ref name="style-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="text-list-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-number-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-currency-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-percentage-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-date-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-time-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-boolean-style"/> + </zeroOrMore> + <zeroOrMore> + <ref name="number-text-style"/> + </zeroOrMore> + </interleave> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:generator"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="dc:title"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="dc:description"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="dc:subject"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:keyword"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:initial-creator"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <ref name="dc-creator"/> +</define> +<define name="dc-creator"> + <element name="dc:creator"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:printed-by"> + <ref name="string"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:creation-date"> + <ref name="dateTime"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <ref name="dc-date"/> +</define> +<define name="dc-date"> + <element name="dc:date"> + <ref name="dateTime"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:print-date"> + <ref name="dateTime"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:template"> + <attribute name="xlink:href"> + <ref name="anyURI"/> + </attribute> + <optional> + <attribute name="xlink:type" a:defaultValue="simple"> + <value>simple</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:actuate" a:defaultValue="onRequest"> + <value>onRequest</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:title"> + <ref name="string"/> + </attribute> + </optional> + <optional> + <attribute name="meta:date"> + <ref name="dateTime"/> + </attribute> + </optional> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:auto-reload"> + <optional> + <attribute name="xlink:type" a:defaultValue="simple"> + <value>simple</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:show" a:defaultValue="replace"> + <value>replace</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:actuate" a:defaultValue="onLoad"> + <value>onLoad</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:href"> + <ref name="anyURI"/> + </attribute> + </optional> + <optional> + <attribute name="meta:delay"> + <ref name="duration"/> + </attribute> + </optional> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:hyperlink-behaviour"> + <optional> + <attribute name="office:target-frame-name"> + <ref name="targetFrameName"/> + </attribute> + </optional> + <optional> + <attribute name="xlink:show"> + <choice> + <value>new</value> + <value>replace</value> + </choice> + </attribute> + </optional> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="dc:language"> + <ref name="language"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:editing-cycles"> + <ref name="nonNegativeInteger"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:editing-duration"> + <ref name="duration"/> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:document-statistic"> + <optional> + <attribute name="meta:page-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:table-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:draw-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:image-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:ole-object-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:paragraph-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:word-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:character-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="frame-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="sentence-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="syllable-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="non-whitespace-character-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:row-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:cell-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + <optional> + <attribute name="meta:object-count"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + </element> +</define> +<define name="office-meta-data" combine="choice"> + <element name="meta:user-defined"> + <attribute name="meta:name"> + <ref name="string"/> + </attribute> + <choice> + <group> + <attribute name="meta:value-type"> + <value>float</value> + </attribute> + <ref name="double"/> + </group> + <group> + <attribute name="meta:value-type"> + <value>date</value> + </attribute> + <ref name="dateOrDateTime"/> + </group> + <group> + <attribute name="meta:value-type"> + <value>time</value> + </attribute> + <ref name="duration"/> + </group> + <group> + <attribute name="meta:value-type"> + <value>boolean</value> + </attribute> + <ref name="boolean"/> + </group> + <group> + <attribute name="meta:value-type"> + <value>string</value> + </attribute> + <ref name="string"/> + </group> + <text/> + </choice> + </element> +</define> +<define name="text-h"> + <element name="text:h"> + <ref name="heading-attrs"/> + <ref name="paragraph-attrs"/> + <optional> + <ref name="text-number"/> + </optional> + <zeroOrMore> + <ref name="paragraph-content"/> + </zeroOrMore> + </element> +</define> +<define name="heading-attrs" combine="interleave"> + <attribute name="text:outline-level"> + <ref name="positiveInteger"/> + </attribute> +</define> +<define name="heading-attrs" combine="interleave"> + <optional> + <attribute name="text:restart-numbering" a:defaultValue="false"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="heading-attrs" combine="interleave"> + <optional> + <attribute name="text:start-value"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> +</define> +<define name="heading-attrs" combine="interleave"> + <optional> + <attribute name="text:is-list-header" a:defaultValue="false"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="text-number"> + <element name="text:number"> + <ref name="string"/> + </element> +</define> +<define name="text-p"> + <element name="text:p"> + <ref name="paragraph-attrs"/> + <zeroOrMore> + <ref name="paragraph-content"/> + </zeroOrMore> + </element> +</define> +<define name="paragraph-attrs"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> + <optional> + <attribute name="text:class-names"> + <ref name="styleNameRefs"/> + </attribute> + </optional> + <optional> + <attribute name="text:cond-style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> +</define> +<define name="paragraph-attrs" combine="interleave"> + <optional> + <ref name="text-id"/> + </optional> +</define> +<define name="text-page-sequence"> + <element name="text:page-sequence"> + <oneOrMore> + <ref name="text-page"/> + </oneOrMore> + </element> +</define> +<define name="text-page"> + <element name="text:page"> + <ref name="text-page-attlist"/> + <empty/> + </element> +</define> +<define name="text-page-attlist"> + <attribute name="text:master-page-name"> + <ref name="styleNameRef"/> + </attribute> +</define> +<define name="text-list"> + <element name="text:list"> + <ref name="text-list-attr"/> + <optional> + <ref name="text-list-header"/> + </optional> + <zeroOrMore> + <ref name="text-list-item"/> + </zeroOrMore> + </element> +</define> +<define name="text-list-attr" combine="interleave"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> +</define> +<define name="text-list-attr" combine="interleave"> + <optional> + <attribute name="text:continue-numbering"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="text-list-item"> + <element name="text:list-item"> + <ref name="text-list-item-attr"/> + <ref name="text-list-item-content"/> + </element> +</define> +<define name="text-list-item-content"> + <optional> + <ref name="text-number"/> + </optional> + <zeroOrMore> + <choice> + <ref name="text-p"/> + <ref name="text-h"/> + <ref name="text-list"/> + </choice> + </zeroOrMore> +</define> +<define name="text-list-item-attr" combine="interleave"> + <optional> + <attribute name="text:start-value"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> +</define> +<define name="text-list-header"> + <element name="text:list-header"> + <ref name="text-list-item-content"/> + </element> +</define> +<define name="text-numbered-paragraph"> + <element name="text:numbered-paragraph"> + <ref name="text-numbered-paragraph-attr"/> + <optional> + <ref name="text-number"/> + </optional> + <choice> + <ref name="text-p"/> + <ref name="text-h"/> + </choice> + </element> +</define> +<define name="text-numbered-paragraph-attr" combine="interleave"> + <optional> + <attribute name="text:level" a:defaultValue="1"> + <ref name="positiveInteger"/> + </attribute> + </optional> +</define> +<define name="text-numbered-paragraph-attr" combine="interleave"> + <ref name="text-list-attr"/> +</define> +<define name="text-numbered-paragraph-attr" combine="interleave"> + <ref name="text-list-item-attr"/> +</define> +<define name="text-section"> + <element name="text:section"> + <ref name="text-section-attr"/> + <choice> + <ref name="text-section-source"/> + <ref name="text-section-source-dde"/> + <empty/> + </choice> + <zeroOrMore> + <ref name="text-content"/> + </zeroOrMore> + </element> +</define> +<define name="text-section-attr" combine="interleave"> + <ref name="sectionAttr"/> +</define> +<define name="sectionAttr" combine="interleave"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> +</define> +<define name="sectionAttr" combine="interleave"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> +</define> +<define name="sectionAttr" combine="interleave"> + <optional> + <attribute name="text:protected"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="sectionAttr" combine="interleave"> + <optional> + <attribute name="text:protection-key"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="text-section-attr" combine="interleave"> + <choice> + <attribute name="text:display"> + <choice> + <value>true</value> + <value>none</value> + </choice> + </attribute> + <group> + <attribute name="text:display"> + <value>condition</value> + </attribute> + <attribute name="text:condition"> + <ref name="string"/> + </attribute> + </group> + <empty/> + </choice> +</define> +<define name="text-section-source"> + <element name="text:section-source"> + <ref name="text-section-source-attr"/> + </element> +</define> +<define name="text-section-source-attr" combine="interleave"> + <optional> + <attribute name="xlink:href"> + <ref name="anyURI"/> + </attribute> + <optional> + <attribute name="xlink:type" a:defaultValue="simple"> + <value>simple</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:show" a:defaultValue="embed"> + <value>embed</value> + </attribute> + </optional> + </optional> +</define> +<define name="text-section-source-attr" combine="interleave"> + <optional> + <attribute name="text:section-name"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="text-section-source-attr" combine="interleave"> + <optional> + <attribute name="text:filter-name"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="text-section-source-dde"> + <ref name="office-dde-source"/> +</define> +<define name="text-tracked-changes"> + <optional> + <element name="text:tracked-changes"> + <ref name="text-tracked-changes-attr"/> + <zeroOrMore> + <ref name="text-changed-region"/> + </zeroOrMore> + </element> + </optional> +</define> +<define name="text-tracked-changes-attr" combine="interleave"> + <optional> + <attribute name="text:track-changes" a:defaultValue="true"> + <ref name="boolean"/> + </attribute> + </optional> +</define> +<define name="text-changed-region"> + <element name="text:changed-region"> + <ref name="text-changed-region-attr"/> + <ref name="text-changed-region-content"/> + </element> +</define> +<define name="text-changed-region-attr" combine="interleave"> + <attribute name="text:id"> + <ref name="ID"/> + </attribute> +</define> +<define name="text-changed-region-content" combine="choice"> + <element name="text:insertion"> + <ref name="office-change-info"/> + </element> +</define> +<define name="text-changed-region-content" combine="choice"> + <element name="text:deletion"> + <ref name="office-change-info"/> + <zeroOrMore> + <ref name="text-content"/> + </zeroOrMore> + </element> +</define> +<define name="text-changed-region-content" combine="choice"> + <element name="text:format-change"> + <ref name="office-change-info"/> + </element> +</define> +<define name="change-marks"> + <choice> + <element name="text:change"> + <ref name="change-mark-attr"/> + </element> + <element name="text:change-start"> + <ref name="change-mark-attr"/> + </element> + <element name="text:change-end"> + <ref name="change-mark-attr"/> + </element> + </choice> +</define> +<define name="change-mark-attr"> + <attribute name="text:change-id"> + <ref name="IDREF"/> + </attribute> +</define> +<define name="text-decls"> + <optional> + <element name="text:variable-decls"> + <zeroOrMore> + <ref name="text-variable-decl"/> + </zeroOrMore> + </element> + </optional> + <optional> + <element name="text:sequence-decls"> + <zeroOrMore> + <ref name="text-sequence-decl"/> + </zeroOrMore> + </element> + </optional> + <optional> + <element name="text:user-field-decls"> + <zeroOrMore> + <ref name="text-user-field-decl"/> + </zeroOrMore> + </element> + </optional> + <optional> + <element name="text:dde-connection-decls"> + <zeroOrMore> + <ref name="text-dde-connection-decl"/> + </zeroOrMore> + </element> + </optional> + <optional> + <ref name="text-alphabetical-index-auto-mark-file"/> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <text/> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:s"> + <optional> + <attribute name="text:c"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:tab"> + <ref name="text-tab-attr"/> + </element> +</define> +<define name="text-tab-attr"> + <optional> + <attribute name="text:tab-ref"> + <ref name="nonNegativeInteger"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:line-break"> + <empty/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:span"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> + <optional> + <attribute name="text:class-names"> + <ref name="styleNameRefs"/> + </attribute> + </optional> + <zeroOrMore> + <ref name="paragraph-content"/> + </zeroOrMore> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:a"> + <ref name="text-a-attlist"/> + <optional> + <ref name="office-event-listeners"/> + </optional> + <zeroOrMore> + <ref name="paragraph-content"/> + </zeroOrMore> + </element> +</define> +<define name="text-a-attlist" combine="interleave"> + <optional> + <attribute name="office:name"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="text-a-attlist" combine="interleave"> + <attribute name="xlink:href"> + <ref name="anyURI"/> + </attribute> + <optional> + <attribute name="xlink:type" a:defaultValue="simple"> + <value>simple</value> + </attribute> + </optional> + <optional> + <attribute name="xlink:actuate" a:defaultValue="onRequest"> + <value>onRequest</value> + </attribute> + </optional> +</define> +<define name="text-a-attlist" combine="interleave"> + <optional> + <attribute name="office:target-frame-name"> + <ref name="targetFrameName"/> + </attribute> + </optional> + <optional> + <attribute name="xlink:show"> + <choice> + <value>new</value> + <value>replace</value> + </choice> + </attribute> + </optional> +</define> +<define name="text-a-attlist" combine="interleave"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> + <optional> + <attribute name="text:visited-style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <choice> + <element name="text:bookmark"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> + <element name="text:bookmark-start"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> + <element name="text:bookmark-end"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> + </choice> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:reference-mark"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <choice> + <element name="text:reference-mark-start"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> + <element name="text:reference-mark-end"> + <attribute name="text:name"> + <ref name="string"/> + </attribute> + </element> + </choice> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:note"> + <ref name="text-note-class"/> + <optional> + <attribute name="text:id"> + <ref name="string"/> + </attribute> + </optional> + <element name="text:note-citation"> + <optional> + <attribute name="text:label"> + <ref name="string"/> + </attribute> + </optional> + <text/> + </element> + <element name="text:note-body"> + <zeroOrMore> + <ref name="text-content"/> + </zeroOrMore> + </element> + </element> +</define> +<define name="text-note-class"> + <attribute name="text:note-class"> + <choice> + <value>footnote</value> + <value>endnote</value> + </choice> + </attribute> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:ruby"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> + <element name="text:ruby-base"> + <ref name="paragraph-content"/> + </element> + <element name="text:ruby-text"> + <optional> + <attribute name="text:style-name"> + <ref name="styleNameRef"/> + </attribute> + </optional> + <text/> + </element> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <ref name="office-annotation"/> +</define> +<define name="paragraph-content" combine="choice"> + <ref name="change-marks"/> +</define> +<define name="paragraph-content" combine="choice"> + <choice> + <ref name="shape"/> + <ref name="draw-a"/> + </choice> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:date"> + <ref name="text-date-attlist"/> + <text/> + </element> +</define> +<define name="text-date-attlist" combine="interleave"> + <interleave> + <ref name="common-field-fixed-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> +</define> +<define name="text-date-attlist" combine="interleave"> + <optional> + <attribute name="text:date-value"> + <ref name="dateOrDateTime"/> + </attribute> + </optional> +</define> +<define name="text-date-attlist" combine="interleave"> + <optional> + <attribute name="text:date-adjust"> + <ref name="duration"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:time"> + <ref name="text-time-attlist"/> + <text/> + </element> +</define> +<define name="text-time-attlist" combine="interleave"> + <interleave> + <ref name="common-field-fixed-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> +</define> +<define name="text-time-attlist" combine="interleave"> + <optional> + <attribute name="text:time-value"> + <ref name="timeOrDateTime"/> + </attribute> + </optional> +</define> +<define name="text-time-attlist" combine="interleave"> + <optional> + <attribute name="text:time-adjust"> + <ref name="duration"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:page-number"> + <ref name="text-page-number-attlist"/> + <text/> + </element> +</define> +<define name="text-page-number-attlist" combine="interleave"> + <interleave> + <ref name="common-field-num-format-attlist"/> + <ref name="common-field-fixed-attlist"/> + </interleave> +</define> +<define name="text-page-number-attlist" combine="interleave"> + <optional> + <attribute name="text:page-adjust"> + <ref name="integer"/> + </attribute> + </optional> +</define> +<define name="text-page-number-attlist" combine="interleave"> + <optional> + <attribute name="text:select-page"> + <choice> + <value>previous</value> + <value>current</value> + <value>next</value> + </choice> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:page-continuation"> + <ref name="text-page-continuation-attlist"/> + <text/> + </element> +</define> +<define name="text-page-continuation-attlist" combine="interleave"> + <attribute name="text:select-page"> + <choice> + <value>previous</value> + <value>next</value> + </choice> + </attribute> +</define> +<define name="text-page-continuation-attlist" combine="interleave"> + <optional> + <attribute name="text:string-value"> + <ref name="string"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-firstname"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-lastname"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-initials"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-title"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-position"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-email"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-phone-private"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-fax"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-company"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-phone-work"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-street"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-city"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-postal-code"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-country"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sender-state-or-province"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:author-name"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:author-initials"> + <ref name="common-field-fixed-attlist"/> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:chapter"> + <ref name="text-chapter-attlist"/> + <text/> + </element> +</define> +<define name="text-chapter-attlist" combine="interleave"> + <attribute name="text:display"> + <choice> + <value>name</value> + <value>number</value> + <value>number-and-name</value> + <value>plain-number-and-name</value> + <value>plain-number</value> + </choice> + </attribute> +</define> +<define name="text-chapter-attlist" combine="interleave"> + <attribute name="text:outline-level"> + <ref name="nonNegativeInteger"/> + </attribute> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:file-name"> + <ref name="text-file-name-attlist"/> + <text/> + </element> +</define> +<define name="text-file-name-attlist" combine="interleave"> + <optional> + <attribute name="text:display"> + <choice> + <value>full</value> + <value>path</value> + <value>name</value> + <value>name-and-extension</value> + </choice> + </attribute> + </optional> +</define> +<define name="text-file-name-attlist" combine="interleave"> + <ref name="common-field-fixed-attlist"/> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:template-name"> + <ref name="text-template-name-attlist"/> + <text/> + </element> +</define> +<define name="text-template-name-attlist"> + <optional> + <attribute name="text:display"> + <choice> + <value>full</value> + <value>path</value> + <value>name</value> + <value>name-and-extension</value> + <value>area</value> + <value>title</value> + </choice> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sheet-name"> + <text/> + </element> +</define> +<define name="text-variable-decl"> + <element name="text:variable-decl"> + <ref name="common-field-name-attlist"/> + <ref name="common-value-type-attlist"/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:variable-set"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-formula-attlist"/> + <ref name="common-value-and-type-attlist"/> + <ref name="common-field-display-value-none-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:variable-get"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-display-value-formula-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:variable-input"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-description-attlist"/> + <ref name="common-value-type-attlist"/> + <ref name="common-field-display-value-none-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> + <text/> + </element> +</define> +<define name="text-user-field-decl"> + <element name="text:user-field-decl"> + <ref name="common-field-name-attlist"/> + <optional> + <ref name="common-field-formula-attlist"/> + </optional> + <ref name="common-value-and-type-attlist"/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:user-field-get"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-display-value-formula-none-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> + <text/> + </element> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:user-field-input"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-description-attlist"/> + <ref name="common-field-data-style-name-attlist"/> + </interleave> + <text/> + </element> +</define> +<define name="text-sequence-decl"> + <element name="text:sequence-decl"> + <ref name="text-sequence-decl-attlist"/> + </element> +</define> +<define name="text-sequence-decl-attlist" combine="interleave"> + <ref name="common-field-name-attlist"/> +</define> +<define name="text-sequence-decl-attlist" combine="interleave"> + <attribute name="text:display-outline-level"> + <ref name="nonNegativeInteger"/> + </attribute> +</define> +<define name="text-sequence-decl-attlist" combine="interleave"> + <optional> + <attribute name="text:separation-character"> + <ref name="character"/> + </attribute> + </optional> +</define> +<define name="paragraph-content" combine="choice"> + <element name="text:sequence"> + <interleave> + <ref name="common-field-name-attlist"/> + <ref name="common-field-f... [truncated message content] |