Compatibilidad con enlaces del elemento Appinfo
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 no proporciona compatibilidad de enlace para el elemento <appinfo>.
Cuando se genera código fuente a partir de un documento de esquema XML, Xsd.exe omite el elemento <appinfo> y su contenido.
Explicación
Cuando se genera código fuente a partir de un documento de esquema XML, Xsd.exe omite el elemento <appinfo> y su contenido. Lo mismo se aplica al elemento primario del elemento <appinfo>, <annotation>.
La correspondencia que existe entre las dos entidades que se muestran a continuación constituye una excepción:
Un atributo de tipo XmlNamespaceDeclarationsAttribute se aplicó a un campo o propiedad de tipo XmlSerializerNamespaces.
Elemento XML específico de .NET Framework denominado <keepNamespaceDeclarations> y contenido en el elemento <appinfo>.
Un objeto XmlSerializerNamespaces se usa para almacenar un conjunto de asignaciones entre prefijos y los espacios de nombres que representan. El texto del elemento annotation/appinfo/keepNamespaceDeclarations
corresponde al nombre de la propiedad o del campo XmlSerializerNamespaces. Esta traducción se realiza en ambos sentidos (de archivo XSD a código y viceversa), de manera que puedan controlarse los prefijos de espacios de nombres.
Ejemplo
Clase de C# de entrada:
public class MyClass {
[XmlAttribute]
public string name;
public string xpath;
[XmlNamespaceDeclarationsAttribute]
public XmlSerializerNamespaces xmlns;
}
El documento del esquema XML que se ha generado a partir de un ensamblado compilado con el anterior código fuente C#:
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyClass" nillable="true" type="MyClass" />
<xs:complexType name="MyClass">
<xs:annotation>
<xs:appinfo>
<keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="xpath" type="xs:string" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:schema>
La clase de C# generada a partir del documento de esquema XML anterior es, en la práctica, la misma que la clase de C# original a partir de la cual se ha generado el esquema XML.
Atributos posibles | Compatibilidad de enlace |
---|---|
de origen |
Como .NET Framework no enlaza el elemento <appinfo>, tampoco enlaza el atributo source de dicho elemento. |
Posibles elementos primarios: <annotation>
Posibles elementos secundarios: unlimited