IEntityResolver2.GetExternalSubset(String, String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Permite que os aplicativos forneçam um subconjunto externo para documentos que não definem explicitamente um.
[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 o elemento raiz do documento. Esse nome vem de uma declaração DOCTYPE (quando disponível) ou do elemento raiz real.
- baseURI
- String
O URI base do documento, servindo como uma dica adicional para selecionar o subconjunto externo. Esse é sempre um URI absoluto, a menos que seja nulo porque o XMLReader recebeu um InputSource sem um.
Retornos
Um objeto InputSource que descreve o novo subconjunto externo a ser usado pelo analisador ou nulo para indicar que nenhum subconjunto externo é fornecido.
- Atributos
Exceções
Qualquer exceção SAX, possivelmente encapsulando outra exceção.
Provavelmente indicando uma falha ao criar um novo InputStream ou Leitor ou uma URL ilegal.
Comentários
Permite que os aplicativos forneçam um subconjunto externo para documentos que não definem explicitamente um. Documentos com declarações DOCTYPE que omitem um subconjunto externo podem, portanto, aumentar as declarações disponíveis para validação, processamento de entidade e processamento de atributo (normalização, padrão e tipos de relatório, incluindo ID). Esse aumento é relatado por meio do LexicalHandler#startDTD startDTD() método como se o texto do documento tivesse incluído originalmente o subconjunto externo; esse retorno de chamada é feito antes que quaisquer dados ou erros de subconjunto internos sejam relatados.</p>
Esse método também pode ser usado com documentos que não têm nenhuma declaração DOCTYPE. Quando o elemento raiz é encontrado, mas nenhuma declaração DOCTYPE foi vista, esse método é invocado. Se ele retornar um valor para o subconjunto externo, esse elemento raiz será declarado como o elemento raiz, dando o efeito de unir uma declaração DOCTYPE no final da caixa de diálogo de um documento que não poderia ser válido de outra forma. A sequência de retornos de chamada do analisador nesse caso logicamente se assemelha a esta:
... 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", ...);
Observe que o InputSource não obtém nenhuma resolução adicional. As implementações desse método podem querer invocar #resolveEntity resolveEntity() para obter benefícios, como o uso de caches locais de entidades DTD. Além disso, esse método nunca será usado por um processador (sem validação) que não esteja incluindo entidades de parâmetro externo.
Os usos para esse método incluem facilitar a validação de dados ao interoperar com processadores XML que sempre exigiriam acessos de rede indesejáveis para entidades externas ou que, por outros motivos, adotem uma política "sem DTDs". Os motivos de não validação incluem forçar documentos a incluir DTDs para que os atributos sejam tratados de forma consistente. Por exemplo, um processador XPath precisa saber quais attibutes têm o tipo "ID" antes de poder processar um tipo de referência amplamente usado.
<aviso forte>:</strong> Retornar um subconjunto externo modifica o documento de entrada. Ao fornecer definições para entidades gerais, ele pode fazer com que um documento malformado pareça estar bem formado.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.