Compatibilidad con enlaces del atributo Name
Este tema es específico de una tecnología heredada. Ahora, los servicios Web XML y los clientes de servicios Web XML deben crearse con Windows Communication Foundation.
.NET Framework proporciona compatibilidad con enlaces para el atributo name.
El valor del atributo name corresponde al nombre de una clase o un campo público, según el elemento al que se aplica el atributo. Se puede aplicar una propiedad ***Name adecuada para reemplazar el nombre creado cuando Xsd.exe genera un documento XSD.
Generar código fuente a partir de documentos XSD
El atributo name se usa como se describe a continuación, para los elementos a los que Xsd.exe proporciona enlaces de tipos cuando se genera código fuente a partir de un documento de esquema XML:
<attribute>: proporciona el nombre del campo de clase pública que representa ese atributo. El campo aparece con System.Xml.Serialization.XmlAttributeAttribute.
<complexType>: proporciona el nombre de la clase que corresponde al tipo complejo.
<element>: proporciona el nombre del campo de clase pública que representa ese elemento. Si el elemento <element> contiene una definición anónima de <complexType> , el nombre pasa a ser el nombre de la clase que corresponde al tipo complejo.
<simpleType>: proporciona el nombre de la clase que corresponde al tipo simple. .NET Framework solo permite que se deriven tipos simples a través de (a) la enumeración de tipos basados en cadenas y (b) la creación de listas que se utilizan como atributos.
Para cumplir con las convenciones de codificación no se intenta ningún cambio de mayúsculas y minúsculas. Por ejemplo, si el atributo de nombre de un elemento <complexType> tiene el valor testInfo
, la clase que sigue recibe el nombre testInfo, en lugar de TestInfo, con mayúsculas. Si un nombre se encuentra en conflicto con una palabra clave reservada, el nombre resultante lleva el prefijo con el símbolo @.
.NET Framework no tiene enlaces a los siguientes elementos del lenguaje de definición de esquemas XML que se utilizan para establecer la unicidad y la integridad de referencial: <key>, <keyref> y <unique>. En consecuencia, se omite el atributo name en estos elementos. Tampoco hay enlaces de tipos para el elemento <notation>, por lo que se omite el atributo name.
Puesto que Xsd.exe no admite directamente los elementos <group> ni <attributeGroup> (en su lugar, expande el contenido de cada referencia en la clase correspondiente a cada tipo complejo que contiene una referencia), se omite el nombre del elemento grupo o grupo de atributos.
Generar documentos XSD a partir de clases
Cuando Xsd.exe genera un documento XSD a partir de un conjunto de clases de un ensamblado, utiliza las construcciones de código descritas anteriormente para proporcionar valores destinados a los atributos name correspondientes.
Además, dado que las propiedades públicas, junto con los campos, se convierten en elementos <element> y <attribute>, los nombres de propiedad se convierten de forma predeterminada en los valores del atributo name.
Se puede proporcionar un nombre alternativo (valor de atributo nombre) a través de las siguientes propiedades de atributo:
System.Xml.Serialization.XmlAttributeAttribute.AttributeName
System.Xml.Serialization.XmlTypeAttribute.TypeName: cambia el nombre del tipo de datos XSD que corresponde al tipo de .NET Framework al que se ha aplicado el atributo.
System.Xml.Serialization.XmlArrayAttribute.ElementName: cambia el nombre del elemento XML primario de la matriz.
System.Xml.Serialization.XmlArrayItemAttribute.ElementName: cambia los nombres de los elementos secundarios secuenciales que corresponden a las entradas de la matriz.
Elementos contenedores posibles: <attribute>, <attributeGroup>, <complexType>, <element>, <group>, <key>, <keyref>, <notation>, <simpleType>, <unique>
Vea también
Referencia
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