Freigeben über


XmlWriterSettings.ConformanceLevel Eigenschaft

Definition

Ruft die Konformitätsstufe ab, auf die der XML-Writer die XML-Ausgabe überprüft, oder legt diese 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, die die Konformitätsstufe (Dokument, Fragment oder automatische Erkennung) angibt. Der Standardwert lautet 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 geschriebene Datenstrom einer bestimmten Reihe von Regeln entspricht. Die XML-Daten können überprüft werden, um festzustellen, ob sie den Regeln für ein wohlgeformtes XML 1.0-Dokument oder ein Dokumentfragment entspricht. In der folgenden Tabelle werden die drei Einstellungen beschrieben. Die Standardeinstellung ist die Konformität auf Dokumentebene.

Setting 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 Prüfungen auf Fragmentebene und stellen außerdem Folgendes sicher:

– Das Element auf oberster Ebene verfügt nicht über andere Knoten als XML-Deklaration, DTD, Element, Kommentar, Leerzeichen oder Verarbeitungsanweisung.
– Die XML-Daten verfügen über einen einzigen Elementknoten auf oberster Ebene.

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

Diese Einstellung akzeptiert XML-Daten mit mehreren Stammelementen oder Textknoten auf oberster Ebene. Diese Überprüfungsebene stellt sicher, dass jeder Prozessor den Datenstrom nutzen kann, der als externe analysierte XML 1.0-Entität gelesen wird.

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

Die Dokumentkonformitätsprüfung wird in den folgenden Fällen angewendet:

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

Die Überprüfung der Fragmentkonformität wird angewendet, wenn die XML-Daten eine der folgenden Komponenten enthalten:

- Text-, CDATA- oder EntityReference-Knoten auf der Stammebene.
- Mehrere Elemente auf der Stammebene.
- Kein Element auf der Stammebene.

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

Wenn Sie ein anderes XmlWriter Objekt umschließen, wird vom äußeren Objekt keine zusätzliche Konformitätsüberprüfung ausgeführt. Dies bleibt 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 automatisch den Konformitätsfehler. Beispielsweise schließt der Writer ein nicht aufgehobenes Attribut, ohne eine Ausnahme zu auslösen. In der folgenden Tabelle wird gezeigt, wie verschiedene Konformitätsverletzungen in den einzelnen Einstellungen behandelt werden.

Zustand Document Fragment Auto
DTD-Informationen werden gefunden. Keine Verletzung für diese Einstellung. Der XML-Writer überprüft jedoch nicht die DTD; der Benutzer muss sicherstellen, dass die DTD wohlgeformt ist. XmlException wird ausgelöst. Die Überprüfung der Dokumentkonformität wird angewendet.
WriteStartDocument wird aufgerufen. Wird für diese Einstellung nicht als Verstoß angesehen. XmlException wird ausgelöst. Die Überprüfung der Dokumentkonformität 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 angezeigt (nicht unterhalb eines Elements oder Attributknotens). XmlException wird ausgelöst. Wird nicht als Verletzung betrachtet. Die Überprüfung der Fragmentkonformität wird angewendet.
Mehrere Elemente oder keine Elemente werden auf der obersten Ebene angezeigt. XmlException wird ausgelöst. Wird nicht als Verletzung betrachtet. Die Überprüfung der Fragmentkonformität wird angewendet.
Element auf oberster Ebene ist Leerraum. Wird nicht als Verletzung betrachtet. Wird nicht als Verletzung betrachtet. Wird nicht als Verletzung 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 ein WriteStartElement Aufruf von einem WriteEndAttribute). XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Element der obersten Ebene ist ein Attribut. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Es werden mehrere zusammenhängende Textknoten gefunden. Wird nicht als Verletzung betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten. Wird nicht als Verletzung betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten. Wird nicht als Verletzung betrachtet, aber es liegt in der Verantwortung des Benutzers, die Textknoten zu verketten.
Dasselbe Namespacepräfix wird zweimal in einem Element 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, der nicht innerhalb dieses Bereichs deklariert ist 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 nicht innerhalb dieses Bereichs 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 nach dem richtigen Präfix oder generiert ein neues Präfix. Der XML-Writer ignoriert das angegebene Präfix und sucht entweder nach dem richtigen Präfix oder generiert ein neues Präfix. Der XML-Writer ignoriert das angegebene Präfix und sucht entweder nach dem richtigen 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 Attributinhalte 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 ist ein ungültiger Name aufgetreten. 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 ist nicht mit dem http://www.w3.org/XML/1998/namespace URI übereinstimmt. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.
Das xmlns Präfix oder der lokale Name stimmt nicht mit einem URI überein. 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 stimmt nicht mit dem http://www.w3.org/2000/xmlns URI überein. XmlException wird ausgelöst. XmlException wird ausgelöst. XmlException wird ausgelöst.

Gilt für: