IEntityResolver2.GetExternalSubset(String, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Permet aux applications de fournir un sous-ensemble externe pour les documents qui ne le définissent pas explicitement.
[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
Paramètres
- name
- String
Identifie l’élément racine du document. Ce nom provient d’une déclaration DOCTYPE (le cas échéant) ou de l’élément racine réel.
- baseURI
- String
L’URI de base du document, servant d’indicateur supplémentaire pour sélectionner le sous-ensemble externe. Il s’agit toujours d’un URI absolu, sauf s’il s’agit de null, car xmlReader a reçu un InputSource sans un.
Retours
Objet InputSource décrivant le nouveau sous-ensemble externe à utiliser par l’analyseur ou null pour indiquer qu’aucun sous-ensemble externe n’est fourni.
- Attributs
Exceptions
Toute exception SAX, éventuellement encapsuler une autre exception.
Probablement indiquant un échec de création d’un InputStream ou d’un lecteur, ou d’une URL non conforme.
Remarques
Permet aux applications de fournir un sous-ensemble externe pour les documents qui ne le définissent pas explicitement. Les documents avec des déclarations DOCTYPE qui omettent un sous-ensemble externe peuvent donc augmenter les déclarations disponibles pour la validation, le traitement des entités et le traitement des attributs (normalisation, par défaut et types de création de rapports, y compris l’ID). Cette augmentation est signalée par le biais de la LexicalHandler#startDTD startDTD() méthode comme si le texte du document avait initialement inclus le sous-ensemble externe ; ce rappel est effectué avant que des données ou erreurs internes de sous-ensemble soient signalées.</p>
Cette méthode peut également être utilisée avec des documents qui n’ont aucune déclaration DOCTYPE. Lorsque l’élément racine est rencontré, mais qu’aucune déclaration DOCTYPE n’a été vue, cette méthode est appelée. Si elle retourne une valeur pour le sous-ensemble externe, cet élément racine est déclaré comme étant l’élément racine, ce qui donne l’effet de l’épinglage d’une déclaration DOCTYPE à la fin du prolog d’un document qui n’a pas pu être valide. La séquence de rappels de l’analyseur dans ce cas ressemble logiquement à ceci :
... 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", ...);
Notez que InputSource n’obtient aucune autre résolution. Les implémentations de cette méthode peuvent souhaiter appeler #resolveEntity resolveEntity() pour obtenir des avantages tels que l’utilisation de caches locaux d’entités DTD. En outre, cette méthode n’est jamais utilisée par un processeur (non validé) qui n’inclut pas d’entités de paramètres externes.
Cette méthode permet notamment de faciliter la validation des données lors de l’interopérabilité avec des processeurs XML qui nécessiteraient toujours des accès réseau indésirables pour les entités externes, ou qui, pour d’autres raisons, adoptent une stratégie « aucun DTD ». Les motifs de non-validation incluent le fait de forcer les documents à inclure des DTD afin que les attributs soient gérés de manière cohérente. Par exemple, un processeur XPath doit savoir quels attibutes ont le type « ID » avant de pouvoir traiter un type de référence largement utilisé.
< >strong Warning :</strong> Retour d’un sous-ensemble externe modifie le document d’entrée. En fournissant des définitions pour les entités générales, il peut rendre un document mal formé semble être bien formé.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.