<tree>

<tree> encodes a tree, which is made up of a root, internal nodes, leaves, and arcs from root to leaves. 19.2 Trees
Modul nets — 19 Graphs, Networks, and Trees
Neben global gültigen Attributen
arity gives the maximum number of children of the root and internal nodes of the tree.
Zustand Optional
Datentyp

<rng:ref name="data.count"/>
data.count
Werte A nonnegative integer.
ord (ordered) indicates whether or not the tree is ordered, or if it is partially ordered.
Zustand Obligatorisch
Gültige Werte:
true
indicates that all of the branching nodes of the tree are ordered. [Vorgabe]
partial
indicates that some of the branching nodes of the tree are ordered and some are unordered.
false
indicates that all of the branching nodes of the tree are unordered.
order gives the order of the tree, i.e., the number of its nodes.
Zustand Optional
Datentyp

<rng:ref name="data.count"/>
data.count
Werte A nonnegative integer.
Verwendet von
Kann enthalten
core: label
nets: iNode leaf root
Deklaration

<rng:element name="tree">
 <rng:ref name="att.global.attributes"/>
 <rng:optional>
  <rng:attribute name="arity">
   <rng:ref name="data.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:attribute name="ord" a:defaultValue="true">
  <rng:choice>
   <rng:value>true</rng:value>
   <rng:value>partial</rng:value>
   <rng:value>false</rng:value>
  </rng:choice>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="order">
   <rng:ref name="data.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:optional>
   <rng:ref name="label"/>
  </rng:optional>
  <rng:group>
   <rng:zeroOrMore>
    <rng:choice>
     <rng:ref name="leaf"/>
     <rng:ref name="iNode"/>
    </rng:choice>
   </rng:zeroOrMore>
   <rng:ref name="root"/>
   <rng:zeroOrMore>
    <rng:choice>
     <rng:ref name="leaf"/>
     <rng:ref name="iNode"/>
    </rng:choice>
   </rng:zeroOrMore>
  </rng:group>
 </rng:group>
</rng:element>
element tree
{
   att.global.attributes,
   attribute arity { data.count }?,
   attribute ord { "true" | "partial" | "false" },
   attribute order { data.count }?,
   ( label?, ( ( leaf | iNode )*, root, ( leaf | iNode )* ) )
}
Beispiel
<tree
  n="ex2"
  arity="2"
  ord="partial"
  order="13">

 <root xml:id="G-div1" children="#G-plu1 #G-exp1" ord="true">
  <label>/</label>
 </root>
 <iNode
   xml:id="G-plu1"
   children="#G-exp2 #G-exp3"
   parent="#G-div1"
   ord="false">

  <label>+</label>
 </iNode>
 <iNode
   xml:id="G-exp1"
   children="#G-plu2 #G-num2.3"
   parent="#G-div1"
   ord="true">

  <label>**</label>
 </iNode>
 <iNode
   xml:id="G-exp2"
   children="#G-vara1 #G-num2.1"
   parent="#G-plu1"
   ord="true">

  <label>**</label>
 </iNode>
 <iNode
   xml:id="G-exp3"
   children="#G-varb1 #G-num2.2"
   parent="#G-plu1"
   ord="true">

  <label>**</label>
 </iNode>
 <iNode
   xml:id="G-plu2"
   children="#G-vara2 #G-varb2"
   parent="#G-exp1"
   ord="false">

  <label>+</label>
 </iNode>
 <leaf xml:id="G-vara1" parent="#G-exp2">
  <label>a</label>
 </leaf>
 <leaf xml:id="G-num2.1" parent="#G-exp2">
  <label>2</label>
 </leaf>
 <leaf xml:id="G-varb1" parent="#G-exp3">
  <label>b</label>
 </leaf>
 <leaf xml:id="G-num2.2" parent="#G-exp3">
  <label>2</label>
 </leaf>
 <leaf xml:id="G-vara2" parent="#G-plu2">
  <label>a</label>
 </leaf>
 <leaf xml:id="G-varb2" parent="#G-plu2">
  <label>b</label>
 </leaf>
 <leaf xml:id="G-num2.3" parent="#G-exp1">
  <label>2</label>
 </leaf>
</tree>