JavaTM 2 Platform
Standard Ed. 5.0

org.w3c.dom
インタフェース DOMConfiguration


public interface DOMConfiguration

DOMConfiguration インタフェースは文書の構成を表し、 認められているパラメータのテーブルを保持します。この構成を使用すると、 CDATASection ノードを Text ノードに置き換え たり、Document の検証を要求されたときに使用するスキーマ の型を指定したりするなど、Document.normalizeDocument() の 動作を変更できます。DOMConfiguration オブジェクトは、 DOMParser インタフェースや DOMSerializer インタフェースの「DOM Level 3 Load and Save」でも使用できます。

DOMConfiguration オブジェクトで使用するパラメータ 名は、DOM レベル 3 仕様全体で定義されています。名前は大文字と小文 字が区別されます。コンフリクトを避けるため、規則として、DOM 仕様の 範囲外で定義されたパラメータを参照する名前は一意にする必要がありま す。パラメータはプロパティとして公開されるので、名前は、追加の文字 「-」(HYPHEN-MINUS) を含む「Unicode」のセクション 5.16「識別子」に 従うことをお勧めしますが、DOM 実装により強制はされません。DOM レベ ル 3 コア実装では、この仕様で定義されているすべてのパラメータを認識 する必要があります。一部のパラメータ値も、この実装でサポートされる必 要があります。値がサポートされているかどうかについては、パラメータの 定義を参照してください。

注: パラメータは 、SAX2「SAX」で使 用される機能およびプロパティと同様です。

次のパラメータリストは DOM で定義されています。

"canonical-form"
true
「オプション」の正規 XML で指定されている規則に従って、DocumentType ノード (存在する場合) をツリーから削除したり、個々の要素から不要な名前空間宣言を削除して文書を標準化します。これは DOM で表現できるコンテンツに制限されます。特に、DOM で属性の順序を指定する方法はありません。また、このパラメータを true に設定すると、下記のパラメータの状態も設定されます。あとで、そのうちの 1 つに変更すると、「canonical-form」は false に戻ります。false に設定されるパラメータは「entities」、「normalize-characters」、「cdata-sections」で、true に設定されるパラメータは「namespaces」、「namespace-declarations」、「well-formed」、「element-content-whitespace」です。それ以外のパラメータは、パラメータの説明に明示的に指定されていないかぎり、変更されません。
false
「必須」(デフォルト) 文書を標準化しません。
"cdata-sections"
true
「必須」(デフォルト) 文書の CDATASection ノードを維持します。
false
「必須」文書の CDATASection ノードを Text ノードに変換します。これにより、新しい Text ノードは、隣接する Text ノードと結合されます。
"check-character-normalization"
true
「オプション」文書内の文字列が、「XML 1.1」の付録 B で定義されているように完全に正規化されているかどうかを確認します。文字列の正規化チェックに失敗した場合、DOMError.type エラーは、「check-character-normalization-failure」が発行されることと同じです。
false
「必須」(デフォルト) 文字が正規化されているかどうかをチェックしません。
"comments"
true
「必須」(デフォルト) 文書の Comment ノードを維持します。
false
「必須」文書の Comment ノードを破棄します。
"datatype-normalization"
true
「オプション」XML スキーマの XML スキーマ正規化値など、ツリーのスキーマ正規化値を公開します。このパラメータにはスキーマ情報が必要なため、「validate」パラメータも true に設定されます。「validate」が false のときにこのパラメータをアクティブにしても効果はなく、スキーマの正規化は行われません。

注: 文書は XML 1.0 処理の結果を含んでいるので、このパラメータは、「XML 1.0」のセクション 3.3.3 で定義されている属性値正規化には適用されず、文書型定義 (DTD) 以外のスキーマ言語だけを対象にしています。

false
「必須」(デフォルト) ツリーでスキーマ正規化を実行しません。
"element-content-whitespace"
true
「必須」(デフォルト) 文書ですべての空白文字を維持します。
false
「オプション」の要素コンテンツの空白文字で説明されているような要素コンテンツに出現した空白文字を含むすべての Text ノードを破棄します。実装では、Text.isElementContentWhitespace 属性を使用して、Text ノードを破棄する必要があるかどうかを判定することが求められます。
"entities"
true
「必須」(デフォルト) 文書の EntityReference ノードを維持します。
false
「必須」文書からすべての EntityReference ノードを削除し、その位置で実体拡張を行います。Text ノードは、Node.normalize で定義されているとおりに正規化されます。拡張されていない実体参照だけが文書に維持されます。

注: このパラメータは Entity ノードには影響しません。

"error-handler"
「必須」DOMErrorHandler オブジェクトを含みます。文書でエラーが発生した場合、実装では、このパラメータを使用して登録された DOMErrorHandler を呼び出します。実装では、デフォルトの DOMErrorHandler オブジェクトが提供される場合があります。呼び出された場合、DOMError.relatedData にはエラーが発生した場所にもっとも近いノードが含まれます。エラーが発生した場所を実装で特定できない場合は、DOMError.relatedDataDocument ノードが含まれます。エラーハンドラ内から文書に対して変更を加えると、実装に依存した動作になります。
"infoset"
true
「必須」XML 情報セット XML 情報セットで定義された情報を文書に維持します。これにより、validate-if-schema、entities、datatype-normalization、cdata-sections パラメータは false に設定されます。また、namespace-declarations、well-formed、element-content-whitespace、comments、namespaces パラメータは true に設定されます。他のパラメータは、パラメータの記述で明示的に指定しないかぎり、変更されません。getParameter でこのパラメータを照会すると、上記のパラメータが適切に設定されている場合のみ、true が返されます。
false
infosetfalse に設定しても影響はありません。
"namespaces"
true
「必須」(デフォルト) 定義に従って、名前空間処理を実行します。
false
「オプション」名前空間処理を実行しません。
"namespace-declarations"
「namespaces」パラメータを false に設定しても影響はありません。
true
「必須」(デフォルト) スキーマで指定またはデフォルト設定されている名前空間宣言属性を文書に含めます。XML 名前空間「XML Namespaces 1.1」の名前空間の宣言のセクションも参照してください。
false
「必須」すべての名前空間宣言属性を破棄します。このパラメータが false に設定されていても、名前空間接頭辞 ( Node.prefix) は保持されます。
"normalize-characters"
true
「オプション」の「XML 1.1」の付録 B で定義されているように、文書の文字列を完全に正規化します。
false
「必須」(デフォルト) 文字の正規化を実行しません。
"schema-location"
「オプション」空白文字 (「XML 1.0」のセクション 2.3 で定義されている非終端生成 S に一致する文字) で区切られた URI のリストを含む DOMString オブジェクトを表します。このオブジェクトは、検証が行われるスキーマ (現在のスキーマ) を表します。このリストで参照されるスキーマの型は、 schema-type で指定された型に一致しなければなりません。一致しない場合、実装の動作は保証されません。このプロパティを使用して指定されたスキーマは、文書で独自に指定されたスキーマ情報より優先されます。名前空間認識スキーマの場合、このプロパティで指定されたスキーマと、スキーマドキュメント (スキーマ import メカニズムを使用) のドキュメントインスタンス (schemaLocation 属性を使用) で指定されたスキーマが同じ targetNamespace を共有するとき、ユーザがこのプロパティを使用して指定したスキーマが使用されます。 このプロパティを使用して指定された 2 つのスキーマが、同じ targetNamespace を共有するか、名前空間を持たない場合、動作は実装に依存して決まります。 場所を指定しなかった場合、このパラメータは null になります。

注: schema-type パラメータ値を設定しないかぎり、「schema-location」パラメータは無視されます。Document.documentURI を設定し、参照された外部実体を実装で問題なく解決できるようにすることを強くお勧めします。

"schema-type"
「オプション」絶対 URI を含み、 文書の検証に使用されるスキーマ言語の型を表す DOMString オブジェクトを表現します。絶対 URI では字句チェックは行われません。 このパラメータが設定されない場合、実装では、サポートされているスキーマ 言語やロード時に使用されたスキーマ言語に応じて、デフォルトの値を指定できます。 値を指定しない場合、このパラメータは null になります。

注: XML スキーマ「XML Schema Part 1」 の場合は、アプリケーションで値「http://www.w3.org/2001/XMLSchema」 を使用する必要があります。XML DTD「XML 1.0」 の場合は、アプリケーションで 値「http://www.w3.org/TR/REC-xml」を使用する必要があります。ほかのスキーマ言語は W3C の範囲外であるため、 このメソッドを使用するには、絶対 URI を使用することをお勧めします。

"split-cdata-sections"
true
「必須」(デフォルト) CDATA セクション終了 マーカ「]]>」を含んでいる CDATA セクションを分割します。CDATA セクションが分割されると、分割の結果の文書順に DOMError.type が「cdata-sections-splitted」であり、 DOMError.relatedData が文書の最初の CDATASection ノードである警告が通知されます。
false
「必須」(デフォルト) CDATASection が表現できない文字を含む場合にエラーを通知します。
"validate"
true
「オプション」の「XML 1.0」 で定義されているように正規化されている文書のスキーマ (XML スキーマ、DTD、スキーマの他の型または表現) に対する検証を必要としま す。検証エラーが見つかったり、スキーマが見つからなかったりした場合は、 エラーハンドラに通知されます。「datatype-normalization」パラメータが true に設定されていないかぎり、使用されているスキーマに 従ってスキーマ正規化値は公開されません。このパラメータは、次の項目に ついて再評価します。
  • Attr インタフェースの説明 で指定されているように、At tr.specifiedfalse である属性ノード
  • すべての Text ノードの Text.isElementContentWhitespace 属性の値
  • すべての Attr ノードの Attr.isId 属性の値
  • Element.schemaTypeInfo 属性と Attr.schemaTypeInfo 属性

注: 「validate-if-schema」と「validate」は相互に排他的です。 一方を true に設定すると、他方は false に 設定されます。アプリケーションでは、文書の検証時、このオプションの デフォルトである w ell-formed パラメータを true に設定 することも考慮する必要があります。

false
「必須」(デフォルト) 内部サブセット処理を含めて、スキーマ処理 を実行しません。デフォルトの属性値情報は維持されます。それでも 「validate-if-schema」が true である場合は、 検証が行われる可能性があります。
"validate-if-schema"
true
「オプション」スキーマで文書要素の宣言 (XML スキーマ、DTD、あるいはスキーマの他の型または表現。見つかっ た場所に無関係) が見つかった場合のみ検証を有効にします。検証が有 効な場合、このパラメータは、「validate」パラメータが true に設定されているときと同じ動作をします。

注: 「validate-if-schema」と「validate」は相互に排他的です。一方を true に設定すると、他方は false に設定されます。

false
「必須」(デフォルト) 文書にスキーマ がある場合、内部サブセット処理などのスキーマ処理を実行しません。デ フォルトの属性値情報は維持されます。それでも「validate」が true である場合は、検証が行われます。
"well-formed"
true
「必須」(デフォルト) Document.xmlVersion で使用され ている XML バージョンに従って、すべてのノードが 整形式の XML であるか どうかをチェックします。
  • Node.nodeName 属性が ノード型に対して無効な文字を含んでいるかどうかをチェックし、必要に 応じてDOMError.SEVERITY_ERROR 重要度を含む 「wf-invalid-character-in-node-name」 型の DOMError を生成する
  • AttrElementCommentTextCDATASection な どのノード内のテキストコンテンツが無効な文字を含んでいるかどうかをチェ ックし、必要に応じて DOMError.SEVERITY_ERROR 重要度を含む 「wf-invalid-character」型の DOMError を生成 する
  • ProcessingInstruction ノード内のデータが 無効な文字を含んでいるかどうかをチェックし、必要に応じて DOMErr or.SEVERITY_ERROR 重要度を含む「wf-invalid-character」 型の DOMError を生成する
false
「オプション」XML の整形式をチェックし ません。

実体に関連するシステム識別子の解決は、Document.documentURI を使用して行われます。ただし、「DOM Level 3 Load and Save」で定義されている「LS」機能を DOM 実装がサポートしているときは、Document ノードに追加されている DOMConfiguration オブジェクトで「resource-resolver」パラメータを使用することもできます。このパラメータが設定されていると、Document.normalizeDocument()Document.documentURI を利用する代わりにリソースリゾルバを呼び出します。

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

導入されたバージョン:
DOM Level 3

メソッドの概要
 boolean canSetParameter(String name, Object value)
          特定の値に対してパラメータを設定することがサポートされているかどうかをチェックします。
 Object getParameter(String name)
          既知の場合は、パラメータの値を返します。
 DOMStringList getParameterNames()
          DOMConfiguration オブジェクトがサポートしているパラメータのリスト。
 void setParameter(String name, Object value)
          パラメータの値を設定します。
 

メソッドの詳細

setParameter

void setParameter(String name,
                  Object value)
                  throws DOMException
パラメータの値を設定します。

パラメータ:
name - 設定するパラメータの名前
value - 新しい値またはユーザがパラメータを設定しない場合は null。パラメータの値型は DOMUserData により定義されるが、オブジェクト型はパラメータの定義により定義された型に一致しなければならない。たとえば、パラメータが error-handler である場合、値は DOMErrorHandler 型でなければならない
例外:
DOMException - NOT_FOUND_ERR: パラメータ名が認識されない場合
NOT_SUPPORTED_ERR: パラメータ名は認識されていても、要求された値を設定できない場合
TYPE_MISMATCH_ERR: このパラメータ名の値型が予想した値型と互換性がない場合

getParameter

Object getParameter(String name)
                    throws DOMException
既知の場合は、パラメータの値を返します。

パラメータ:
name - パラメータの名前
戻り値:
指定されたパラメータに関連する現在のオブジェクト。オブジェクトが関連していない場合やパラメータがサポートされていない場合は null
例外:
DOMException - NOT_SUPPORTED_ERR: パラメータ名が認識されない場合

canSetParameter

boolean canSetParameter(String name,
                        Object value)
特定の値に対してパラメータを設定することがサポートされているかどうかをチェックします。

パラメータ:
name - チェックするパラメータの名前
value - オブジェクト。null の場合、返される値は true
戻り値:
パラメータを指定された値に問題なく設定できた場合は true。パラメータが認識されない場合や要求された値がサポートされていない場合は false。これにより、パラメータ自体の現在の値は変更されない

getParameterNames

DOMStringList getParameterNames()
DOMConfiguration オブジェクトがサポートしているパラメータのリスト。アプリケーションでは少なくとも 1 つの値をこれらのパラメータに対して設定できます。このリストには、この仕様の外部で定義されたパラメータ名も含まれる可能性があることに注意してください。


JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。