<join>

<join> (join) バラバラにあるテキスト部分を参照し、ひとつのテキスト部分を指定する。 [17.7 Aggregation]
モジュール linking — Linking, Segmentation, and Alignment
属性
result⚓︎ 当該要素によりまとめられる要素名を示す。
状態 任意
データ型 teidata.name
scope⚓︎ まとめられる対象が、要素全体(すなわち当該要素をルートとする部分 木全体)、またはその子要素(すなわち部分木の枝)であるかどうかを示 す。
状態 推薦される
データ型 teidata.enumerated
正当な値:
root
属性で示された根付き部分木がまとめられ、各部分木は、当該要素 で作られた仮想要素の子となる。 [初期値]
branches
属性で示された部分木の子は、仮想要素の子となる(すなわち、当 該部分木の根は捨てられる。
クラブのメンバー
上位
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
下位
core: desc

The following example is discussed in section 17.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 target="#frog_l1 #frog_l2 #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 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.

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="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="listxml:id="LST1"
 target="#LP1 #LP2 #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>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <classRef key="model.descLike"/>
  <classRef key="model.certLike"/>
 </alternate>
</content>
宣言
<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 )*
}