Language

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 はそれ以上の解決を得ない点に注意してください。 このメソッドの実装では、DTD エンティティのローカル キャッシュの使用などの利点を得るために、 #resolveEntity resolveEntity() を呼び出すことができます。 また、このメソッドは、外部パラメーター エンティティを含まない (非検証) プロセッサでは使用されません。

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

<strong>Warning:</strong> 外部サブセットを返すと、入力ドキュメントが変更されます。 一般的なエンティティの定義を指定すると、形式が正しくないドキュメントが整形式のように見える場合があります。

Javaドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

適用対象