<join>

<join> 標明文本中可能的不完整分割,指向構成此不完整分割的可能不連接元素。 16.7 Aggregation
組件 linking — 16 Linking, Segmentation, and Alignment
除全域屬性以外 att.pointing (@target, @evaluate) att.typed (@type, @subtype)
targets 標明與一個虛擬元素相連結的元素或段落識別符碼。
狀態 非必備的
資料類型 2–∞ 次可出現: 

<rng:ref name="data.pointer"/>
data.pointer
以空白鍵隔開
two or more pointers (URIs), separated by whitespace
result 指出一個推斷該元素集合所代表的元素名稱。
狀態 非必備的
資料類型

<rng:ref name="data.name"/>
data.name
The generic identifier of an element in the current DTD.
scope 指出被連結的目標是否包含所指元素的完整部份 (完整樹狀圖包含根節點) ,或僅包含該目標的子元素 (樹狀分支部份) 。
狀態 推薦的
合法的值是:
root
由屬性target所指明、具根節點的樹狀圖彼此連結,每個樹狀圖成為該連結所產生之虛擬元素的子元素。 [預設值]
branches
由屬性target所指明的樹狀圖的子元素成為虛擬元素的子元素 (例如捨去樹狀圖的根節點) 。
屬於
可包含
core: desc gloss
tagdocs: altIdent equiv
宣告

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

<sch:report test="@target and @targets">You may not supply both
@target and @targets</sch:report>
Schematron

<sch:report test="not(@target) and not(@targets)">You must
supply either @target or @targets</sch:report>
Schematron

<sch:assert test="contains(@target,' ')">You must supply at least two
values for @target</sch:assert>
例子
<sp>
 <speaker></speaker>
 <p>怎麼樣了?<q>
   <l xml:id="zh-tw_frog_x1">呱、呱、呱</l>
   <l xml:id="zh-tw_frog_l2">有新來的青蛙</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>路易</speaker>
 <p>
  <q>
   <l xml:id="zh-tw_frog_l1">以前的池塘</l>
   <l>...</l>
  </q>
 </p>
</sp>
<sp>
 <speaker>迪威</speaker>
 <p>
  <q>... <l xml:id="zh-tw_frog_l3">有新的池塘</l>
  </q>
 </p>
 <join
   targets="#zh-tw_frog_l1 #zh-tw_frog_l2 #zh-tw_frog_l3"
   result="lg"
   scope="root"/>

</sp>
例子
<p>台灣譯為<list xml:id="zh-tw_LP1">
  <item>
   <s>艾蜜莉的異想世界</s>
  </item>
 </list> ;香港譯作<list xml:id="zh-tw_LP2">
  <item>
   <s>天使愛美麗</s>
  </item>
 </list></p>
<p>中國大陸則名為<list xml:id="zh-tw_LP3">
  <item>
   <s>阿梅麗的奇妙命運</s>
  </item>
 </list></p>
<join
  result="list"
  xml:id="zh-tw_LST1"
  targets="#zh-tw_LP1 #zh-tw_LP2 #zh-tw_LP3"
  scope="branches">

 <desc>電影Le Fabuleux Destin d'Amélie Poulain的中港台譯名</desc>
</join>