Freigeben über


Bindungsunterstützung für das name-Attribut

Dieses Thema bezieht sich auf eine veraltete Technologie. XML-Webdienste und XML-Webdienstclients sollten nun mithilfe der folgenden Technologie erstellt werden: Windows Communication Foundation.

.NET Framework stellt Bindungsunterstützung für das name-Attribut bereit.

Der Wert des name-Attributs entspricht dem Namen einer öffentlichen Klasse oder eines öffentlichen Felds, je nachdem, auf welches Element das Attribut angewendet wird. Eine entsprechende ***Name-Eigenschaft kann angewendet werden, um den beim Generieren eines XSD-Dokuments mit Xsd.exe erstellten Namen zu überschreiben.

Generieren von Quellcode aus XSD-Dokumenten

Das name-Attribut wird beim Generieren von Quellcode aus einem XML-Schemadokument folgendermaßen für die Elemente verwendet, für die Xsd.exe Typbindungen bereitstellt:

<attribute>: Gibt den Namen des öffentlichen Klassenfelds an, das das entsprechende Attribut darstellt. Das Feld wird mit System.Xml.Serialization.XmlAttributeAttribute dargestellt.

<complexType>: Gibt den Namen der Klasse an, die dem komplexen Typ entspricht.

<element>: Gibt den Namen des öffentlichen Klassenfelds an, das das entsprechende Element darstellt. Wenn das <element>-Element eine anonyme <complexType>-Definition enthält, wird der Name in den Namen der Klasse geändert, die dem komplexen Typ entspricht.

<simpleType>: Gibt den Namen der Klasse an, die dem einfachen Typ entspricht. Mit .NET Framework können einfache Typen nur durch (a) Enumeration von zeichenfolgenbasierten Typen und (b) Erstellen von als Attribute verwendeten Listen abgeleitet werden.

Es wird nicht versucht, die Groß-/Kleinschreibung zu ändern, um die Codierungskonventionen zu befolgen. Wenn das name-Attribut eines <complexType>-Elements beispielsweise über den Wert testInfo verfügt, trägt die entsprechende Klasse den Namen testInfo und nicht TestInfo beginnend mit einem Großbuchstaben. Wenn ein Name mit einem reservierten Schlüsselwort in Konflikt steht, ist dem sich ergebenden Namen das Symbol @ vorangestellt.

.NET Framework hat keine Bindungen mit den folgenden Elementen der XML-Schemadefinitionssprache, die zur Eindeutigkeit und Verweisintegrität verwendet werden: <key>, <keyref> und <unique>. Dementsprechend wird die Darstellung des name-Attributs in diesen Elementen ignoriert. Ebenso gibt es keine Typbindungen für das <notation>-Element, sodass das darin enthaltene name-Attribut ignoriert wird.

Da Xsd.exe das <group>-Element und das <attributeGroup>-Element nicht direkt unterstützt und stattdessen den Inhalt jedes Verweises in der Klasse erweitert, die jedem komplexen Typ mit einem Verweis entspricht, wird der Name der Gruppe oder der Attributgruppe ignoriert.

Generieren von XSD-Dokumenten aus Klassen

Wenn Xsd.exe ein XSD-Dokument aus einer Reihe von Klassen in einer Assembly generiert, werden die zuvor beschriebenen Codekonstrukte zum Bereitstellen von Werten für die entsprechenden name-Attribute verwendet.

Da neben Feldern auch öffentliche Eigenschaften in das <element>-Element und das <attribute>-Element übersetzt werden, werden die Eigenschaftennamen zudem in der Standardeinstellung zu name-Attributwerten.

Ein alternativer Name, der name-Attributwert, kann über die folgenden Attributeigenschaften angegeben werden:

Mögliche enthaltene Elemente: <attribute>, <attributeGroup>, <complexType>, <element>, <group>, <key>, <keyref>, <notation>, <simpleType>, <unique>

Siehe auch

Verweis

System.Xml.Schema.XmlSchemaAttribute.Name
System.Xml.Schema.XmlSchemaAttributeGroup.Name
System.Xml.Schema.XmlSchemaElement.Name
System.Xml.Schema.XmlSchemaGroup.Name
System.Xml.Schema.XmlSchemaType.Name
XmlSchemaComplexType
XmlSchemaSimpleType
System.Xml.Schema.XmlSchemaIdentityConstraint.Name
XmlSchemaKey
XmlSchemaKeyref
XmlSchemaUnique
System.Xml.Schema.XmlSchemaNotation.Name