IEntityResolver2.GetExternalSubset(String, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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.