Sprache

IEntityResolver2.GetExternalSubset(String, String) Methode

Definition

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.

Java Dokumentation für org.xml.sax.ext.EntityResolver2.getExternalSubset(java.lang.String, java.lang.String).

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.

Gilt für: