[1] 原始要素指定は、 連結処理の元々の要素(型)を指定します。
暗示連結では連結集合宣言の直接の部分として、 明示連結では連結集合宣言を構成する明示連結規則の一部として使います。
原始要素指定 := 原始要素型 [連結集合使用指定
連結集合使用指定 := 1*ps
rni
USELINK 1*ps
(連結集合名 / rni
EMPTY) ;; (165) より
事後連結集合指定 := 1*ps
rni
POSTLINK 1*ps
(連結集合名 / rni
EMPTY / rni
RESTORE) ;; (165), (170) より
連結属性指定 := 1*ps
dso
属性指定並び *s
dsc
;; (166)
仕様書:
[7] 原始要素型は、同じ連結集合宣言中の他の連結規則とは異なるものでなければなりません。
ただし、その連結規則すべてに連結属性指定を指定する場合は、この限りでない
とされています。
(連結集合宣言中の全要素型に、ではなく、重複のある要素型に、か?
→ おそらく ISO 8879 の原文では , except
になっていたのでしょうが、
日本語訳した時に意味が取りづらくなったのでしょう。
ある要素型は、連結属性指定がある場合を除いて、一度しか使えない。 (連結属性指定があれば、その要素型は複数回使える。)
と解釈するのが適切だと思います。)
そのような重複がある場合にどれを選ぶかを応用は決めなければなりません。 仕様書には、連結属性 usage を用意して、そこに XPath のようなものでも書いておいて、 その値で選択するということが想定されているようなことが書いてあります。
[3] USELINK
による指定は、
当該要素型の要素が現在要素となった時に現在連結集合として使われる
(つまり当該要素型の要素の内容に適用される)
連結集合です。
USELINK
の指定は、
連結集合宣言を開始タグの直後に書いたのと同じ働きをします。
[4] POSTLINK
による指定は、
当該要素型の要素が終わった時に現在連結集合として使われる
(つまり当該要素型の要素の弟に適用される) 連結集合です。
POSTLINK
の指定は、
連結集合宣言を終了タグの直後に書いたのと同じ働きをします。
[5] 連結集合名は、同じ連結型宣言中の連結集合宣言で定義したものでなければなりません。
[6] 連結属性指定は、同じ連結型宣言の、 この原始要素指定よりも前にある属性定義並び宣言で原始要素型について宣言された連結属性を指定します。
連結属性指定は、属性指定並びが空になるときは、省略しなければなりません。 つまり [ ] のような指定を含めることはできません。