[12] システム識別子は、実体その他の所在を表すシステム依存の識別子です。元々 SGML では完全にシステム依存の値でしたが、公式システム識別子としてある程度相互運用性のある構文が後に規定されています。 とは言えそれもほぼ利用されず、ファイル名を指定することがほとんどでありました。 XML は URL をシステム識別子として使っています。
[2] システム識別子は、 URI参照に変換される文字列です。実体宣言や文書型宣言や記法宣言で使います。 >>23
[24] 実体の置換文を得るために URI に変換されることを意図した文字列である >>23 とされていますが、記法宣言で使うこともでき、その場合の意味は厳密には規定がありません。
[4] システム識別子が使用可能なのは文書型宣言, 実体宣言, 記法宣言です。記法宣言以外では (外部識別子を使う場合) 必須です。)
[26] システム識別子は、URL です。絶対URLでも相対URLでも構いません。
[3] 区切子 ("
又は '
) を除いたどんな文書文字集合中の文字でも使用できます。 http://www.w3.org/TR/REC-xml#NT-SystemLiteral
修正歴:
[31]
システム識別子 (及び他の XML 文字列で URI 参照として使われることになるもの)
の、システム識別子以外の XML 文字列たる URI 参照になるものって何?
まさか xml:base
のような関連規格を指しているわけではありませんよね? でもシステム識別子以外に XML 本体に URI 参照って使われますか?
[9] XML Schema は XML の NOTATION
に対応する notation
を規定しており、これにもシステム識別子が存在します。その値は xs:anyURI
とされています。
[15] 文書型宣言、連結型宣言、実体宣言、記法宣言、 未展開実体参照情報項目のいずれでもシステム識別子は必須ではありません。 ただし XML では公開識別子がある場合システム識別子も必須です。また XML の実体宣言ではシステム識別子は必須です。またいずれも空文字列とすることもできます。
[8] システム識別子を空文字列にしてしまうと、本当に外部部分集合を読もうとする処理器 (で公開識別子から型録を引かない場合) はその文書実体自体を外部部分集合実体とみなすわけですから、 当然外部部分集合として整形式になりません。こんなんでいいんでしょうか。
[16] XML情報集合ではいずれも無値となり得ます。また未展開実体参照情報項目については未知ともなり得ます。
[17] DOM Standard では DocumentType
の systemId
を null にすることができません。 HTML Living Standard および Webブラウザーはシステム識別子のない
DOCTYPE
の場合空文字列にします。
[11] DOM3 は DocumentType
の
systemId
が null
になる可能性に言及していません。
Entity
, Notation
については null になり得るとしていました。
[13] ほとんどすべての場面でシステム識別子と公開識別子がセットで用いられます。 元々はシステム識別子はシステム固有の値であって相互運用性は保証されず、 公開識別子はシステム非依存の値であって相互運用性のあるものと想定されていたようですが、 SGML型録を実装していたまともな SGML処理器以外では公開識別子はあまり意味のない記号列と化しており、 特に XML ではもっぱらシステム識別子が実体を識別する用途に使われています。
[5]
鳥さんの独り言 XHTML文書のDTDのURL(URI)は必須? (2007-08-14 20:56:14 +09:00
版) http://gowest.blog2.fc2.com/blog-entry-47.html
HTML鳩丸倶楽部さんの「文書型宣言の読み方」(URIを示すと横幅オーバーになってしまうので、ググッてください)に書かれている内容が、一般的な理解と言ってよいでしょう。
一般的な理解
ってなにさw SGML の仕様書嫁だよw