IEntityResolver2.GetExternalSubset(String, String) メソッド

定義

明示的に定義されていないドキュメントの外部サブセットをアプリケーションで提供できるようにします。

[Android.Runtime.Register("getExternalSubset", "(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;", "GetGetExternalSubset_Ljava_lang_String_Ljava_lang_String_Handler:Org.Xml.Sax.Ext.IEntityResolver2Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public Org.Xml.Sax.InputSource? GetExternalSubset (string? name, string? baseURI);
[<Android.Runtime.Register("getExternalSubset", "(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;", "GetGetExternalSubset_Ljava_lang_String_Ljava_lang_String_Handler:Org.Xml.Sax.Ext.IEntityResolver2Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member GetExternalSubset : string * string -> Org.Xml.Sax.InputSource

パラメーター

name
String

ドキュメント ルート要素を識別します。 この名前は、DOCTYPE 宣言 (使用可能な場合) または実際のルート要素から取得されます。

baseURI
String

ドキュメントのベース URI。外部サブセットを選択するための追加のヒントとして機能します。 XMLReader に InputSource が指定されていないため、NULL でない限り、これは常に絶対 URI です。

戻り値

パーサーによって使用される新しい外部サブセットを記述する InputSource オブジェクト、または外部サブセットが指定されていないことを示す null。

属性

例外

SAX 例外。別の例外をラップしている可能性があります。

新しい InputStream またはリーダーの作成に失敗したか、または無効な URL を示している可能性があります。

注釈

明示的に定義されていないドキュメントの外部サブセットをアプリケーションで提供できるようにします。 外部サブセットを省略する DOCTYPE 宣言を含むドキュメントは、検証、エンティティ処理、および属性処理 (正規化、既定、および ID を含むレポートの種類) に使用できる宣言を拡張できます。 この拡張は、ドキュメント テキストに最初に外部サブセットが含まれていたかのようにメソッドを介して LexicalHandler#startDTD startDTD() 報告されます。このコールバックは、内部サブセットのデータまたはエラーが報告される前に行われます。</P>

このメソッドは、DOCTYPE 宣言のないドキュメントでも使用できます。 ルート要素が検出されたが、DOCTYPE 宣言が見つからない場合、このメソッドが呼び出されます。 外部サブセットの値を返す場合、そのルート要素はルート要素として宣言され、それ以外の場合は有効ではないドキュメントのプロローグの最後に DOCTYPE 宣言をスプライシングする効果が得られます。 その場合のパーサー コールバックのシーケンスは、論理的には次のようになります。

... comments and PIs from the prolog (as usual)
            startDTD ("rootName", source.getPublicId (), source.getSystemId ());
            startEntity ("[dtd]");
            ... declarations, comments, and PIs from the external subset
            endEntity ("[dtd]");
            endDTD ();
            ... then the rest of the document (as usual)
            startElement (..., "rootName", ...);

InputSource ではそれ以上の解決は行われません。 このメソッドの実装では、 を呼び出 #resolveEntity resolveEntity() して、DTD エンティティのローカル キャッシュの使用などの利点を得ることができます。 また、このメソッドは、外部パラメーター エンティティを含まない (検証されていない) プロセッサでは使用されません。

このメソッドの使用には、外部エンティティに対して常に望ましくないネットワーク アクセスを必要とする XML プロセッサと相互運用する場合や、他の理由で "DTD なし" ポリシーを採用する場合のデータ検証の促進が含まれます。 検証以外の動機には、属性が一貫して処理されるように、DTD を含めるドキュメントの強制が含まれます。 たとえば、XPath プロセッサは、広く使用されている種類の参照を処理する前に、どの attibutes に型 "ID" が含まれているかを把握する必要があります。

<strong>Warning:</strong> 外部サブセットを返すと、入力ドキュメントが変更されます。 一般的なエンティティの定義を指定することで、形式が正しくない形式のドキュメントを作成できます。

の Java ドキュメント org.xml.sax.ext.EntityResolver2.getExternalSubset(java.lang.String, java.lang.String)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象