Partager via


Prise en charge de la liaison de l'élément SimpleContent

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. La restriction de contenu simple n'est pas reconnue.

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>.

Xsd.exe ne reconnaît pas la restriction de contenu simple. L'extension de contenu simple est toujours exprimée entièrement à travers les définitions de classe dans le .NET Framework. 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 .NET Framework Developer's Guide.

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, qui définit des types complexes contenant du contenu simple.

Exemple

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

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.