Lenguaje

IEntityResolver2.GetExternalSubset(String, String) Método

Definición

Permite a las aplicaciones proporcionar un subconjunto externo para documentos que no definen explícitamente uno.

[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

Parámetros

name
String

Identifica el elemento raíz del documento. Este nombre procede de una declaración DOCTYPE (si está disponible) o del elemento raíz real.

baseURI
String

El URI base del documento, que sirve como sugerencia adicional para seleccionar el subconjunto externo. Este es siempre un URI absoluto, a menos que sea NULL porque se le ha dado un inputSource sin uno.

Devoluciones

Objeto InputSource que describe el nuevo subconjunto externo que va a usar el analizador o null para indicar que no se proporciona ningún subconjunto externo.

Atributos

Excepciones

Cualquier excepción SAX, posiblemente encapsulando otra excepción.

Probablemente indique un error al crear un nuevo InputStream o Lector, o una dirección URL no válida.

Comentarios

Permite a las aplicaciones proporcionar un subconjunto externo para documentos que no definen explícitamente uno. Los documentos con declaraciones DOCTYPE que omiten un subconjunto externo pueden aumentar así las declaraciones disponibles para la validación, el procesamiento de entidades y el procesamiento de atributos (normalización, configuración predeterminada y tipos de informes, incluido el identificador). Este aumento se notifica a través del LexicalHandler#startDTD startDTD() método como si el texto del documento hubiera incluido originalmente el subconjunto externo; esta devolución de llamada se realiza antes de que se notifiquen los errores o datos internos del subconjunto.</p>

Este método también se puede usar con documentos que no tienen ninguna declaración DOCTYPE. Cuando se encuentra el elemento raíz, pero no se ha visto ninguna declaración DOCTYPE, se invoca este método. Si devuelve un valor para el subconjunto externo, ese elemento raíz se declara como el elemento raíz, lo que proporciona el efecto de splicing a DOCTYPE declaration at the end the prolog of a document that could not other not be valid. La secuencia de devoluciones de llamada del analizador en ese caso se parece lógicamente a esto:

... 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", ...);

Tenga en cuenta que InputSource no obtiene ninguna resolución adicional. Las implementaciones de este método pueden querer invocar #resolveEntity resolveEntity() para obtener ventajas como el uso de cachés locales de entidades DTD. Además, este método nunca lo usará un procesador (sin validación) que no incluya entidades de parámetros externos.

Los usos de este método incluyen facilitar la validación de datos al interoperar con procesadores XML que siempre requerirían accesos de red no deseados para entidades externas o que por otros motivos adoptan una directiva "sin DTDs". Los motivos de no validación incluyen forzar a los documentos a incluir DTD para que los atributos se controlan de forma coherente. Por ejemplo, un procesador XPath debe saber qué attibutes tienen el tipo "ID" para poder procesar un tipo de referencia ampliamente usado.

<advertencia fuerte>:</strong> Devolver un subconjunto externo modifica el documento de entrada. Al proporcionar definiciones para entidades generales, puede hacer que un documento con formato incorrecto parezca estar bien formado.

Java documentación para org.xml.sax.ext.EntityResolver2.getExternalSubset(java.lang.String, java.lang.String).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a