モジュール java.xml
パッケージ org.w3c.dom.ls

インタフェースLSParser


public interface LSParser
種々な入力ソースからDOMツリーを構築または拡張できるオブジェクトへのインタフェースです。

LSParserは、XMLを解析し、対応するDOM文書構造を構築するためのAPIを提供します。 LSParserインスタンスは、DOMImplementationLS.createLSParser()メソッドを呼び出すことによって取得できます。

DOM Level 3 Core」で指定されているように、文書がLSParserを介してはじめて使用可能になると、次のようになります。

  • NODE_TEXT型の隣接する2つのノードは存在しない。また、空のテキスト・ノードも存在しない。
  • Attrノードのvalue属性とnodeValue属性が、最初にXML 1.0 normalized valueを返すことが予測される。 ただし、パラメータ" validate-if-schema "and" datatype-normalization "がtrueに設定されている場合、使用される属性の正規化によっては、属性値がXML 1.0属性の正規化によって取得される値とは異なる場合があります。 パラメータ" datatype-normalization "がfalseに設定されている場合は、XML 1.0属性の正規化が発生することが保証され、属性リストにネームスペース宣言が含まれていない場合、Elementノードのattributes属性は、[「XML情報セット」]に定義されているプロパティ[attributes]を表します。

非同期LSParserオブジェクトにイベント・リスナーを登録できるように、非同期LSParserオブジェクトはevents::EventTargetインタフェースも実装すると予測されます。

非同期LSParserオブジェクトでサポートされているイベントは次のとおりです。

load
LSParserが文書のロードを完了します。 LSLoadEventインタフェースの定義も参照してください。
progress
LSParserがデータ解析の進捗状況を通知します。 この仕様では、進捗イベントを正確にいつディスパッチする必要があるか定義しません。 つまり、意図的に実装依存のままにしてあります。 ここでは、アプリケーションが進捗イベントをディスパッチする方法の一例を示します。パーサーがデータの受信を開始すると、進捗イベントがディスパッチされ、解析が開始されたことを示します。 これ以降、受信および解析される4096バイトのデータごとに進捗イベントがディスパッチされます。 これは一例にすぎませんが、実装では、解析中にいつでも進捗イベントをディスパッチするように、またはまったくディスパッチしないように選択できます。 LSProgressEventインタフェースの定義も参照してください。

ノート: この仕様で定義されているイベントはすべて、名前空間URI "http://www.w3.org/2002/DOMLS"を使用します。

入力ソースを解析する間、エラーはエラー・ハンドラ(LSParser.domConfigの" error-handler "パラメータ)を介してアプリケーションに報告されます。 この仕様では、XMLやほかのマークアップを解析中に発生する可能性があるすべてのエラーは定義されていませんが、一般的なエラー・ケースの一部を定義しています。 この仕様で定義されているエラーと警告の種類(DOMError.type)は次のとおりです。

"check-character-normalization-failure" [error]
パラメータ" check-character-normalization "がtrueに設定され、正規化チェックに失敗した文字列が検出された場合に発生します。
"doctype-not-allowed" [fatal]
「disallow-doctype」構成パラメータがtrueに設定されていて、doctypeが検出された場合に返されます。
"no-input-specified" [fatal]
文書のロード中に、LSInputオブジェクトで入力が指定されていない場合に返されます。
"pi-base-uri-not-preserved" [warning]
処理命令のベースURIを保持できない場所で処理命令が検出された場合に返されます。 この警告が発生する例の1つは、構成パラメータ" entities "がfalseに設定され、次のXMLファイルが解析される場合です:
 <!DOCTYPE root [ <!ENTITY e SYSTEM 'subdir/myentity.ent' ]>
 <root> &e; </root>
また、subdir/myentity.entには次が含まれています。
<one> <two/> </one> <?pi 3.14159?>
 <more/>
"unbound-prefix-in-entity" [warning]
構成パラメータ" namespaces "がtrueに設定され、エンティティの置換テキストでバインドされていないネームスペース・プレフィクスが検出された場合に発生する可能性のある実装依存の警告。 この警告を返すのは強制されません。これは、一部の既存のパーサーが、エンティティの置換テキストにあるバインドされていない名前空間の接頭辞を認識しない可能性があるためです。
"unknown-character-denormalization" [fatal]
「ignore-unknown-character-denormalizations」構成パラメータがfalseに設定されていて、プロセッサで正規化プロパティを判定できない文字が検出された場合に発生します。
"unsupported-encoding" [fatal]
サポートされていないエンコーディングが検出された場合に返されます。
"unsupported-media-type" [fatal]
「supported-media-types-only」構成パラメータがtrueに設定されていて、サポートされていないメディア・タイプが検出された場合に返されます。

定義済みのエラーや警告を返すのに加えて、実装では、IOエラー(「ファイルが見つかりません、アクセス権は拒否されました...」)、XML整形式エラーなどを招くほかのエラーや警告について実装固有のエラーを返します。

Document Object Model (DOM) Level 3 Load and Save Specification」も参照してください。

導入されたバージョン:
1.5