L.1.10.8 Referencing Numbering Styles
To use a numbering style in a document, the paragraph properties for one or more paragraphs again specify a numPr element, which references a numbering definition instance via the numId element. The numbering definition instance itself again specifies an inherited abstract numbering definition via the abstractNumId element.
At this stage, the abstract numbering definition specifies that it is based on a numbering style via either of the following:
The abstract numbering style contains no level data, and simply specifies a reference to the numbering style’s styleId attribute via the numStyleLink element. The abstract numbering style contains the numbering level information for the numbering style, and specifies that it is the basis for the numbering style by referencing the numbering style’s styleId attribute via the styleLink element.
Although the result of each method is identical, the following two examples illustrate each of the syntaxes:
Consider the first numbering style syntax, in which the numbering on a paragraph is based on an abstract numbering definition which simply references the numbering style via numStyleLink. The contents of the paragraph would consist of the following:
<w:p>
<w:pPr>
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="6" />
</w:numPr>
</w:pPr>
<w:r>
<w:t>This paragraph references a numbering style via
numStyleLink.</w:t>
</w:r>
</w:p>
The numId element references a numbering definition instance with a value of 6, located in the numbering part:
<w:num w:numId="6">
<w:abstractNumId w:val="0" />
</w:num>
Based on the abstractNumId of 0, this instance inherits the abstract numbering definition with an abstractNumId of 0:
<w:abstractNum w:abstractNumId="0">
<w:nsid w:val="38901FA4" />
<w:multiLevelType w:val="multilevel" />
<w:numStyleLink w:val="TestNumberingStyle" />
</w:abstractNum>
This abstract numbering definition contains no numbering information - it simply notes that it inherits the numbering information from the numbering style TestNumberingStyle by referencing the styleId attribute on that style:
<w:style w:type="numbering" w:styleId="TestNumberingStyle">
<w:name w:val="Test Numbering Style" />
<w:uiPriority w:val="99" />
<w:rsid w:val="00DB3C4B" />
<w:pPr>
<w:numPr>
<w:numId w:val="4" />
</w:numPr>
</w:pPr>
</w:style>
The style references a numbering definition instance, again via the numId element:
<w:num w:numId="4">
<w:abstractNumId w:val="2" />
</w:num>
Based on the abstractNumId of 2, this instance inherits the abstract numbering definition with an abstractNumId of 2:
<w:abstractNum w:abstractNumId="2">
<w:nsid w:val="46364EB7" />
<w:multiLevelType w:val="multilevel" />
<w:styleLink w:val="TestNumberingStyle" />
<w:lvl w:ilvl="0">
<w:lvlText w:val="%1 %1 %1" />
<w:lvlJc w:val="start" />
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="360" />
</w:tabs>
<w:ind w:left="0" w:firstLine="0" />
</w:pPr>
</w:lvl>
…
</w:abstractNum>
This abstract numbering definition defines the properties for each level of the numbering format (levels 1 through 9 omitted for brevity). Since neither of the numbering definition instances specified overrides for level 0, the properties from abstract numbering format 2 are applied to level 0 in the resulting numbering definition instance and are applied to the text via the ilvl element.
Consider the second numbering style syntax, in which the numbering on a paragraph is based on an abstract numbering definition which defines the numbering information and references the numbering style via styleLink. The contents of the paragraph would consist of the following:
<w:p>
<w:pPr>
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="4" />
</w:numPr>
</w:pPr>
<w:r>
<w:t>This paragraph references a numbering style via styleLink.</w:t>
</w:r>
</w:p>
The numId element references a numbering definition instance with a value of 4, located in the numbering part:
<w:num w:numId="4">
<w:abstractNumId w:val="2" />
</w:num>
Based on the abstractNumId of 2, this instance inherits the abstract numbering definition with an abstractNumId of 2:
<w:abstractNum w:abstractNumId="2">
<w:nsid w:val="46364EB7" />
<w:multiLevelType w:val="multilevel" />
<w:styleLink w:val="TestNumberingStyle" />
<w:lvl w:ilvl="0">
<w:lvlText w:val="%1 %1 %1" />
<w:lvlJc w:val="start" />
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="360" />
</w:tabs>
<w:ind w:left="0" w:firstLine="0" />
</w:pPr>
</w:lvl>
…
</w:abstractNum>
This abstract numbering definition defines the properties for each level of the numbering format (levels 1 through 9 omitted for brevity) and specifies that it is the underlying numbering information for a numbering format by referencing the styleId of that numbering style via the styleLink element. Since the numbering definition instances specified no override for level 0, the properties from abstract numbering format 2 are applied to level 0 in the resulting numbering definition instance and are applied to the text via the ilvl element.