<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?
}