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>

Voir aussi

Référence

XmlSchemaSimpleContent