IEntityResolver2.GetExternalSubset(String, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermöglicht Anwendungen das Bereitstellen einer externen Teilmenge für Dokumente, die nicht explizit eine definieren.
[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
Parameter
- name
- String
Identifiziert das Dokumentstammelement. Dieser Name stammt aus einer DOCTYPE-Deklaration (sofern verfügbar) oder aus dem tatsächlichen Stammelement.
- baseURI
- String
Der Basis-URI des Dokuments dient als zusätzlicher Hinweis zum Auswählen der externen Teilmenge. Dies ist immer ein absoluter URI, es sei denn, er ist NULL, da der XMLReader eine InputSource ohne einen erhält.
Gibt zurück
Ein InputSource-Objekt, das die neue externe Teilmenge beschreibt, die vom Parser verwendet werden soll, oder null, um anzugeben, dass keine externe Teilmenge bereitgestellt wird.
- Attribute
Ausnahmen
Alle SAX-Ausnahmen, möglicherweise eine andere Ausnahme umschließen.
Gibt wahrscheinlich an, dass ein Fehler beim Erstellen eines neuen InputStream- oder Reader-Elements oder einer ungültigen URL angezeigt wird.
Hinweise
Ermöglicht Anwendungen das Bereitstellen einer externen Teilmenge für Dokumente, die nicht explizit eine definieren. Dokumente mit DOCTYPE-Deklarationen, die eine externe Teilmenge weglassen, können somit die Deklarationen erweitern, die für validierung, Entitätsverarbeitung und Attributverarbeitung verfügbar sind (Normalisierung, Standardeinstellung und Berichtstypen einschließlich ID). Diese Erweiterung wird über die LexicalHandler#startDTD startDTD() Methode gemeldet, als ob der Dokumenttext ursprünglich die externe Teilmenge enthielt. Dieser Rückruf erfolgt, bevor interne Teilmengendaten oder Fehler gemeldet werden.</p>
Diese Methode kann auch mit Dokumenten verwendet werden, die keine DOCTYPE-Deklaration aufweisen. Wenn das Stammelement gefunden wurde, aber keine DOCTYPE-Deklaration angezeigt wurde, wird diese Methode aufgerufen. Wenn ein Wert für die externe Teilmenge zurückgegeben wird, wird dieses Stammelement als Stammelement deklariert, wodurch die Auswirkung der Splicing einer DOCTYPE-Deklaration am Ende des Prologs eines Dokuments, das andernfalls nicht gültig sein konnte, zurückgegeben wird. Die Sequenz von Parserrückrufen in diesem Fall ähnelt logisch folgendem:
... 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", ...);
Beachten Sie, dass die InputSource keine weitere Auflösung erhält. Implementierungen dieser Methode können aufgerufen #resolveEntity resolveEntity() werden, um Vorteile wie die Verwendung lokaler Caches von DTD-Entitäten zu erzielen. Außerdem wird diese Methode nie von einem (nicht validierenden) Prozessor verwendet, der keine externen Parameterentitäten enthält.
Die Verwendung für diese Methode umfasst die Erleichterung der Datenüberprüfung bei der Zusammenarbeit mit XML-Prozessoren, die immer unerwünschte Netzwerkzugriffe für externe Entitäten erfordern oder aus anderen Gründen eine "keine DTDs"-Richtlinie übernehmen. Nicht-Validierungsmotive umfassen das Erzwingen von Dokumenten, dtDs einzuschließen, sodass Attribute konsistent behandelt werden. Beispielsweise muss ein XPath-Prozessor wissen, welche Attibutes den Typ "ID" aufweisen, bevor er einen weitverwendeten Referenztyp verarbeiten kann.
<starke>Warnung:</starke> Rückgabe einer externen Teilmenge ändert das Eingabedokument. Durch die Bereitstellung von Definitionen für allgemeine Entitäten kann ein falsch formatiertes Dokument wohlgeformt erscheinen.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.