第33回 XML勧告への適合性を示すConformance Page 3
川俣 晶
株式会社ピーデー
2005/5/11
「5.1 Validating and Non-Validating Processors(5.1 妥当性を検証するプロセッサおよび検証しないプロセッサ)」で扱った内容が、XMLプロセッサ開発者のための規定だとすれば、ここで扱うのはXMLプロセッサ利用者のための規定である。こちらの方は、記述内容を活用できる人も多いだろう。じっくりと読んでいこう。
The behavior of a validating XML processor is highly predictable; it must read every piece of a document and report all well-formedness and validity violations. Less is required of a non-validating processor; it need not read any part of the document other than the document entity. This has two effects that may be important to users of XML processors: |
妥当性を検証するXMLプロセサの振る舞いはほとんど予測可能であり、すなわち、文書のすべての断片を読み込み、整形式および妥当性に対するすべての違反を報告しなければならないが、妥当性を検証しないプロセサに必要とされることはそれより少なく、すなわち、文書実体以外の文書の断片を読み込む必要はない。従って、XMLプロセサの利用者に対して重要な2つの効果を持つ。 |
前半の文章で問題にされているのは、XMLプロセッサの振る舞いが予測可能か否かである。何回も繰り返し話題にしたように、XML 1.0勧告には、多くの「してもよい(MAY)」機能が含まれる。それは処理結果を予測しがたいという使いにくさを生む。しかし、それらの多くは妥当性を検証しないプロセッサで発生する問題であり、妥当性を検証するXMLプロセッサでは大抵の結果を予測可能である。
次の文章で述べている「2つの効果」とは、この次に記述された2つの項目を意味する。なお、JIS X 4159ではこれらの項目にa)、b)という名前が与えられているがW3Cの原文にはない。
|
|
第1の項目は、誤りの扱いについて記されている。妥当性を検証しないプロセッサは、外部実体を読まなくてもよいので、読まなければ検出できない誤りを検出できないのは当然のことといえるが、この規定はそれを肯定する。つまり、たとえ整形式制約からの逸脱があったとしても、妥当性を検証しないプロセッサはそれを検出しない場合があるということである。次の文章で、検出しなくてもよい具体例を説明している。
第2の項目は、XMLプロセッサから応用プログラムに渡される情報について記されている。これまで読んできた内容とも関連するが、XMLプロセッサから応用プログラムに渡される情報は、XMLプロセッサの実装により、変化する場合がある。変化が発生する原因は、ここに記された「パラメタ実体と外部実体を読み込むかどうか」にある。次の文章では、より具体的にこのことについて記している。つまり、ここで述べられたさまざまな任意選択の機能が処理されるか否かは、それが読み込まれているかどうかによっている、ということが示されている。つまり、実装により結果が変化する処理は、宣言を読み込むかどうかが大きな鍵を握っているということである。
さて、これで2つの項目を読み終わった。次は、通常の文章に戻り、XMLプロセッサの使い方の指針を述べている。
For maximum reliability in interoperating between different XML processors, applications which use non-validating processors SHOULD NOT rely on any behaviors not required of such processors. Applications which require DTD facilities not related to validation (such as the declaration of default attributes and internal entities that are or may be specified in external entities) SHOULD use validating XML processors. |
異なるXMLプロセサ間での相互運用性を最も高めるためには、妥当性を検証しないプロセサを使用する応用プログラムは、そのようなプロセサでは必要とされない振る舞いに依存すべきではない。検証に関係しないDTDの機能(例えば、デフォルト属性や、外部実体で指定された、あるいは、されたかもしれない内部実体の宣言)を必要とする応用プログラムは、妥当性を検証するプロセサを使用することが望ましい(SHOULD)。 |
前半の文章は、すでに読んだことから必然的に導き出される規定といえる。相互運用性を高めたいと思うなら、そのようなプロセッサでは必要とされない振る舞い、つまり、処理されるかもしれないし、されないかもしれない機能に依存すべきではない。次の文では、妥当性の検証を行わない場合でも、妥当性を検証するプロセッサを使用することが望ましいケースについて記されている。後半では、DTDには検証に関係する機能と関係しない機能があり、後者を使うだけであっても、DTDを確実に処理してくれる妥当性を検証するプロセッサを使用する方がよいということである。
◇
以上で、「5 Conformance(5 適合性)」はすべて読み切ったことになる。次に「6 Notation(6 記法)」があるが、これはこの連載で最初に読んだ個所である。そして、XML 1.0勧告の本文は「6 Notation(6 記法)」までである。つまり、われわれはXML 1.0勧告の本文をすべて読み切ったのである。お疲れさまである。しかし、まだここで終わるわけにはいかない。まだ多数の「Appendices(附属書)」が残っているためである。これらは、附属書と呼ばれていても重要な情報や規定が書かれたものが含まれ、目を通さずには済まされない。そして、付属書の中には、本文よりもエキサイティングな内容が含まれることもある。次回以降は、これら附属書を読んでいこう。請うご期待である。(次回に続く)
3/3 |
Index | |
やさしく読む「XML
1.0勧告」 第33回 XML勧告への適合性を示すConformance |
|
Page
1 ・XML 1.0への適合条件を示す「Conformance」 ・適合性(Conformance)の意義 |
|
Page
2 ・妥当性を検証するプロセッサおよび検証しないプロセッサ |
|
Page
3 ・XMLプロセッサの使用 |
連載 やさしく読む「XML 1.0勧告」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|