XmlWriterSettings.ConformanceLevel Eigenschaft

Definition

Ruft das Übereinstimmungsniveau ab, auf den der XML-Writer die XML-Ausgabe überprüft, oder legt dieses fest.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Eigenschaftswert

Einer der Enumerationswerte, der das Übereinstimmungsniveau angibt (Dokument, Fragment oder automatische Erkennung). Der Standardwert ist Document.

Beispiele

Im folgenden Beispiel wird ein XML-Fragment in einen Speicherdatenstrom geschrieben.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

Hinweise

Die XmlWriterSettings.ConformanceLevel -Eigenschaft konfiguriert den XML-Writer, um zu überprüfen und sicherzustellen, dass der zu schreibende Stream einem bestimmten Satz von Regeln entspricht. Die XML-Daten können überprüft werden, um festzustellen, dass sie den Regeln für ein wohlgeformtes XML 1.0-Dokument oder ein Dokumentfragment entsprechen. In der folgenden Tabelle werden die drei Einstellungen beschrieben. Der Standardwert ist Konformität auf Dokumentebene.

Einstellung Beschreibung
Document Stellt sicher, dass die XML-Ausgabe den Regeln für ein wohlgeformtes XML 1.0-Dokument entspricht und von jedem konformen Prozessor verarbeitet werden kann.

Die Dokumentkonformitätsprüfungen umfassen die meisten Überprüfungen auf Fragmentebene und stellen außerdem Folgendes sicher:

– Das Element der obersten Ebene verfügt über keine anderen Knoten als XML-Deklaration, DTD, Element, Kommentar, Leerraum oder Verarbeitungsanweisung.
– Die XML-Daten verfügen über nur einen Elementknoten der obersten Ebene.

Der XML-Writer analysiert keine DTD-Informationen, die geschrieben werden. Der Benutzer ist dafür verantwortlich, dass die DTD wohlgeformt ist.
Fragment Stellt sicher, dass die XML-Ausgabe den Regeln für ein wohlgeformte XML 1.0-Dokumentfragment entspricht.

Diese Einstellung akzeptiert XML-Daten mit mehreren Stammelementen oder Textknoten auf oberster Ebene. Diese Ebene der Überprüfung stellt sicher, dass alle Prozessoren den als eine extern analysierte XML 1.0-Entität gelesenen Stream verwenden können.

DTD-Informationen sind in Dokumentfragmenten nicht zulässig.
Auto Gibt an, dass der XML-Writer den Grad der Konformitätsüberprüfung basierend auf den eingehenden Daten bestimmen soll. Diese Einstellung kann nützlich sein, wenn Sie nicht wissen, ob es sich bei dem generierten XML-Code um ein wohlgeformtes XML-Dokument oder ein Fragment handelt.

Die Übereinstimmungsprüfung für Dokumente wird in den folgenden Fällen angewendet:

– Wenn die WriteStartDocument -Methode aufgerufen wird.
– Wenn DTD-Informationen geschrieben werden.

Die Fragmentkonformitätsprüfung wird angewendet, wenn die XML-Daten eine der folgenden Enthalten:

– Text-, CDATA- oder EntityReference-Knoten auf Stammebene.
– Mehr als ein Element auf Stammebene.
– Kein Element auf Stammebene.

Wenn ein Konflikt auftritt, z. B., wenn Sie versuchen, einen Textknoten und eine DTD auf der Stammebene zu schreiben, wird eine XmlException ausgelöst.

Wenn Sie ein anderes XmlWriter Objekt umschließen, führt das äußere Objekt keine zusätzliche Konformitätsüberprüfung durch. Dies wird dem zugrunde liegenden Objekt überlassen.

Wenn der XML-Writer Informationen erkennt, die gegen die angegebene Konformitätsstufe verstoßen würden, löst er eine Ausnahme aus. In einigen Fällen korrigiert der XML-Writer den Konformitätsfehler automatisch. Beispielsweise schließt der Writer ein nicht geschlossenes Attribut, ohne eine Ausnahme zu auslösen. Die folgende Tabelle zeigt, wie verschiedene Konformitätsverletzungen in jeder Einstellung behandelt werden.

Bedingung Document Fragment Auto
DTD-Informationen werden gefunden. Kein Verstoß für diese Einstellung. Der XML-Writer überprüft die DTD jedoch nicht. Der Benutzer muss sicherstellen, dass die DTD wohlgeformt ist. XmlException wird ausgelöst. Die Dokumentkonformitätsprüfung wird angewendet.
WriteStartDocument wird aufgerufen. Gilt nicht als Verstoß für diese Einstellung. XmlException wird ausgelöst. Die Dokumentkonformitätsprüfung wird angewendet.
WriteStartDocument wird mehrmals aufgerufen. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Ein Textwert wird auf der obersten Ebene (nicht unterhalb eines Elements oder Attributknotens) angezeigt. XmlException wird ausgelöst. Nicht als Verstoß betrachtet. Die Konformitätsüberprüfung für Fragmente wird angewendet.
Mehrere Elemente oder keine Elemente werden auf der obersten Ebene angezeigt. XmlException wird ausgelöst. Nicht als Verstoß betrachtet. Die Konformitätsüberprüfung für Fragmente wird angewendet.
Das Element der obersten Ebene ist Leerzeichen. Nicht als Verstoß betrachtet. Nicht als Verstoß betrachtet. Nicht als Verstoß betrachtet.
WriteEndAttribute wird nicht aufgerufen, um einen Attributknoten zu beenden. Vom XML-Writer behoben. Vom XML-Writer behoben. Vom XML-Writer behoben.
Der XML-Writer befindet sich in einem nicht ordnungsgemäß geschachtelten Zustand (z. B. folgt einem WriteStartElement Aufruf ein WriteEndAttribute). XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Das Element der obersten Ebene ist ein Attribut. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Es werden mehrere aneinandergrenzende Textknoten gefunden. Nicht als Verstoß betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten. Nicht als Verstoß betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten. Nicht als Verstoß betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten.
In einem Element wird das gleiche Namespacepräfix zweimal deklariert. Der XML-Writer generiert ein neues Präfix für den zweiten Namespace. Der XML-Writer generiert ein neues Präfix für den zweiten Namespace. Der XML-Writer generiert ein neues Präfix für den zweiten Namespace.
WriteStartElement gibt ein Präfix und einen Namespace an, die innerhalb dieses Bereichs nicht deklariert sind, oder das Präfix einem anderen Namespace zugeordnet ist. Der XML-Writer schreibt den erforderlichen Namespaceknoten. Der XML-Writer schreibt den erforderlichen Namespaceknoten. Der XML-Writer schreibt den erforderlichen Namespaceknoten.
WriteStartAttribute gibt ein Präfix und einen Namespace an, der innerhalb dieses Bereichs nicht deklariert ist. Der XML-Writer schreibt den erforderlichen Namespaceknoten. Der XML-Writer schreibt den erforderlichen Namespaceknoten. Der XML-Writer schreibt den erforderlichen Namespaceknoten.
WriteStartAttribute gibt ein Präfix und einen Namespace an, aber das Präfix ist einem anderen Namespace im Bereich zugeordnet. Der XML-Writer ignoriert das angegebene Präfix und sucht entweder das richtige Präfix oder generiert ein neues Präfix. Der XML-Writer ignoriert das angegebene Präfix und sucht entweder das richtige Präfix oder generiert ein neues Präfix. Der XML-Writer ignoriert das angegebene Präfix und sucht entweder das richtige Präfix oder generiert ein neues Präfix.
WriteQualifiedName wird verwendet, um Elementinhalte mithilfe eines Namespaces zu schreiben, der nicht innerhalb des Bereichs vorhanden ist. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
WriteQualifiedName wird verwendet, um Attributinhalt mithilfe eines Namespaces zu schreiben, der nicht innerhalb des Bereichs vorhanden ist. Der XML-Writer schreibt die erforderliche Namespacedeklaration. Der XML-Writer schreibt die erforderliche Namespacedeklaration. Der XML-Writer schreibt die erforderliche Namespacedeklaration.
Das xml:space Attribut enthält keinen gültigen Wert. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Es wurde ein ungültiger Name gefunden. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Das xml Präfix wird nicht mit einem URI abgeglichen. Der XML-Writer überprüft nicht auf diese Art von Verletzung. Der XML-Writer überprüft nicht auf diese Art von Verletzung. Der XML-Writer überprüft nicht auf diese Art von Verletzung.
Das xml Präfix wird nicht mit dem http://www.w3.org/XML/1998/namespace URI abgeglichen. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Das xmlns Präfix oder der lokale Name wird nicht mit einem URI abgeglichen. Der XML-Writer überprüft nicht auf diese Art von Verletzung. Der XML-Writer überprüft nicht auf diese Art von Verletzung. Der XML-Writer überprüft nicht auf diese Art von Verletzung.
Das xmlns Präfix oder der lokale Name wird nicht mit dem http://www.w3.org/2000/xmlns URI abgeglichen. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.

Gilt für: