Datenkonformität und der "XmlWriter"

Aktualisiert: November 2007

Die XmlWriter-Klasse umfasst zwei Einstellungen zur Übereinstimmungsprüfung. Sie können festlegen, dass XmlWriter sicherstellt, dass die geschriebenen Daten übereinstimmen.

CheckCharacters-Einstellung

Die XmlWriterSettings.CheckCharacters-Eigenschaft weist den Writer an, Zeichen zu überprüfen und eine XmlException auszulösen, wenn sich Zeichen außerhalb des Bereichs zulässiger XML-Zeichen befinden. Wenn die Zeichenüberprüfung aktiviert ist, ist sichergestellt, dass sich alle Zeichen im Dokument im Bereich der zulässigen XML-Zeichen befinden, der im W3C-Dokument Extensible Markup Language (XML) 1.0 definiert ist.

Hinweis:

Bei der Zeichenüberprüfung wird nicht überprüft, ob XML-Namen nicht zulässige Zeichen enthalten oder ob sie gültig sind. Die Namensüberprüfung ist ein Standardbestandteil der Übereinstimmungsprüfung. Weitere Informationen finden Sie unter http://www.w3.org/TR/REC-xml#NT-Name.

In der Standardeinstellung ist die Zeichenüberprüfung aktiviert.

ConformanceLevel-Einstellung

Die XmlWriterSettings.ConformanceLevel-Eigenschaft konfiguriert den XmlWriter so, dass er überprüft und garantiert, dass der geschriebene Stream einer bestimmten Gruppe von Regeln entspricht. Je nach angegebener Übereinstimmungsebene können die XML-Daten auf Übereinstimmung mit den Regeln für ein wohlgeformtes XML 1.0-Dokument oder -Dokumentfragment überprüft werden. Wenn die Daten nicht übereinstimmen, wird eine XmlException oder eine ArgumentException ausgelöst. Die Standardeinstellung ist ConformanceLevel.Document.

Hinweis:

Wenn der Writer für die Unterstützung von ConformanceLevel.Fragment konfiguriert ist, die XML-Daten jedoch eine DTD (Dokumenttypdefinition) enthalten, löst der Writer eine Ausnahme aus. Gemäß XML 1.0-Empfehlung muss bei vorhandener DTD Konformität auf Dokumentebene vorliegen. Deshalb löst der Writer auch eine Ausnahme aus, wenn die WriteStartDocument-Methode für einen Writer aufgerufen wird, der für die Unterstützung von ConformanceLevel.Fragment konfiguriert ist.

Übereinstimmungsebene

Beschreibung

Dokument

Durch diese Einstellung wird sichergestellt, dass die Ausgabe den Regeln für ein wohlgeformtes XML 1.0-Dokument entspricht und von einem beliebigen konformen Prozessor verarbeitet werden kann.

Hinweis:

Der Writer analysiert die geschriebenen DTD-Informationen nicht. Der Benutzer muss sicherstellen, dass die DTD wohlgeformt ist.

Fragment

Die XML-Daten entsprechen den Regeln für ein wohlgeformtes XML 1.0-Dokumentfragment.

Bei dieser Einstellung werden XML-Daten mit mehreren Stammelementen oder Textknoten der obersten Ebene akzeptiert. 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.

Hinweis:

DTD ist in Fragmenten nicht zulässig.

Auto

Der Writer entscheidet anhand der eingehenden Daten, welche Ebene der Übereinstimmungsprüfung angewendet werden soll. Diese Einstellung kann hilfreich sein, wenn nicht bekannt ist, ob es sich beim generierten XML-Code um ein wohlgeformtes XML-Dokument bzw. -Fragment handelt.

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

Die Übereinstimmungsprüfung für Fragmente wird angewendet, wenn die XML-Daten eines der folgenden Elemente enthalten:

  • Textknoten, CDATA-Knoten oder EntityReference-Knoten auf der Stammebene.

  • Mehr als ein Element auf der Stammebene.

  • Kein Element auf der 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.

Diese Einstellung kann in Wrappingszenarios verwendet werden, wenn mithilfe der Create-Methode einem vorhandenen Writer zusätzliche Features hinzugefügt werden. In diesem Fall fügt ConformanceLevel.Auto keine neue Übereinstimmungsprüfung hinzu. Die Übereinstimmungsprüfung wird dem Writer überlassen, für den ein Wrapper erstellt wird.

Siehe auch

Weitere Ressourcen

Schreiben von XML mit dem "XmlWriter"