Skip to main content

 Advanced

Advanced topics

Word DOCX - import config schema reference

Version: 0.6.3

This file controls how Word DOCX files are converted into PSML. There are a number of ways to access it for editing. For users with at least manager rights on the server, the best option is through the document types page: Administration menu > Template > Types.

<xs:schema
      elementFormDefault="unqualified"  
      version="0.6.2"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:xml="http://www.w3.org/XML/1998/namespace" />

<config>

The root element of the instance, <config> is a container for the two key elements.

version provides a value that can be used for configuration management or technical support. 

<xs:element  name="config">
  <xs:complexType>
    <xs:sequence>      
      <xs:element ref="lists" minOccurs="0" maxOccurs="1" />
      <xs:element ref="styles" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="version" type="xs:string" />
  </xs:complexType>
</xs:element>

<split>

The <main>, <document> and <section> elements previously under <split> are deprecated as of PageSeeder v5.99.

Importing a Word document involves two configuration files. First the DOCX document content is processed using the word-import-config.xml, then it is split using the psml-split-config.xml to give the final imported PSML.

For more detail, see:

<xs:element  name="split">
 <xs:complexType>
   <xs:sequence>
     <xs:element  ref="mathml"
                  minOccurs="0"
                  maxOccurs="1" />
     <xs:element ref="footnotes"
                  minOccurs="0"
                  maxOccurs="1" />
     <xs:element ref="endnotes"
                  minOccurs="0"
                  maxOccurs="1" />
   </xs:sequence>
 </xs:complexType>
</xs:element>

<mathml>

Controls the processing of any MathML objects in the Word file.

select use a value of true or false to determine if MathML content is processed or ignored (default true).

convert-to-mml use a value of true or false to determine whether MathML objects are converted to the original math ml (mml) syntax or left as OfficeOpenXML syntax (default true and always true for generate-fragments option).

output use a value of generate-files or generate-fragments to determine whether each MathML object is placed in a separate file, under a mathml folder or in a fragment inside it’s own document with the path mathml/mathml-[n].psml (default generate-fragments, requires pso-docx version 0.7.8 or higher).

<xs:element name="mathml">
  <xs:complexType>
    <xs:attribute  name="select"         type="xs:boolean" />
    <xs:attribute  name="convert-to-mml" type="xs:boolean" />
    <xs:attribute  name="output">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="generate-files" />
          <xs:enumeration value="generate-fragments" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<mathml select="true" output="generate-files" convert-to-mml="true"/>

See use of:

mathml-generate-files 

<footnotes>

Controls the processing of Word footnote markers.

select use a value of true or false to determine if Word footnotes are processed or ignored (default true).

output use a value of generate-files or generate-fragments to determine whether each footnote object is placed in a separate file, under a footnotes folder or in a fragment in a footnotes/footnotes.psml file (default generate-fragments).

<xs:element name="footnotes">
  <xs:complexType>
    <xs:attribute name="select" type="xs:boolean" />
    <xs:attribute name="output">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="generate-files" />
          <xs:enumeration value="generate-fragments" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<footnotes select="true" output="generate-files"/>

<endnotes>

Controls the processing of Word endnote markers.

select use a value of true or false to determine if Word endnotes are processed or ignored (default true).

output use a value of generate-files or generate-fragments to determine whether each endnote object is placed in a separate file, under a endnotes folder or in a fragment in a endnotes/endnotes.psml file (default generate-fragments).

<xs:element name="endnotes">
  <xs:complexType>
    <xs:attribute name="select" type="xs:boolean" />
    <xs:attribute name="output">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="generate-files" />
          <xs:enumeration value="generate-fragments" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<endnotes select="true" output="generate-files"/>

<lists>

Determines how heading and list numbering is interpreted.

<xs:element name="lists">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="add-numbering-to-document-titles"
                  minOccurs="0"
                  maxOccurs="1" />
      <xs:element ref="convert-to-list-roles"
                  minOccurs="0"
                  maxOccurs="1" />
      <xs:element ref="convert-to-numbered-paragraphs"
                  minOccurs="0"
                  maxOccurs="1" />
      <xs:element ref="convert-manual-numbering"
                  minOccurs="0"
                  maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<add-numbering-to-document-titles>

To add numbering to the titles in the references document.

select use a value true or false to determine whether numbering is adding to the references document link title or whether it is not.

<xs:element name="add-numbering-to-document-titles">
  <xs:complexType>
    <xs:attribute name="select" type="xs:boolean" />
  </xs:complexType>
</xs:element>

Example

<add-numbering-to-document-titles select="false"/>

See use of:

<add-numbering-to-document-titles select="true"/>

See use of:

<convert-to-list-roles>

Allows lists to contain a @role attribute set with the value of the Word paragraph style.

select use a value of true or false to determine whether PSML lists inherit the name of the Word list style as a @role or not. By default, this value is false.

<xs:element name="convert-to-list-roles">
  <xs:complexType>
    <xs:attribute name="select" type="xs:boolean" />
  </xs:complexType>
</xs:element>

Example

<convert-to-list-roles select="false" />

See use of:

lists-default-list-role-false 

lists-multilevel-list-role-false 

lists-numbered-paragraphs-role-false 

<convert-to-list-roles select="true" />

See use of:

lists-default-list-role-true 

lists-multilevel-list-role-true 

lists-numbered-paragraphs-role-true 

<convert-to-numbered-paragraphs>

Is used to control the conversion of  numbered paragraph styles to numbered paragraphs or lists in PageSeeder. To convert to numbered paragraphs, the @select attribute must be set to true. If it contains any other value, it converts to <list> or <nlist> depending on the type of numbered value.

select use a value of true or false to determine whether numbered Word paragraph styles are converted to numbered paragraphs or lists, or whether they are not.

<xs:element  name="convert-to-numbered-paragraphs">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="level" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="select" type="xs:boolean" />
  </xs:complexType>
</xs:element>

Example

<convert-to-numbered-paragraphs select="false" />

See use of:

numbered-paragraphs-false 

The GitHub example has select="false". Any Word styles that have numbering and are in a list, are not numbered on import.

<convert-to-numbered-paragraphs select="true" />

Using select="true", any Word styles, that have numbering and are in a list, have a numbering attribute applied on import.

See use of:

Numbering output as an inline label: in: 
numbered-paragraphs-true-output-inline 

The GitHub example has select="true". Only Word styles that have numbering, are in a list and that are level 1 in that list, have a numbering attribute applied on import. The number is placed inside a inline label with label name inline=level1.

<convert-manual-numbering>

To convert non-automated numbering values that can exist in a Word document.

select use a value of true or false to determine whether manual numbering in the Word document is converted or whether it is not.

<xs:element name="convert-manual-numbering">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="value" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="select" type="xs:boolean" />
  </xs:complexType>
</xs:element>

Example

<convert-manual-numbering select="false" />

See use of:

manual-numbering-false 

The GitHub example has select="false". Any manual numbering on Word styles that are in a list, are imported as plain text.

<convert-manual-numbering select="true" />

Using  select="true", any manual numbering on Word styles is imported. 

See use of:

<autonumbering> in manual-numbering-true-autonumbering 

The GitHub example has select="true".  Any manual numbering on Word styles that are in a list, are imported according to the search match regular expressions specified in the <value>  elements.
The first match search is for: the word “Schedule” followed by non-breaking space (indicated by the HTML format code &#160;), followed by any number inclusive of 0 to 9 occurring one or more times. If found, the text is imported into a paragraph with a numbered attribute.
For example: <para numbered="true">.

<inline> in manual-numbering-true-inline 

Using select="true".  Any manual numbering on Word styles that are in a list, are imported according to the search match regular expressions specified in the <value> elements.
The third match search is for: zero or one character space followed by any number inclusive of 0 to 9 occurring one or more times then followed by a single character space. If found, the text is imported into an inline label with label name numbering-subdivision at the start of a paragraph.
For example,  <para><inline label="numbering-subdivision">1 </inline>

<prefix> in manual-numbering-true-prefix 

Using select="true".  Any manual numbering on Word styles that are in a list, are imported according to the search match regular expressions specified in the <value> elements.
The first match search is for:  the word “Schedule” followed by non-breaking space (indicated by the HTML format code &#160;), followed by any number inclusive of 0 to 9 occurring one or more times. If found, the text is imported into a paragraph with the found text as the value of a prefix attribute.
For example: <para prefix="Schedule 1">

<inline> and <prefix> in manual-numbering-true-prefix-inline 

Using select="true".  Any manual numbering on Word styles that are in a list, are imported according to the search match regular expressions specified in the <value> elements.
The first and second match searches, if found, the text is imported into paragraphs with the found text as the value of a prefix attribute.
For example, <para prefix="Schedule 1">, <para prefix="Part 1">
The third, fourth and fifth match searches, if found, the text is imported into inline labels at the start of a paragraph.
For example:
<para><inline label="numbering-subdivision">1 </inline>,
<para><inline label="numbering-firstlevel"> (5A)</inline>
,
<para><inline label="numbering-secondlevel"> (a)</inline>

<level>

Controls the processing of each level of paragraph.

value use 1 to 6 to correspond to level of the paragraph.

output use prefix or text to convert the number from the Word paragraph to a PSML prefix or text, use numbering to create numbered paragraphs in PSML, use [inline=[label] to wrap the number in a PSML inline label, label characters are restricted to [a-zA-Z0-9_\-].

<xs:element name="level">
  <xs:complexType>
    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:integer">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="6" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="output">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="numbering
                             |prefix
                             |inline=[a-zA-Z0-9_\-]+
                             |text" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<lists>      
  <convert-to-numbered-paragraphs select="true">
    <level value="1" output="prefix"/>           
    <level value="2" output="text"/>
    <level value="3" output="prefix"/>
    <level value="4" output="numbering"/>
    <level value="5" output="numbering"/>
    <level value="6" output="inline=level6"/>
  </convert-to-numbered-paragraphs>      
</lists>

See use of:

@output="inline=[label] in: 
numbered-paragraphs-true-output-inline 

The GitHub example has <convert-to-numbered-paragraphs select="true">.  Any Word styles, that are in a list and that have numbering, are imported. 
The Word style that is the first level in the Word list, specified by level value="1" is imported as a paragraph and it has an attribute indent="1" applied.
The number on the Word style is imported, specified by the value of attribute output, into an inline label, with label name level1.
For example, <para indent="1"><inline label="level1">1) </inline>List item 1</para>

numbered-paragraphs-true-multilevel-output-inline 

output="prefix" in: 
numbered-paragraphs-true-output-prefix 
numbered-paragraphs-true-multilevel-output-prefix 

@output="numbering" in: 
numbered-paragraphs-true-output-numbering 
numbered-paragraphs-true-multilevel-output-numbering 

output="text" in: 
numbered-paragraphs-true-output-text 
numbered-paragraphs-true-multilevel-output-text 

@output="prefix " and @output="numbering" in: 
numbered-paragraphs-true-multilevel-output-numbering-prefix 

@output="text" and @output="prefix" in: 
numbered-paragraphs-true-multilevel-output-text-prefix 

multiple @output in: 
numbered-paragraphs-true-multilevel-output-numbering-text-inline-prefix 

<value>

Determines the paragraph ordinal.

prefix use "prefix" to generate a prefix with the value of the current auto-numbering or manual numbering value for each of the Word numbered paragraphs.

autonumbering [Insert description]

match use a regular expression to mark up text in the Word document.  

<xs:element name="value">
  <xs:complexType>
    <xs:sequence>
      <xs:element  ref="inline"         minOccurs="0" maxOccurs="1" />
      <xs:element  name="prefix"        minOccurs="0" maxOccurs="1" />
      <xs:element  name="autonumbering" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="match" type="xs:string" />
  </xs:complexType>
</xs:element>
<inline>

Used to mark up content within a block of text—like character style in Word documents.

label use characters restricted to [a-zA-Z0-9_\-].

<xs:element name="inline">
  <xs:complexType>
    <xs:attribute name="label" type="xs:string" />
  </xs:complexType>
</xs:element>

Example

<convert-manual-numbering select="true">

  <value match="^[\(|\[|\{][a-z]+[\)|\]|\}]">   <inline label="numbering-lowercase" />
  </value>

  <value match="^[\(|\[|\{][A-Z]+[\)|\]|\}]">
    <prefix/>
  </value>

  <value match="^[\(|\[|\{][ivx]+[\)|\]|\}]">
    <list role="numbering-roman"/>
  </value>

  <value match="Part&#160;[A-Z0-9]+">
    <prefix />
  </value>

  <value match="Note:\s*">
    <prefix />
  </value>

  <value match="\s*[0-9]+[A-Z]*$">
    <prefix />
  </value>
</convert-manual-numbering>

See use of:

inline-one-character-style 

inline-multi-character-style 

inline-one-paragraph-style 

<autonumbering>

Ancestor is <lists>.  Parent is <convert-manual-numbering select="true">.

Example

<config>
  <lists>
    <convert-manual-numbering select="true">
      <value match="Chapter&#160;[0-9]+">
        <autonumbering />
      </value>
    </convert-manual-numbering>
  </lists>

See use of:

manual-numbering-true-autonumbering 

<prefix>

Ancestor is <lists>. Parent is <convert-manual-numbering select="true">.

Example

<config>
  <lists>
    <convert-manual-numbering select="true">
      <value match="Chapter&#160;[0-9]+">
        <prefix />
      </value>
    </convert-manual-numbering>
  </lists>

See use of:

manual-numbering-true-prefix 

<styles>

Controls how styles from Word are translated to PSML.

<xs:element name="styles">
  <xs:complexType>
    <xs:sequence>
      <xs:element  ref="ignore"    minOccurs="0" maxOccurs="1" />
      <xs:element  ref="default"   minOccurs="0" maxOccurs="1" />
      <xs:element  ref="wordstyle" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<ignore>

Determines which content is not processed. For example, the Word Table of Contents paragraphs can often be discarded.

<xs:element name="ignore">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="wordstyle" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

Example

<ignore>
  <wordstyle value="TOC1" />
  <wordstyle value="TOC2" />
  <wordstyle value="TOC3" />
  <wordstyle value="TOC4" />
</ignore>

See use of:

ignore-styles-toc-paragraph-styles 

ignore-styles-body-text-paragraph-style 

ignore-styles-one-paragraph-style 

ignore-styles-multiple-paragraph-styles 

<default>

Contains the settings for general transformations of docx to PSML.

<xs:element name="default">
  <xs:complexType>
    <xs:sequence>
      <xs:element  ref="paragraphStyles" minOccurs="0"  maxOccurs="1" />
      <xs:element  ref="characterStyles" minOccurs="0"  maxOccurs="1" />
      <xs:element  ref="smart-tag"       minOccurs="0"  maxOccurs="1" />
      <xs:element  ref="references"      minOccurs="0"  maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<paragraphStyles>

Defines a mapping for a paragraph style not mapped by <wordstyle> or <lists>.

To get the style ID, Word strips underscores and spaces from the style name but preserves hyphens.

value para transforms all un-mapped Word paragraph styles to a PSML <para> element.

 block transforms all un-mapped Word paragraph styles to a PSML <block> element with a label equal to the Word paragraph style ID.

<xs:element name="paragraphStyles">
  <xs:complexType>
    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="para" />
          <xs:enumeration value="block" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<paragraphStyles value="block" />

See use of:

default-paragraph-style-block 

<paragraphStyles value="para" />

See use of:

default-paragraph-style-para 

<characterStyles>

Defines general rule for any Word character style not mapped with <wordstyle>.  

value none – strips the markup for un-mapped Word character styles.

 inline – transforms un-mapped Word character styles to a PSML <inline> element with a label equal to the Word character style ID. 

<xs:element name="characterStyles">
  <xs:complexType>
    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="inline" />
          <xs:enumeration  value="none" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<characterStyles value="none" />

See use of:

character-style-none 

<characterStyles value="inline" />

See use of:

default-character-style-inline 

<smart-tag>

Word  smart tag information can be either discarded or captured in PageSeeder as an inline label, with a value equal to that of the smart tag. To do this, the @keep attribute must be set to true. With any other value, the smart-tag markup is discarded. 

keep use a value of true or false to determine whether smart tags are captured as inline labels, or whether they are not. 

<xs:element name="smart-tag">
  <xs:complexType>
    <xs:attribute name="keep" type="xs:boolean" />
  </xs:complexType>
</xs:element>

Example

<smart-tag keep="false" />

See use of:

smart-tag-false 

<smart-tag keep="true" />

See use of:

smart-tag-true 

<references>

This element sets whether internal references in the DOCX are imported as PSML <link> or <xref> elements. This requires pso-docx v0.8.3 or higher.

psmlelement attribute can have values link or xref (default is xref). The link option also imports all bookmarks as <anchor> elements.

<xs:element name="references">
    <xs:complexType>
      <xs:attribute name="psmlelement">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="link" />
            <xs:enumeration value="xref" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

Example

<references psmlelement="link" />

See use of: 

default-references-link 

<wordstyle>

These rules transform Word paragraph or character styles into PSML elements.

value use the Word style ID for the Word paragraph style. Used where the ancestor is <ignore>.

name use the Word style ID for the Word paragraph style.

table use where the ancestor is <styles>.
Use only when @psmlelement="caption"
Use value default when it applies to all tables
Or use the value of a specific table style ID. 

psmlelement use titleheading, para, block, inline, preformat, captionmonospace.

<xs:element name="wordstyle">
  <xs:complexType>
    <xs:all>
      <xs:element  ref="label"     minOccurs="0" maxOccurs="1" />      
      <xs:element  ref="level"     minOccurs="0" maxOccurs="1" />
      <xs:element  ref="numbering" minOccurs="0" maxOccurs="1" />
      <xs:element  ref="indent"    minOccurs="0" maxOccurs="1" />
    </xs:all>

    <xs:attribute name="value"  type="xs:string" />
    <xs:attribute name="name"   type="xs:string" />
    <xs:attribute name="table"  type="xs:string" />
    <xs:attribute name="psmlelement">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="title" />
          <xs:enumeration value="para" />
          <xs:enumeration value="heading" />
          <xs:enumeration value="block" />
          <xs:enumeration value="inline" />
          <xs:enumeration value="monospace" />
          <xs:enumeration value="preformat" />
          <xs:enumeration value="caption" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Examples

psmlelement="heading"

<wordstyle name="Heading1" psmlelement="heading"/>

See use of: 

headings-one-paragraph-style 

headings-multiple-paragraph-styles 

psmlelement="para"

<wordstyle name="Heading1" psmlelement="para"/>

See use of: 

para-one-paragraph-style 

para-multiple-paragraph-styles 

para-one-paragraph-style-with-block 

para-one-paragraph-style-with-inline 

para-with-numbering-inline 

para-with-numbering-numbering 

para-with-numbering-prefix 

para-with-numbering-text 

para-multiple-with-numbering-inline 

para-multiple-with-numbering-prefix 

para-multiple-with-numbering-text 

para-multiple-with-numbering-numbering 

para-multiple-with-numbering-prefix-numbering-inline 

psmlelement="block"

<wordstyle name="Heading1" psmlelement="block">
  <label value="heading1block"/>
</wordstyle>

See use of:

block-one-paragraph-style

 block-multiple-paragraph-styles 

Captions attached to Images

The default conversion of the default Word paragraph style ‘Caption’,  when attached to an Image,  is into a psmlelement="block".

Example

<wordstyle name="Caption" psmlelement="block">
  <label value="Caption" />
</wordstyle>

See use of:

empty-configuration-(images) 

psmlelement="inline"

<wordstyle name="Emphasis" psmlelement="inline">
  <label value="emphasisinline"/>
</wordstyle>

See use of:

inline-multi-character-style 

psmlelement="preformat"

<wordstyle name="Heading1" psmlelement="preformat" />

See use of:

preformat-one-paragraph-style 

preformat-multi-paragraph-style 

psmlelement="monospace"

<wordstyle name="Emphasis" psmlelement="monospace" />

See use of:

monospace-one-character-style 

monospace-multi-character-style 

monospace-one-paragraph-style 

monospace-multi-paragraph-style 

psmlelement="caption"

Captions attached to Tables
psmlelement="caption"

See use of:

<wordstyle name="Caption"
           psmlelement="caption"
           table="default"/>
  • PSML result when applied to a Word Default table style (w:styleId="TableGrid"):
<block label="Caption">Table 1</block>
  <table role="TableGrid">

See use of:

<wordstyle name="Caption" 
           psmlelement="caption" 
           table="tableYellow"/>
  • PSML result when applied to a Word Custom table style (for example, w:styleId="tableYellow"):
<table role="tableYellow">
  <caption>Table 2 table with caption</caption>

<label>

type use a value of block or inline to determine whether text is surrounded by a block label or an inline label.

value use a value of [valid label name], restricted to these characters [a-zA-Z0-9_\-].

<xs:element name="label">
  <xs:complexType mixed="true">
    <xs:attribute name="type">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="block" />
          <xs:enumeration value="inline" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>

    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[a-zA-Z0-9_\-]+" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

When ancestor is <styles>:

<label type="block" value="chapter">

headings-one-paragraph-style-with-block 

<label type="inline" value="part_num">

headings-one-paragraph-style-with-inline 

<numbering>

Supports a range of options for numbering headings and paragraphs.

select use true or false to determine if numbering is applied or whether it is not.

value use numbering (add @numbered="true"), use inline to wrap number in an inline label specified by nested <label value="[valid label name]"> element, use text to include number in paragraph text, use prefix to insert number in @prefix attribute.

<xs:element name="numbering">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="label" minOccurs="0" />
    </xs:sequence>

    <xs:attribute name="select" type="xs:boolean" />
    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="numbering" />
          <xs:enumeration value="inline" />
          <xs:enumeration value="text" />
          <xs:enumeration value="prefix" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<numbering select="false" />
<numbering select="true" value="numbering" numbered="true"/>

headings-with-numbering-numbering 

headings-multiple-with-numbering-numbering 

<numbering select="true" value="inline"/>

headings-with-numbering-inline 

headings-multiple-with-numbering-inline 

<numbering select="true" value="text"/>

headings-with-numbering-text 

headings-multiple-with-numbering-text 

<numbering select="true" value="prefix"/>

headings-with-numbering-prefix 

headings-multiple-with-numbering-prefix 

Use of multiple numbering @value:

headings-multiple-with-numbering-prefix-numbering-inline 

<indent>

Determines position of the paragraph in the heirarchy.

value values of 1 to 6

<xs:element name="indent">
  <xs:complexType>
    <xs:attribute name="value">
      <xs:simpleType>
        <xs:restriction base="xs:integer">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="6" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

Example

<indent value="2" />
Created on , last edited on