Compatibilidad con enlaces del elemento AnyAttribute
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 parcial con enlaces para el elemento <anyAttribute>.
Al generar el código fuente de un documento de esquema XML, Xsd.exe traduce el elemento <anyAttribute> en un campo de tipo XmlAttribute, con un atributo XmlAnyAttributeAttribute.
Explicación
El comodín <anyAttribute> permite que aparezca cualquier atributo (de cualquier nombre o tipo simple) en un elemento determinado de un documento XML de instancia, con algunas restricciones.
Al generar el código fuente de un documento de esquema XML, Xsd.exe traduce el elemento <anyAttribute> en un campo de tipo XmlAttribute, con un atributo XmlAnyAttributeAttribute. Este atributo permite que una clase represente atributos XML arbitrarios sin enlazarlos a tipos no XML identificados por otros campos o propiedades posibles de la clase.
Al generar un documento de esquema XML a partir de un conjunto de clases en un ensamblado, Xsd.exe realiza la conversión inversa: se convierte un campo o una propiedad de tipo System.Xml.XmlAttribute con un atributo XmlAnyAttributeAttribute en un elemento <anyAttribute>.
Atributos namespace y processContents
Durante la generación de clases o definiciones de esquema XML, se omiten los atributos namespace y processContents. Esto significa que, independientemente de los valores de esos atributos en una definición de esquema XML original, cuando Xsd.exe genera clases a partir de esa definición y después genera otro esquema XML a partir de esas clases, el elemento <anyAttribute> del esquema XML deja de tener esos atributos. Por consiguiente, el último esquema vuelve a los valores predeterminados siguientes:
namespace="##any"
: el atributo namespace especifica los espacios de nombres en los que se debe definir el atributo. Un valor##any
permite cualquier espacio de nombres.processContents="strict"
: al validar la conformidad de un documento XML de instancia con el esquema XML especificado, asegúrese de que todos los tipos de elementos se validan según los espacios de nombres especificados. Si no se reconoce un tipo de elemento, se genera un error de validación.
Igualmente, durante la deserialización de documentos XML en objetos, se omiten los atributos namespace y processContents. En cambio, la clase XmlSerializer se comporta como si los dos atributos se establecieran en los valores siguientes:
namespace="##any"
: éste es el valor predeterminado.processContents="lax"
: cuando se disponga a validar la conformidad de un documento XML de instancia con el esquema XML correspondiente especificado, valide el atributo únicamente si se puede obtener su espacio de nombres; si no es así, asegúrese de que un atributo no reconocido tiene un formato XML correcto.
Nota: |
---|
Aunque en tiempo de ejecución .NET Framework asume processContents="lax" , durante la implementación genera definiciones de esquema XML en las que, de forma predeterminada, se define implícitamente processContents="strict" .
|
Xsd.exe y la clase XmlSerializer proporcionan los mismos enlaces para los atributos namespace y processContents cuando aparecen en el elemento <any>.
Atributos posibles | Compatibilidad de enlace |
---|---|
id |
La utilidad Xsd.exe omite el atributo id, que está pensado para proporcionar un identificador único. |
namespace |
Consulte la sección Atributos namespace y processContents en este mismo tema. |
processContents |
Consulte la sección Atributos namespace y processContents en este mismo tema. |
Posibles elementos primarios: <attributeGroup>, <complexType>, <extension>, <restriction>
Posibles elementos secundarios: <annotation>