[4] [[XML宣言]]の [DFN[[CODE(XMLa)@en[[[standalone]]]]]] [[擬似属性]] (正式には[DFN[[RUBYB[単独文書宣言]@en[standalone document declaration]]]]) は、その[[文書]]の[[内容]]や[[属性]]を[[外部部分集合実体]]や[[引数実体]]を処理せずに決定できるか否かを表します。 * 仕様書 [REFS[ - [3] [CITE@EN[Extensible Markup Language (XML) 1.0 (Fifth Edition)]] ([TIME[2013-05-28 20:49:56 +09:00]] 版) ]REFS] * 属性値 [5] 値 [DFN[[CODE(XML)@en[[[yes]]]]]] は、 [[XML処理器]]から[[応用]]に対して渡される情報に影響するような[[外部マーク付け宣言]]がないことを示します [SRC[>>3]]。 [6] 値 [DFN[[CODE(XML)@en[[[no]]]]]] は、[[XML処理器]]から[[応用]]に対して渡される情報に影響するような[[外部マーク付け宣言]]があるかもしれないことを示します [SRC[>>3]]。 [12] [[単独文書宣言]]がないときは、 [CODE(XML)@en[[[no]]]] とみなします [SRC[>>3]]。 ;; [7] あるかもしれないだけで、なくても構いません。 [8] ここで問題とされているのは、[[外部マーク付け宣言]]の有無です。従って、 - [9] [[内部部分集合]]に[[宣言]]があるか否かは影響しません。 - [10] [[実体宣言]]の種類は影響しません。[[内部部分集合]]に[[宣言]]があれば、そこで[[宣言]]されているのが[[外部実体]]であっても構いません。 [11] >>5 と >>6 の説明だけを読むと[[宣言]]の存在自体が表現されており、それが参照・利用されるかどうかは無関係なように思えますが、 >>13 の[[妥当性制約]] (とそれ以外の[[要件]]の欠如より) 参照、利用されていない限り[[外部マーク付け宣言]]があっても「影響するような」に該当せず、 [CODE(XML)@en[[[yes]]]] とできるようです。 * 妥当性制約: 単独文書宣言 [13] [[妥当性制約]]「[DFN[[RUBYB[単独文書宣言]@en[Standalone Document Declaration]]]]」は次のような要件となっています [SRC[>>3]]。 > いずれかの[[外部マーク付け宣言]]が次のような[[宣言]]を含んでいるなら、[[単独文書宣言]]は値 [CODE(XML)@en[[[no]]]] を持たなければ[['''なりません''']]。 - [14] [[属性]]の[[既定値]]の[[宣言]]であって、その[[属性]]が適用される[[要素]]が[[文書]]中に現れ、 当該[[属性]]の値が指定されていない場合 - [15] [[定義済み実体]]以外の[[実体]]の[[宣言]]であって、[[文書]]中で[[参照]]されているもの - [16] 字句化される型を持つ[[属性]]の[[宣言]]であって、[[文書]]中にその[[属性]]が現れ、 [[宣言]]がなかったとしたら違った値に[[正規化]]される場合 - [17] [[要素内容]]を持つ[[要素型]]の[[宣言]]であって、その[[実現値]]たる[[要素]]の中に[[空白]]が直接現れる場合 ;; [18] [[文書要素]]とその[[子孫]]での利用についてが対象とされており、[[DTD]] の情報は対象外となっているようです。 例えば[[属性定義並び宣言]]の[[既定値]]の中に[[実体参照]]があり、それが[[外部マーク付け宣言]]により[[宣言]]されていても、 [CODE(XML)@en[[[yes]]]] とできそうです。 ;; [19] [[記法宣言]]や[[引数実体宣言]]は直接影響しないようです。 * 不思議解釈 [1] [CITE[XML - Extensible Markup Language]] ([TIME[2007-03-10 11:04:55 +09:00]] 版) > 当該の XML 文書が則るべき DTD の有無を指定します。あれば no、無ければ yes とします。 > 参照する DTD は後続の DTD 宣言で識別しますが、この DTD に照らして適正な文書は、「妥当 (valid) な文書」だと云われます。この妥当性の検証は、情報の交換、共有時には絶対に必要なことです。 > XHTML の場合は、参照すべき DTD が W3C から提供されていますから、 standalone="no" です。 意味不明。 * メモ [2] [CITE@en[RFC 6120 - Extensible Messaging and Presence Protocol (XMPP): Core]] ( ([TIME[2011-03-31 08:23:45 +09:00]] 版))