Prise en charge de la liaison de l'élément Restriction
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 <restriction>.
La seule restriction de type pour laquelle le .NET Framework fournit une liaison entièrement expressive est l'énumération de types simples basés sur une chaîne.
Explication
Le langage XSD permet la dérivation de types nouveaux à partir des types de base à travers l'extension et la restriction. L'extension est toujours utilisée pour dériver des types complexes. La restriction peut être utilisée pour dériver des types complexes et des types simples, bien qu'elle soit généralement utilisée pour les types simples.
Alors que les extensions de type schéma XML sont toujours exprimées entièrement à travers des définitions de classe dans le .NET Framework, la seule restriction de type pour laquelle il existe une liaison est l'énumération d'un type simple, localisée via le simpleType/restriction/enumeration
XPath. De plus, l'élément <enumeration> est lié uniquement lorsqu'il est appliqué aux types simples basés sur une chaîne.
Pour tous les autres enfants de l'élément simpleType/restriction
(ou lorsque l'énumération est appliquée à un type de base autre qu'une chaîne), ce qui suit s'applique :
Lors de la génération du code source à partir d'un document de schéma XML, Xsd.exe ignore la restriction ; il génère simplement le type .NET Framework correspondant au type simple de base.
La classe XmlSerializer ignore la restriction lors de la sérialisation des objets vers XML et de la désérialisation à partir de XML.
Pour un type complexe, si la restriction implique du contenu complexe, via le complexType/complexContent/restriction
XPath, Xsd.exe génère une classe vide qui hérite d'une classe de base. La classe XmlSerializer ignore la restriction. Xsd.exe ne reconnaît pas une restriction qui implique du contenu simple, via le complexType/simpleContent/restriction
XPath.
Alors que la prise en charge de la liaison relative à la restriction est limitée, celle-ci est entièrement représentée dans le modèle d'objet de schéma. Il existe la classe XmlSchemaSimpleTypeRestriction pour la restriction de type simple et les classes XmlSchemaComplexContentRestriction et XmlSchemaSimpleContentRestriction pour les deux types de restriction de type complexe. En outre, XmlSchemaSimpleTypeRestriction et XmlSchemaSimpleContentRestriction ont une propriété Facets qui peut stocker des objets représentant chacun des enfants de simpleType/restriction
ou simpleContent/restriction
.
Les objets de ces classes peuvent être utilisés pour créer par programme un modèle d'objet de schéma utilisant toute restriction de type fournie dans la spécification de schéma XML. Ce modèle peut être sérialisé vers et désérialisé à partir d'un document de schéma XML.
De plus, un objet XmlValidatingReader peut être utilisé pour valider une instance de document XML par rapport à un schéma XML qui utilise la restriction.
Attributs possibles | Prise en charge de la liaison |
---|---|
base |
L'élément <restriction> requiert un attribut base dont la valeur correspond au nom qualifié du type de données de base. Lors de la définition des types simples via la restriction, la valeur de l'attribut base détermine si Xsd.exe reconnaît la restriction. Si la base est un type de données du schéma XML qui crée une liaison avec une chaîne, Xsd.exe génère un type enum. Sinon, Xsd.exe génère un champ du type .NET Framework qui crée une liaison avec la valeur base. Consultez le texte précédent pour plus d'informations sur l'utilisation de l'attribut base lors de la définition de types complexes via la restriction. |
id |
L'utilitaire Xsd.exe ignore l'attribut id qui a pour but de fournir un identificateur unique. |
Éléments parents possibles : <complexContent>, <simpleContent>, <simpleType>
Éléments enfants possibles : <all>, <annotation>, <anyAttribute>, <attribute>, <attributeGroup>, <choice>, <enumeration>, <fractionDigits>, <group>, <length>, <maxExclusive>, <maxInclusive>, <maxLength>, <minExclusive>, <minInclusive>, <minLength>, <pattern>, <sequence>, <simpleType>, <totalDigits>, <whiteSpace>
Voir aussi
Référence
XmlSchemaComplexContentRestriction
XmlSchemaSimpleContentRestriction
XmlSchemaSimpleTypeRestriction