<join>

<join> (jointure) identifie un segment de texte, qui peut être fragmenté, en pointant vers les éléments éventuellement dispersés qui le composent. [17.7 Aggregation]
Module linking — Linking, Segmentation, and Alignment
Attributs
result⚓︎ spécifie le nom de l'élément que cette agrégation est censée former.
Statut Optionel
Type de données teidata.name
scope⚓︎ indique si les cibles à réunir incluent l'intégralité de l'élément indiqué (le sous-arbre entier y compris sa racine) ou seulement les enfants de la cible (les branches du sous-arbre).
Statut Recommendé
Type de données teidata.enumerated
Les valeurs autorisées sont:
root
les sous-arbres dotés de leur racine qui sont désignés par l'attribut target sont joints ; chaque sous-arbre devient un fils de l'élément virtuel créé par la jointure. [Valeur par défaut]
branches
les fils des sous-arbres désignés par l'attribut target deviennent les fils de l'élément virtuel (c'est-à-dire que les racines des sous-arbres disparaissent).
Membre du
Contenu dans
analysis: cl m phr s span w
cmc: post
figures: cell figure table
nets: graph
spoken: u writing
tagdocs: eg valDesc
textcrit: lem rdg wit witDetail
verse: metSym rhyme
Peut contenir
core: desc
Exemple

The following example is discussed in section 17.7 Aggregation:

<sp>
 <speaker>Hughie</speaker>
 <p>How does it go? <q>
   <l xml:id="fr_frog_x1">da-da-da</l>
   <l xml:id="fr_frog_l2">gets a new frog</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>Louie</speaker>
 <p>
  <q>
   <l xml:id="fr_frog_l1">When the old pond</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>Dewey</speaker>
 <p>
  <q>... <l xml:id="fr_frog_l3">It's a new pond.</l>
  </q>
 </p>
 <join target="#fr_frog_l1 #fr_frog_l2 #fr_frog_l3"
  result="lgscope="root"/>

</sp>

The join element here identifies a linegroup (lg) comprising the three lines indicated by the target attribute. The value root for thescope attribute indicates that the resulting virtual element contains the three l elements linked to at #frog_l1 #frog_l2 #frog_l3, rather than their character data content.

Exemple

In this example, the attribute scope is specified with the value of branches to indicate that the virtual list being constructed is to be made by taking the lists indicated by the target attribute of the join element, discarding the list tags which enclose them, and combining the items contained within the lists into a single virtual list:

<p>Southern dialect (my own variety, at least) has only <list xml:id="fr_LP1">
  <item>
   <s>I done gone</s>
  </item>
  <item>
   <s>I done went</s>
  </item>
 </list> whereas Negro Non-Standard basilect has both these and <list xml:id="fr_LP2">
  <item>
   <s>I done go</s>
  </item>
 </list>.</p>
<p>White Southern dialect also has <list xml:id="fr_LP3">
  <item>
   <s>I've done gone</s>
  </item>
  <item>
   <s>I've done went</s>
  </item>
 </list> which, when they occur in Negro dialect, should probably be considered as
borrowings from other varieties of English.</p>
<join result="listxml:id="fr_LST1"
 target="#fr_LP1 #fr_LP2 #fr_LP3scope="branches">

 <desc>Sample sentences in Southern speech</desc>
</join>
Schematron

<sch:rule context="tei:join">
<sch:assert test="contains( normalize-space( @target ),' ')"> You must supply at least two values for @target on <sch:name/>
</sch:assert>
</sch:rule>
Modèle de contenu
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <classRef key="model.descLike"/>
  <classRef key="model.certLike"/>
 </alternate>
</content>
Schéma Declaration
<rng:element name="join">
 <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:ref name="att.pointing.attributes"/>
 <rng:ref name="att.typed.attributes"/>
 <rng:ref name="att.cmc.attributes"/>
 <rng:optional>
  <rng:attribute name="result">
   <rng:ref name="teidata.name"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="scope"
   a:defaultValue="root">

   <rng:choice>
    <rng:value>root</rng:value>
    <rng:value>branches</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:zeroOrMore>
  <rng:choice>
   <rng:ref name="model.descLike"/>
   <rng:ref name="model.certLike"/>
  </rng:choice>
 </rng:zeroOrMore>
</rng:element>
element join
{
   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,
   att.pointing.attributes,
   att.typed.attributes,
   att.cmc.attributes,
   attribute result { teidata.name }?,
   attribute scope { "root" | "branches" }?,
   ( model.descLike | model.certLike )*
}