<iNode>

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

<rng:ref name="data.pointer"/>
data.pointer
Values A valid identifier of a feature structure or other analytic element.
childrenprovides 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.
parentprovides 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.
followprovides an identifier of the element which this node follows.
Status Required 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.
outDegreegives 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 bytree
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>