Prise en charge de la liaison de l'élément SimpleContent
Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.
Le .NET Framework prend en charge la liaison partielle pour l'élément <simpleContent>.
L'extension de contenu simple est toujours exprimée entièrement à travers les définitions de classe dans le .NET Framework. Xsd.exe ne reconnaît pas la restriction de contenu simple.
Explication
Le langage XSD utilise l'élément <simpleContent> pour définir un type complexe qui ne contient pas d'éléments enfants. Un type complexe qui contient du contenu simple (attributs et/ou corps de texte) est dérivé d'un type de base à travers l'extension ou la restriction, en utilisant un élément <extension> ou <restriction> sous l'élément <simpleContent>.
Lors de la génération du code source à partir d'un document de schéma XML, Xsd.exe génère un champ public d'un type qui correspond au type de base, spécifié par l'attribut base de l'élément <extension>. Pour plus d'informations sur les liaisons entre les types simples intégrés dans le schéma XML et les types .NET Framework, consultez « Prise en charge des types de données entre des types XSD et des types .NET Framework » dans le Guide du développeur .NET Framework.
L'extension et la restriction de contenu simple sont représentées dans le modèle d'objet de schéma à travers les classes XmlSchemaSimpleContentExtension et XmlSchemaSimpleContentRestriction, ainsi qu'à travers la classe XmlSchemaSimpleContent.
Les objets de ces classes peuvent être utilisés pour créer un modèle d'objet de schéma par programme, correspondant à un document XSD, lequel définit des types complexes avec du contenu simple.
Exemple
Le code suivant correspond au document de schéma XML d'entrée.
<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>
Classe C# générée à partir du document de schéma XML précédent.
[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;
}
Type complexe et élément de schéma XML générés à partir d'un assembly compilé depuis la source C# précédente.
<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>
Attributs possibles | Prise en charge de la liaison |
---|---|
id |
L'utilitaire Xsd.exe ignore l'attribut id qui a pour but de fournir un identificateur unique. |
Éléments parents possibles : <complexType>
Éléments enfants possibles : <annotation>, <extension>, <restriction>