---
title: "Word DOCX – import schema reference"
source: https://dev.pageseeder.com/reference/advanced/schemas/word-import-config.html
last_updated: 2026-08-11T16:33:28+10:00
tokens: ~10545
---

# Word DOCX – import config schema reference

**Version:** 1.5.0

This file determines the conversion of files in the Word DOCX format to PSML. There are a number of ways to access it for editing. For users with at least project manager rights on the server, the best option is through the [document types](/guide/configuration/psml.md) tab on the template configuration page:

*Project administration menu* \> **Template \> Template configuration**.

> **Tip:** - The Word Import Schema controls the configuration file for the companion process to the [Word Export Schema](/reference/advanced/schemas/word-export-config.md). - Also see the [PSML split config schema reference](/reference/advanced/schemas/psml-split-config.md).

```xml
<xs:schema
      elementFormDefault="unqualified"  
      version="1.5.0"
      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 three key elements.

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


```xml

<xs:element  name="config">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="split" minOccurs="0" maxOccurs="1" />
      <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>`

In the import config, the `<split>` element relates **only** to mathml, footnotes, and endnotes, to control the conversion of these into files or fragments.

> **Note:** The import process for a Word document involves two configuration files. First is the conversion of the DOCX styles by processing the `word-import-config.xml`, then the resulting PSML content, other than that content already processed by the `<split>` element, is separated into files and fragments through the `psml-split-config.xml` file. For more detail, see: - [PSML split config schema reference](/reference/advanced/schemas/psml-split-config.md) - [PSML split config usage](/guide/publishing/ant_api/tasks/psml_split_config_usage.md)

> **Obsolete:** The `<main>`, `<document>` and `<section>` elements previously under `<split>` are obsolete as of PageSeeder v6.

mathml footnotes endnotes```xml
<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).


```xml
<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**

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

*See use of:*

[mathml-generate-files](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/mathml-generate-files)

[mathml-generate-fragments](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/mathml-generate-fragments)

[mathml-mathtype-plugin](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/mathml-mathtype-plugin)

### `<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`).


```xml
<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**

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

*See use of:*

[footnotes-generate-files](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/footnotes-generate-files)

[empty-configuration-footnotes](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/empty-configuration-footnotes)

[footnotes-disabled](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/footnotes-disabled)

### `<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`).


```xml
<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**

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

*See use of:*

[endnotes-generate-files](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/endnotes-generate-files)

[empty-configuration-endnotes](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/empty-configuration-endnotes)

[endnotes-disabled](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/endnotes-disabled)

## `<lists>`

Interprets list numbering.

convert-to-list-roles convert-to-numbered-paragraphs convert-manual-numbering```xml
<xs:element name="lists">
  <xs:complexType>
    <xs:sequence>
      <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>
```

### `<convert-to-list-roles>`

Converting the value of a Word style to the value of a `@role` attribute on a PSML list, enables semantically meaningful lists, like “procedures” or "guidance".


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`.


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

**Example**

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

*See use of:*

[lists-default-list-role-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-default-list-role-false)

[lists-multilevel-list-role-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-multilevel-list-role-false)

[lists-numbered-paragraphs-role-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-numbered-paragraphs-role-false)

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

*See use of:*

[lists-default-list-role-true](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-default-list-role-true)

[lists-multilevel-list-role-true](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-multilevel-list-role-true)

[lists-numbered-paragraphs-role-true](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/lists-numbered-paragraphs-role-true)

### `<convert-to-numbered-paragraphs>`

Converts numbered paragraph styles in DOCX to numbered paragraphs or lists in PageSeeder. To process numbered paragraphs, set the `@select` attribute to `true`. Any other value converts numbered paragraphs to `<list>` or `<nlist>` depending on the type of numbered value.

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


```xml
<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**

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

*See use of:*

[numbered-paragraphs-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-false)

Because the GitHub example is `select="false"`, any numbered Word styles in a list, will lose the numbering on import.

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

If `select="true"`, any numbered Word styles in a list will preserve the numbering attribute on import.

*See use of:*

Numbering output as an inline label in:   
[numbered-paragraphs-true-output-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-output-inline)

The GitHub example has `select="true"`. Only Word styles with:

- numbering,
- in a list, and
- at level 1,

 will preserve numbering on import. The number will be in a label with the following attribute `inline="level1"`.

### `<convert-manual-numbering>`

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

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


```xml
<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**

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

*See use of:*

[manual-numbering-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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.

```xml
<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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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_\-].`


```xml

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

```xml

<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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-inline)

`output="prefix"` in:   

[numbered-paragraphs-true-output-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-output-prefix)  

[numbered-paragraphs-true-multilevel-output-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-prefix)

`@output="numbering" `in:   

[numbered-paragraphs-true-output-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-output-numbering)  

[numbered-paragraphs-true-multilevel-output-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-numbering)

`output="text"` in:   

[numbered-paragraphs-true-output-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-output-text)  

[numbered-paragraphs-true-multilevel-output-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-text)

`@output="prefix "` and `@output="numbering"` in:   

[numbered-paragraphs-true-multilevel-output-numbering-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-numbering-prefix)

`@output="text"` and `@output="prefix"` in:   

[numbered-paragraphs-true-multilevel-output-text-prefix](http://numbered-paragraphs-true-multilevel-output-text-prefix/)

multiple `@output` in:   

[numbered-paragraphs-true-multilevel-output-numbering-text-inline-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/numbered-paragraphs-true-multilevel-output-numbering-text-inline-prefix)

#### `<value>`

Determines the paragraph ordinal.

inline
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.  


```xml

<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_\-].`


```xml

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

**Example**

```xml

<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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/inline-one-character-style)

[inline-multi-character-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/inline-multi-character-style)

[inline-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/inline-one-paragraph-style)

##### \<autonumbering\>

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

**Example**

```xml

<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](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/manual-numbering-true-autonumbering)

##### \<prefix\>

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


level the indent or level to use when this prefix is applied (optional with values of `1` to `6`). *Requires pso-docx v1.5.0 or later.*


```xml
<xs:element name="prefix">
  <xs:complexType>
    <xs:attribute name="level">
      <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**

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

*See use of:*

[manual-numbering-true-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/manual-numbering-true-prefix)

## `<styles>`

Controls how styles from Word are translated to PSML.

ignore default wordstyle```xml

<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.

wordstyle```xml

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

**Example**

```xml

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

*See use of:*

[ignore-styles-toc-paragraph-styles](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/ignore-styles-toc-paragraph-styles)

[ignore-styles-body-text-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/ignore-styles-body-text-paragraph-style)

[ignore-styles-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/ignore-styles-one-paragraph-style)

[ignore-styles-multiple-paragraph-styles](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/ignore-styles-multiple-paragraph-styles)

### `<default>`

Contains the settings for general transformations of DOCX to PSML.

paragraphStyles characterStyles smart-tag references```xml
<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>.`

> **Note:** 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`.


```xml

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

```xml

<paragraphStyles value="block" />
```

*See use of:*

[default-paragraph-style-block](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/default-paragraph-style-block)

```xml

<paragraphStyles value="para" />
```

*See use of:*

[default-paragraph-style-para](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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. 


```xml
<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**

```xml
<characterStyles value="none" />
```

*See use of:*

[character-style-none](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/default-character-style-none)

```xml
<characterStyles value="inline" />
```

*See use of:*

[default-character-style-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/default-character-style-inline)

#### `<smart-tag>`

Word  [smart tag](http://office.microsoft.com/en-au/word-help/about-smart-tags-HP003083304.aspx) 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. 


```xml

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

**Example**

```xml

<smart-tag keep="false" />
```

*See use of:*

[smart-tag-false](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/smart-tag-false)

```xml

<smart-tag keep="true" />
```

*See use of:*

[smart-tag-true](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/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.


```xml

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

```xml

<references psmlelement="link" />
```

*See use of:* 

[default-references-link](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/default-references-link)

### `<wordstyle>`

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

label level numbering indent
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 `heading`, `para`, `block`, `preformat`, `caption`, `bold`, `inline`, `italic`, `monospace`, `underline`.


```xml
<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="para" />
          <xs:enumeration value="heading" />
          <xs:enumeration value="block" />
          <xs:enumeration value="monospace" />
          <xs:enumeration value="preformat" />
          <xs:enumeration value="caption" />
          <xs:enumeration value="bold" />
          <xs:enumeration value="inline" />
          <xs:enumeration value="italic" />
          <xs:enumeration value="monospace" />
          <xs:enumeration value="underline" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>
```

**Examples**

#### psmlelement="heading"

```xml

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

*See use of: *

[headings-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-one-paragraph-style)

[headings-multiple-paragraph-styles](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-paragraph-styles)

#### psmlelement="para"

```xml

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

*See use of: *

[para-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-one-paragraph-style) 

[para-multiple-paragraph-styles](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-paragraph-styles) 

[para-one-paragraph-style-with-block](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-one-paragraph-style-with-block)

[para-one-paragraph-style-with-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-one-paragraph-style-with-inline)

[para-with-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-with-numbering-inline) 

[para-with-numbering-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-with-numbering-numbering)

[para-with-numbering-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-with-numbering-prefix)

[para-with-numbering-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-with-numbering-text)

[para-multiple-with-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-with-numbering-inline) 

[para-multiple-with-numbering-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-with-numbering-prefix)

[para-multiple-with-numbering-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-with-numbering-text)

[para-multiple-with-numbering-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-with-numbering-numbering)

[para-multiple-with-numbering-prefix-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/para-multiple-with-numbering-prefix-numbering-inline)

#### psmlelement="block"

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

*See use of:*

[block-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/block-one-paragraph-style)

 [block-multiple-paragraph-styles](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/block-multiple-paragraph-styles)

##### **Captions attached to Images**

The default conversion of the default Word paragraph style ‘Caption’, when attached to an [Image](/reference/glossary/image.md), is into a `psmlelement="block"`.

**Example**

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

*See use of:*

[empty-configuration-(images)](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/empty-configuration-images)

#### psmlelement="preformat"

```xml
<wordstyle name="Heading1" psmlelement="preformat" />
<wordstyle name="HTMLPreformatted" psmlelement="preformat" /> (default)
```

*See use of:*

[preformat-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/preformat-one-paragraph-style)

[preformat-multi-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/preformat-multi-paragraph-style)

#### psmlelement="caption"

##### **Captions attached to Tables**

```text

psmlelement="caption"
```

*See use of:*

```xml

<wordstyle name="Caption"
           psmlelement="caption"
           table="default"/>
```

- PSML result when applied to a Word Default table style (`w:styleId="TableGrid"`):

```xml

<block label="Caption">Table 1</block>
  <table role="TableGrid">
```

*See use of:*

```xml

<wordstyle name="Caption" 
           psmlelement="caption" 
           table="tableYellow"/>
```

- PSML result when applied to a Word Custom table style (for example, `w:styleId="tableYellow"`):

```xml

<table role="tableYellow">
  <caption>Table 2 table with caption</caption>
```

#### psmlelement="bold"

*This requires pso-docx v1.1.0 or higher.*

```xml
<wordstyle name="Strong" psmlelement="bold">
```

#### psmlelement="inline"

```xml

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

*See use of:*

[inline-multi-character-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/inline-multi-character-style)

#### psmlelement="italic"

*This requires pso-docx v1.1.0 or higher.*

```xml
<wordstyle name="Emphasis" psmlelement="italic">
```

#### psmlelement="monospace"

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

*See use of:*

[monospace-one-character-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/monospace-one-character-style)

[monospace-multi-character-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/monospace-multi-character-style)

[monospace-one-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/monospace-one-paragraph-style)

[monospace-multi-paragraph-style](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/monospace-multi-paragraph-style)

#### psmlelement="underline"

*This requires pso-docx v1.1.0 or higher.*

```xml
<wordstyle name="IntenseEmphasis" psmlelement="underline">
```

#### `<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_\-]`.


```xml
<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>`:

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

[headings-one-paragraph-style-with-block](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-one-paragraph-style-with-block)

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

[headings-one-paragraph-style-with-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-one-paragraph-style-with-inline)

#### `<numbering>`

Supports a range of options for numbering headings and paragraphs.

label
select use `true` or `false` to determine if numbering is applied or 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.


```xml
<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**

```xml
<numbering select="false" />
```

```xml
<numbering select="true" value="numbering" numbered="true"/>
```

[headings-with-numbering-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-with-numbering-numbering)

[headings-multiple-with-numbering-numbering](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-with-numbering-numbering)

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

[headings-with-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-with-numbering-inline)

[headings-multiple-with-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-with-numbering-inline)

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

[headings-with-numbering-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-with-numbering-text)

[headings-multiple-with-numbering-text](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-with-numbering-text)

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

[headings-with-numbering-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-with-numbering-prefix)

[headings-multiple-with-numbering-prefix](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-with-numbering-prefix)

Use of multiple numbering `@value`:

[headings-multiple-with-numbering-prefix-numbering-inline](https://github.com/pageseeder/docx/tree/master/pso-docx-ant/src/test/import/cases/headings-multiple-with-numbering-prefix-numbering-inline)

#### `<indent>`

Determines position of the paragraph in the heirarchy.


value values of `1` to `6`


```xml

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

```xml

<indent value="2" />
```

## Deprecated

### `<add-numbering-to-document-titles>`

Numbers the titles in the [references](/reference/glossary/references_document.md) document.


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


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

**Example**

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

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





