<iNode>

<iNode> (intermediate (or internal) node) represents an intermediate (or internal) node of a tree. 19.2 Trees
Module nets — 19 Graphs, Networks, and Trees
In addition to global attributes In addition to global attributes
value provides the value of an intermediate node, which is a feature structure or other analytic element.
Status Recommended when applicable
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Values A valid identifier of a feature structure or other analytic element.
children provides a list of identifiers of the elements which are the children of the intermediate node.
Status Required
Datatype 1–∞ occurrences of 

<rng:ref name="data.pointer"/>
data.pointer
separated by whitespace
Values A list of identifiers.
parent provides the identifier of the element which is the parent of this node.
Status Optional
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Values The identifier of the parent node.
ord (ordered) indicates whether or not the internal node is ordered.
Status Optional
Datatype

<rng:ref name="data.xTruthValue"/>
data.xTruthValue
Note
The value true indicates that the children of the intermediate node are ordered, whereas false indicates the are unordered.
Use if and only if ord is specified as partial on the tree element and the intermediate node has more than one child.
follow provides an identifier of the element which this node follows.
Status Recommended when applicable
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Values The identifier of another intermediate node or leaf of the tree.
Note
If the tree is unordered or partially ordered, this attribute has the property of fixing the relative order of the intermediate node and the element which is the value of the attribute.
outDegree gives the out degree of an intermediate node, the number of its children.
Status Optional
Datatype

<rng:ref name="data.count"/>
data.count
Values A nonnegative integer.
Note
The in degree of an intermediate node is always 1.
Used by
May contain
core: label
Declaration

<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?
}
Example
<iNode
  xml:id="pt1"
  children="#GD-UP1"
  parent="#GD-VB1"
  follow="#GD-PN1"
  outDegree="1">

 <label>PT</label>
</iNode>