DOMパーサ,およびSAXパーサ共通の動作の差異を次の表に示します。
表A-1 DOMパーサ,およびSAXパーサ共通の動作の差異
項番 | 条件 | XML Processorの動作 | |
---|---|---|---|
バージョン06-00の場合 | バージョン07-00以降の場合 | ||
1 | パーサがInputSourceオブジェクトを使用してバイトストリームを読み込む場合 | XML仕様のアルゴリズムを用いて文字エンコーディングを自動検出します。 | setEncodingメソッドで指定されたエンコーディングを優先します。 |
2 | 「EUCで保存されているがXML宣言にencoding指定が存在しないXML文書」など,エンコーディングが不正な状態で解析した場合 | IOException例外が発生します。 | SAXException例外が発生します。 |
3 | parseメソッドの引数uriまたは引数systemIdに空文字列を指定した場合 | IOException例外が発生します。 | SAXException例外が発生します。 |
4 | XML文書のDOCTYPE宣言のシステム識別子に空文字列を指定した場合 | IOException例外が発生します。 | SAXException例外が発生します。 |
5 | DTDでEMPTYと宣言した要素の内容がコメントだけの場合 | 妥当性検証時にエラーになりません。 | 妥当性検証時にエラーになります。 |
6 | U+D800~U+DFFFを含み,属性値またはテキストに指定できないXML文書をパースした場合(ただし,サロゲートペアは除く) | エラーになります。 |
|
7 | DTDによる妥当性検証で,子要素に定義していない要素を指定した場合 | KECX01165-Eのエラーを通知します。 | KECX01164-Eのエラーを通知します。 |
8 | UTF-8で記述したXML文書の中のXML宣言のencoding属性値として,「UTF-16」を指定した場合 | KECX01083-Eのエラーを通知します。 | KECX01024-Eのエラーを通知します。 |