<rng:element name="iNode">
<rng:ref name="att.global.attributes"/>
<rng:optional>
<rng:attribute name="value">
<rng:ref name="data.pointer"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="children">
<rng:list>
<rng:oneOrMore>
<rng:ref name="data.pointer"/>
</rng:oneOrMore>
</rng:list>
</rng:attribute>
<rng:optional>
<rng:attribute name="parent">
<rng:ref name="data.pointer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="ord">
<rng:ref name="data.xTruthValue"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="follow">
<rng:ref name="data.pointer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="outDegree">
<rng:ref name="data.count"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="label"/>
</rng:optional>
</rng:element>
element iNode
{
att.global.attributes,
attribute value { data.pointer }?,
attribute children { list { data.pointer+ } },
attribute parent { data.pointer }?,
attribute ord { data.xTruthValue }?,
attribute follow { data.pointer }?,
attribute outDegree { data.count }?,
label?
}