Bindungsunterstützung für das simpleContent-Element
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 partielle Bindungsunterstützung für das <simpleContent>-Element bereit.
Die einfache Inhaltserweiterung wird immer vollständig durch Klassendefinitionen in .NET Framework ausgedrückt. Die einfache Inhaltsbeschränkung wird von Xsd.exe nicht erkannt.
Erklärung
In der XML-Schemadefinitionssprache wird das <simpleContent>-Element zum Definieren eines komplexen Typs verwendet, der keine untergeordneten Elemente enthält. Ein komplexer Typ, der einfachen Inhalt enthält (Attribute, Textkörper oder beides), wird aus einer Basisklasse entweder durch Erweiterung oder durch Beschränkung abgeleitet. Dazu wird ein <extension>-Element oder ein <restriction>-Element unter dem <simpleContent>-Element verwendet.
Beim Generieren von Quellcode aus einem XML-Schemadokument erzeugt Xsd.exe ein öffentliches Feld, dessen Typ dem Basistyp entspricht, der durch das base-Attribut des <extension>-Elements angegeben ist. Informationen zu Bindungen zwischen integrierten einfachen Typen im XML-Schema und .NET Framework-Typen finden Sie unter "Datentypunterstützung zwischen XML-Schematypen (XSD) und .NET Framework-Typen" im .NET Framework-Entwicklerhandbuch.
Eine einfache Inhaltserweiterung und eine einfache Inhaltsbeschränkung werden im Schemaobjektmodell durch die XmlSchemaSimpleContentExtension-Klasse bzw. die XmlSchemaSimpleContentRestriction-Klasse sowie die XmlSchemaSimpleContent-Klasse dargestellt.
Objekte dieser Klassen können verwendet werden, um programmatisch ein Schemaobjektmodell mit Bezug auf ein XSD-Dokument zu erstellen, das komplexe Typen mit einfachem Inhalt definiert.
Beispiel
Der folgende Code stellt das Eingabe-XML-Schemadokument dar.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
<xsd:element name="Distance">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:float">
<xsd:attribute name="units" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Die aus dem vorhergehenden XML-Schemadokument generierte C#-Klasse.
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://example.org/", IsNullable=false)]
public class Distance {
[System.Xml.Serialization.XmlAttributeAttribute()]
public string units;
[System.Xml.Serialization.XmlTextAttribute()]
public System.Single Value;
}
Das XML-Schemaelement und der komplexe Typ, die aus einer Assembly, die aus der vorherigen C#-Quelle kompiliert wurde, generiert wurden.
<xs:element name="Distance" type="tns:Distance" />
<xs:complexType name="Distance">
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attribute name="units" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
Mögliche Attribute | Bindungsunterstützung |
---|---|
id |
Das Hilfsprogramm Xsd.exe ignoriert das id-Attribut, mit dem ein eindeutiger Bezeichner bereitgestellt werden soll. |
Mögliche übergeordnete Elemente: <complexType>
Mögliche untergeordnete Elemente: <annotation>, <extension>, <restriction>