<tree>

<tree> (arbre) encode un arbre, qui est composé d'une racine, de nœuds internes, de feuilles et d'arcs allant de la racine vers les feuilles. [19.2 Trees]
Modulenets — 19 Graphs, Networks, and Trees
Attributsatt.global (@xml:id, @n, @xml:lang, @rend, @style, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change))
aritydonne le nombre maximal d'enfants de la racine et des nœuds internes de l'arbre.
Statut Optionel
Type de données

<rng:ref name="data.count"/>
data.count
Valeurs Un entier non négatif.
ord (ordonné) indique si l'arbre est ordonné ou non ou s'il l'est partiellement.
Statut Requis
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
Les valeurs autorisées sont:
true
indique que, dans l'arbre, tous les nœuds d'embranchement sont ordonnés. [Valeur par défaut]
partial
indique que, dans l'arbre, certains nœuds d'embranchement sont ordonnés et d'autres non.
false
indique que, dans l'arbre, tous les nœuds d'embranchement sont non ordonnés.
orderdonne l'ordre de l'arbre, c'est-à-dire le nombre de ses nœuds.
Statut Optionel
Type de données

<rng:ref name="data.count"/>
data.count
Valeurs Un entier non négatif.
Note
La taille d'un arbre étant toujours inférieure d'un à son ordre, il n'est donc pas nécessaire d'avoir en même temps un attribut size et un attribut order.
Utilisé par
Contenu dans
Peut contenir
core: label
Declaration

<rng:element name="tree">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.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,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   attribute arity { data.count }?,
   attribute ord { "true" | "partial" | "false" },
   attribute order { data.count }?,
   ( label?, ( ( leaf | iNode )*, root, ( leaf | iNode )* ) )
}
Exemple
<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>
Exemple
<tree
  n="ex2"
  arity="2"
  ord="partial"
  order="13">

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

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

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

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

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

  <label>+</label>
 </iNode>
 <leaf xml:id="fr_G-vara1" parent="#fr_G-exp2">
  <label>a</label>
 </leaf>
 <leaf xml:id="fr_G-num2.1" parent="#fr_G-exp2">
  <label>2</label>
 </leaf>
 <leaf xml:id="fr_G-varb1" parent="#fr_G-exp3">
  <label>b</label>
 </leaf>
 <leaf xml:id="fr_G-num2.2" parent="#fr_G-exp3">
  <label>2</label>
 </leaf>
 <leaf xml:id="fr_G-vara2" parent="#fr_G-plu2">
  <label>a</label>
 </leaf>
 <leaf xml:id="fr_G-varb2" parent="#fr_G-plu2">
  <label>b</label>
 </leaf>
 <leaf xml:id="fr_G-num2.3" parent="#fr_G-exp1">
  <label>2</label>
 </leaf>
</tree>
Note
Il doit y avoir un nœud racine et zéro, un ou plusieurs nœuds internes et feuilles. S'il y a un nœud interne, il doit y avoir au moins une feuille.