Freigeben über


Bindungsunterstützung für das anyAttribute-Element

.NET Framework stellt partielle Bindungsunterstützung für das <anyAttribute>-Element bereit.

Beim Generieren von Quellcode aus einem XML-Schemadokument wandelt Xsd.exe das <anyAttribute>-Feld in ein Feld des Typs XmlAttribute mit einem XmlAnyAttributeAttribute-Attribut um.

Erklärung

Über den <anyAttribute>-Platzhalter können beliebige Attribute (Attribut mit einem beliebigen Namen oder des einfachen Typs) mit ein paar Einschränkungen in einem angegebenen Element in einem XML-Instanzendokument angezeigt werden.

Beim Generieren von Quellcode aus einem XML-Schemadokument wandelt Xsd.exe das <anyAttribute>-Feld in ein Feld des Typs XmlAttribute mit einem XmlAnyAttributeAttribute-Attribut um. Über dieses Attribut kann eine Klasse beliebige XML-Attribute darstellen, ohne diese an nicht XML-spezifische Typen zu binden, die über andere mögliche Felder oder Eigenschaften der Klasse angegeben werden.

Beim Generieren eines XML-Schemadokuments aus einer Reihe von Klassen in einer Assembly führt Xsd.exe eine Rückübersetzung durch: Ein Feld oder eine Eigenschaft des Typs System.Xml.XmlAttribute mit dem XmlAnyAttributeAttribute-Attribut wird in ein <anyAttribut>-Element übersetzt.

namespace-Attribut und processContents-Attribut

Beim Generieren von XML-Schemadefinitionen oder Klassen werden das namespace-Attribut und das processContents-Attribut ignoriert. Wenn diese Attributwerte in einer ursprünglichen XML-Schemadefinition vorhanden sind und Xsd.exe Klassen aus der Definition und anschließend ein anderes XML-Schema aus den Klassen generiert, verfügt das <anyAttribute>-Element des generierten XML-Schemas daher nicht mehr über diese Attribute. Daher werden im letzteren Schema die folgenden Standardwerte übernommen:

  • namespace="##any": Das namespace-Attribut gibt die Namespaces an, in denen das Attribut definiert werden muss. Ein Wert von ##any lässt jeden Namespace zu.

  • processContents="strict": Achten Sie bei der Überprüfung eines XML-Instanzendokuments auf Übereinstimmung mit dem entsprechenden angegebenen XML-Schema darauf, dass alle Elementtypen entsprechend den angegebenen Namespaces überprüft werden. Wenn ein Elementtyp nicht erkannt wird, schlägt die Validierung fehl.

Ebenso werden das namespace-Attribut und das processContents-Attribut bei der Deserialisierung von XML-Dokumenten in Objekte ignoriert. Stattdessen verhält sich die XmlSerializer-Klasse so, als ob die beiden Attribute auf die folgenden Werte festgelegt wurden:

  • namespace="##any": Dies ist der Standardwert.

  • processContents="lax": Prüfen Sie bei der Überprüfung eines XML-Instanzendokuments auf Übereinstimmung mit dem entsprechenden angegebenen XML-Schema das Attribut nur, wenn der zugehörige Namespace abgerufen werden kann. Achten Sie andernfalls darauf, dass ein nicht erkanntes Attribut aus wohlgeformter XML besteht.

NoteHinweis:

Obwohl .NET Framework zur Laufzeit processContents="lax" voraussetzt, werden zur Bereitstellungszeit XML-Schemadefinitionen generiert, in denen das standardmäßige processContents="strict" implizit angegeben ist.

Xsd.exe und die XmlSerializer-Klasse stellen die gleichen Bindungen für das namespace-Attribut und das processContents-Attribut bereit, wenn sie im <any>-Element angezeigt werden.

Mögliche Attribute Bindungsunterstützung

id

Das Dienstprogramm Xsd.exe ignoriert das id-Attribut, mit dem ein eindeutiger Bezeichner bereitgestellt werden soll.

namespace

Weitere Informationen finden Sie im Abschnitt Namespace-Attribut und processContents-Attribut in diesem Thema.

processContents

Siehe den Abschnitt über das namespace-Attribut und das processContents-Attribut in diesem Thema.

Mögliche übergeordnete Elemente: <attributeGroup>, <complexType>, <extension>, <restriction>

Mögliche untergeordnete Elemente: <annotation>

Siehe auch

Referenz

XmlAnyAttributeAttribute

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.