<join>

<join> identifica un segmento o frammento di testo puntando ad eventuali elementi non contigui che lo compongono 16.7 Aggregation
Modulo linking — 16 Linking, Segmentation, and Alignment
Oltre agli attributi globali att.pointing (@type, @evaluate)
targets specifica gli identificatori degli elementi o porzioni di testo da collegare in un elemento virtuale
Stato Richiesto
Tipo di dati 2–∞ occorrenze di 

<rng:ref name="data.pointer"/>
data.pointer
separato da spazio bianco
Valori two or more pointers (URIs), separated by whitespace
result indica il nome dell'elemento rappresentato dall'insieme di identificatori in questione
Stato Opzionale
Tipo di dati

<rng:ref name="data.name"/>
data.name
Valori The generic identifier of an element in the current DTD.
scope specifica se le destinazioni da collegare includono l'intero elemento indicato (l'intero albero compresa la radice) oppure solo gli elementi che hanno come genitore la stessa destinazione (i rami dell'albero)
Stato Consigliato
I valori legali sono:
root
gli alberi dotati di radice e indicati dall'attributo delle destinazioni sono collegati e ogni albero diventa un discendente dell'elemento virtuale ottenuto dal collegamento [Valore di default]
branches
i discendenti degli alberi indicati dall'attributo delle destinazioni diventano i discendenti dell'elemento virtuale (cioè vengono rimosse le radici dei vari alberi)
Usato da
Può contenere
core: desc gloss
tagdocs: altIdent equiv
Dichiarazione

<rng:element name="join">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.pointing.attributes"/>
 <rng:attribute name="targets">
  <rng:list>
   <rng:ref name="data.pointer"/>
   <rng:oneOrMore>
    <rng:ref name="data.pointer"/>
   </rng:oneOrMore>
  </rng:list>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="result">
   <rng:ref name="data.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:ref name="model.glossLike"/>
 </rng:zeroOrMore>
</rng:element>
element join
{
   att.global.attributes,
   att.pointing.attributes,
   attribute targets { list { data.pointer, data.pointer+ } },
   attribute result { data.name }?,
   attribute scope { "root" | "branches" }?,
   model.glossLike*
}
Esempio

The following example is discussed in section 16.7 Aggregation:

<sp>
 <speaker>Hughie</speaker>
 <p>How does it go? <q>
   <l xml:id="frog_x1">da-da-da</l>
   <l xml:id="frog_l2">gets a new frog</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>Louie</speaker>
 <p>
  <q>
   <l xml:id="frog_l1">When the old pond</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>Dewey</speaker>
 <p>
  <q>... <l xml:id="frog_l3">It's a new pond.</l>
  </q>
 </p>
 <join targets="#frog_l1 #frog_l2 #frog_l3" result="lg" scope="root"/>
</sp>

The join element here identifies a linegroup (lg) comprising the three lines indicated by the targets attribute. The value root for the scope 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.

Esempio

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 targets 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="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="LP2">
  <item>
   <s>I done go</s>
  </item>
 </list>.</p>
<p>White Southern dialect also has <list xml:id="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="list"
  xml:id="LST1"
  targets="#LP1 #LP2 #LP3"
  scope="branches">

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