<join>

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

<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: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="scopea: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*
}
例子

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_l3result="lgscope="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.

例子

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>