<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. [20.2 Trees]
Module nets — Graphs, Networks, and Trees
Attributs
arity⚓︎ donne le nombre maximal d'enfants de la racine et des nœuds internes de l'arbre.
Statut Optionel
Type de données teidata.count
ord⚓︎ (ordonné) indique si l'arbre est ordonné ou non ou s'il l'est partiellement.
Statut Requis
Type de données teidata.enumerated
Les valeurs autorisées sont:
true
indique que, dans l'arbre, tous les nœuds d'embranchement sont ordonnés.
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.
order⚓︎ donne l'ordre de l'arbre, c'est-à-dire le nombre de ses nœuds.
Statut Optionel
Type de données teidata.count
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.

Membre du
Contenu dans
Peut contenir
core: label
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.

Exemple
<tree n="ex2arity="2ord="partial"
 order="13">

 <root xml:id="G-div1"
  children="#G-plu1 #G-exp1ord="true">

  <label>/</label>
 </root>
 <iNode xml:id="G-plu1"
  children="#G-exp2 #G-exp3parent="#G-div1ord="false">

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

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

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

  <label>**</label>
 </iNode>
 <iNode xml:id="G-plu2"
  children="#G-vara2 #G-varb2parent="#G-exp1ord="false">

  <label>+</label>
 </iNode>
 <leaf xml:id="G-vara1parent="#G-exp2">
  <label>a</label>
 </leaf>
 <leaf xml:id="G-num2.1parent="#G-exp2">
  <label>2</label>
 </leaf>
 <leaf xml:id="G-varb1parent="#G-exp3">
  <label>b</label>
 </leaf>
 <leaf xml:id="G-num2.2parent="#G-exp3">
  <label>2</label>
 </leaf>
 <leaf xml:id="G-vara2parent="#G-plu2">
  <label>a</label>
 </leaf>
 <leaf xml:id="G-varb2parent="#G-plu2">
  <label>b</label>
 </leaf>
 <leaf xml:id="G-num2.3parent="#G-exp1">
  <label>2</label>
 </leaf>
</tree>
Exemple
<tree n="ex2arity="2ord="partial"
 order="13">

 <root xml:id="fr_G-div1"
  children="#fr_G-plu1 #fr_G-exp1ord="true">

  <label>/</label>
 </root>
 <iNode xml:id="fr_G-plu1"
  children="#fr_G-exp2 #fr_G-exp3parent="#fr_G-div1ord="false">

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

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

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

  <label>**</label>
 </iNode>
 <iNode xml:id="fr_G-plu2"
  children="#fr_G-vara2 #fr_G-varb2parent="#fr_G-exp1ord="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>
Modèle de contenu
<content>
 <sequence>
  <elementRef key="labelminOccurs="0"/>
  <sequence>
   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="leaf"/>
    <elementRef key="iNode"/>
   </alternate>
   <elementRef key="root"/>
   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="leaf"/>
    <elementRef key="iNode"/>
   </alternate>
  </sequence>
 </sequence>
</content>
Schéma Declaration
<rng:element name="tree">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.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:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:optional>
  <rng:attribute name="arity">
   <rng:ref name="teidata.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:attribute name="ord">
  <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="teidata.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.rendition.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   attribute arity { teidata.count }?,
   attribute ord { "true" | "partial" | "false" },
   attribute order { teidata.count }?,
   ( label?, ( ( leaf | iNode )*, root, ( leaf | iNode )* ) )
}