Prise en charge de la liaison de l'attribut Name
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 pour l'attribut name.
La valeur de l'attribut name correspond au nom d'une classe ou d'un champ public, en fonction de l'élément auquel l'attribut est appliqué. Une propriété ***Name appropriée peut être appliquée pour substituer le nom obtenu lorsque Xsd.exe génère un document XSD.
Génération de la source à partir de documents XSD
L'attribut name est utilisé comme suit pour les éléments pour lesquels Xsd.exe fournit des liaisons de type lors de la génération du code source à partir d'un document de schéma XML :
<attribute> : fournit le nom du champ de classe public qui représente cet attribut. Le champ apparaît avec un System.Xml.Serialization.XmlAttributeAttribute.
<complexType> : fournit le nom de classe qui correspond au type complexe.
<element> : fournit le nom du champ de classe public qui représente cet élément. Si l'élément <element> contient une définition <complexType> anonyme, le nom devient le nom de classe qui correspond au type complexe.
<simpleType> : fournit le nom de classe qui correspond au type simple. Le .NET Framework autorise la dérivation de types simples uniquement via (a) l'énumération de types basés sur une chaîne et (b) la création de listes utilisées comme attributs.
Aucune tentative de modification de la casse pour respecter les conventions de codage n'est effectuée. Par exemple, si l'attribut de nom d'un élément <complexType> a la valeur testInfo
, la classe résultante est nommée testInfo, plutôt que TestInfo en majuscules. Si un nom est en conflit avec un mot clé réservé, le nom résultant est précédé du symbole @.
Le .NET Framework ne dispose pas de liaisons avec les éléments du langage XSD (XML Schema Definition) suivants utilisés pour établir l'unicité et l'intégrité référentielle : <key>, <keyref> et <unique>. Par conséquent, l'apparence de l'attribut name dans ces éléments est ignorée. De même, il n'existe aucune liaison de type pour l'élément <notation>. L'attribut name est donc ignoré.
Étant donné que Xsd.exe ne prend pas directement en charge les éléments <group> et <attributeGroup>, développant plutôt le contenu de chaque référence dans la classe correspondant à chaque type complexe contenant une référence, le nom du groupe ou du groupe d'attributs est ignoré.
Génération de documents XSD à partir de classes
Lorsque Xsd.exe génère un document XSD à partir d'un ensemble de classes dans un assembly, il utilise les constructions de code décrites précédemment pour appliquer des valeurs aux attributs name correspondants.
En outre, étant donné que les propriétés publiques, en plus des champs, sont traduites en éléments <element> et <attribute>, les valeurs de l'attribut name s'appliquent aux noms des propriétés par défaut.
Un autre nom (valeur de l'attribut name) peut être fourni via les propriétés d'attribut suivantes :
System.Xml.Serialization.XmlAttributeAttribute.AttributeName
System.Xml.Serialization.XmlTypeAttribute.TypeName : modifie le nom du type de données XSD qui correspond au type .NET Framework auquel l'attribut a été appliqué.
System.Xml.Serialization.XmlArrayAttribute.ElementName : modifie le nom de l'élément XML parent du tableau.
System.Xml.Serialization.XmlArrayItemAttribute.ElementName : modifie les noms des éléments enfants séquentiels qui correspondent aux entrées de tableau.
Éléments conteneurs possibles : <attribute>, <attributeGroup>, <complexType>, <element>, <group>, <key>, <keyref>, <notation>, <simpleType>, <unique>
Voir aussi
Référence
System.Xml.Schema.XmlSchemaAttribute.Name
System.Xml.Schema.XmlSchemaAttributeGroup.Name
System.Xml.Schema.XmlSchemaElement.Name
System.Xml.Schema.XmlSchemaGroup.Name
System.Xml.Schema.XmlSchemaType.Name
XmlSchemaComplexType
XmlSchemaSimpleType
System.Xml.Schema.XmlSchemaIdentityConstraint.Name
XmlSchemaKey
XmlSchemaKeyref
XmlSchemaUnique
System.Xml.Schema.XmlSchemaNotation.Name