|
共通 DOM API | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface LSParserFilter
アプリケーションは、LSParserFilter を使って、解析中に構築されるノードを検証することができます。各ノードを検証するときは、ノードを変更または削除したり、解析全体を早期に終了したりできます。
パーサが任意のフィルタメソッドを呼び出す時点で、所有者 Document オブジェクトと DOMImplementation オブジェクトが存在するため、各オブジェクトにアクセスできます。ドキュメント要素は、LSParserFilter メソッドに渡されることはありません。つまり、ドキュメント要素をフィルタ処理することはできません。また、Document、DocumentType、Notation、Entity、および Attr ノードはフィルタの acceptNode メソッドに渡されることはありません。EntityReference ノードの子ノードは entities パラメータが false に設定された場合にフィルタに渡されます。entities パラメータで説明されているように、展開されていない実体参照ノードは破棄されず、常にフィルタに渡されます。
ドキュメント解析中に発生するすべての妥当性検査は、DOM ドキュメントがメモリで構築されたときに DOM ドキュメントで発生するのではなく、入力ストリームにソースドキュメントが現れたときにソースドキュメントで発生します。フィルタを使用する場合、メモリのドキュメントはストリーム上のドキュメントのサブセットである可能性があり、ドキュメントの妥当性はフィルタ処理により影響を受けた可能性があります。
要素がフィルタメソッドに渡される場合は、すべてのデフォルト属性が要素上に存在しなければなりません。また、ほかのすべてのデフォルトの内容はフィルタメソッドに渡されなければなりません。
DOM アプリケーションは、フィルタで例外を発生してはなりません。フィルタから例外をスローする影響は DOM 実装によって異なります。
「Document Object Model (DOM) Level 3 Load and Save Specification」も参照してください。
| フィールドの概要 | |
|---|---|
static short |
FILTER_ACCEPT
ノードを受け入れます。 |
static short |
FILTER_INTERRUPT
ドキュメントの通常の処理に割り込みます。 |
static short |
FILTER_REJECT
ノードとその子を拒否します。 |
static short |
FILTER_SKIP
この単一ノードをスキップします。 |
| メソッドの概要 | |
|---|---|
short |
acceptNode(Node nodeArg)
このメソッドは、各ノードの解析が終了したときにパーサにより呼び出されます。 |
int |
getWhatToShow()
LSParserFilter.acceptNode メソッドに示されるノードの型を LSParser に指定します。 |
short |
startElement(Element elementArg)
パーサは、 Element 開始タグがすべて走査されたあと、残りの Element が処理される前にこのメソッドを呼び出します。 |
| フィールドの詳細 |
|---|
static final short FILTER_ACCEPT
static final short FILTER_REJECT
static final short FILTER_SKIP
static final short FILTER_INTERRUPT
| メソッドの詳細 |
|---|
short startElement(Element elementArg)
Element 開始タグがすべて走査されたあと、残りの Element が処理される前にこのメソッドを呼び出します。これは、すべての子を含む要素を効率的にスキップするためです。要素ノードだけが startElement 関数に渡されます。 startElement に渡された要素ノードは、Element のすべての属性を含みますが、子ノードを含むことはありません。Element は、作成されているドキュメントにまだ配置されていない可能性があります (親ノードを持つことはできない)。 startElement フィルタ関数は Element の属性を評価または変更できます。名前空間宣言を変更しても、パーサによる名前空間の解決に影響はありません。
elementArg - 新規に見つかった要素。このメソッドが呼び出される時点で、要素は不完全である。要素は属性を持つことになるが、子を持つことはない
FILTER_ACCEPT 構中の DOM ドキュメントに Element が含まれる必要がある場合FILTER_REJECT Element とそのすべての子を拒否する必要がある場合FILTER_SKIP Element をスキップする必要がある場合。すべての子はスキップされた Element ノードの代わりに挿入されるFILTER_INTERRUPT フィルタによるドキュメントの処理を停止したい場合。ドキュメントの処理を中断すると、結果の DOM ツリーが整形式の XML であることが保証されなくなる。Element は拒否されるshort acceptNode(Node nodeArg)
nodeArg - 新規に構築された要素。このメソッドが呼び出されたとき、要素は完全である。つまり、要素はそのすべての子 (さらに再帰的にその子) と属性を持っており、子として親に接続される
FILTER_ACCEPT 構築中の DOM ドキュメントに、この Node を追加する必要がある場合FILTER_REJECT Node とそのすべての子を拒否する場合FILTER_SKIP Node をスキップする必要があり、Node を Node のすべての子に置き換える必要がある場合FILTER_INTERRUPT フィルタによるドキュメントの処理を停止したい場合。ドキュメントの処理を中断すると、結果の DOM ツリーが整形式の XML であることが保証されなくなる。Node は受け入れられ、完全に解析された最後のノードになるint getWhatToShow()
LSParserFilter.acceptNode メソッドに示されるノードの型を LSParser に指定します。この属性を使ってフィルタにノードが示されない場合、ノードは構築中の DOM ドキュメントに自動的に含められます。定数の定義については、NodeFilter を参照してください。SHOW_ATTRIBUTE、SHOW_DOCUMENT、SHOW_DOCUMENT_TYPE、SHOW_NOTATION、SHOW_ENTITY、および SHOW_DOCUMENT_FRAGMENT 定数はここでは意味がありません。これらのノードが LSParserFilter.acceptNode に渡されることはありません。
|
共通 DOM API | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||