Compatibilidad con enlaces del elemento Extension
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 elemento <extension> .
La herramienta Xsd.exe genera una clase base, correspondiente al valor del atributo base, solo para contenido complejo, no para contenido simple.
Explicación
El lenguaje de definición de esquemas XML permite la derivación de nuevos tipos de datos a partir de tipos base por medio de extensión y restricción. La extensión siempre se usa para derivar tipos complejos. La extensión puede estar basada en contenido simple o en contenido complejo, que se diferencian del modo que se indica a continuación:
Contenido simple: usa XPath
complexType/simpleContent/extension
. El tipo complejo derivado no contiene elementos secundarios, solo contenido simple (ya se trate de atributos, texto principal o ambos).Contenido complejo: usa XPath
complexType/complexContent/extension
. Tanto los tipos complejos base como derivados contienen elementos secundarios. También pueden contener atributos y texto principal.
Las extensiones de tipos de esquema XML siempre se expresan totalmente a través de definiciones de clase en .NET Framework. La forma en que Xsd.exe genera código fuente a partir de un documento de esquema XML depende de si la extensión está basada en contenido simple o complejo, tal como se indica a continuación:
Contenido simple: Xsd.exe crea una clase nueva con un campo público de un tipo correspondiente al tipo de datos base, que especifica el atributo base del elemento <extension>.
Contenido complejo: Xsd.exe crea una clase correspondiente al tipo de datos base, que especifica el atributo base del elemento <extension>, así como una clase para el tipo de datos derivado. La última clase hereda de la anterior, mediante una declaración de clase como la siguiente:
public class DerivedClass : BaseClass
.
Xsd.exe conservaría cualquier tipo de extensión en una conversión desde el esquema XML a las clases y, de ahí, a un nuevo documento de esquema XML.
Para obtener un ejemplo de extensión de contenido simple, vea el elemento <simpleContent>.
Atributos posibles | Compatibilidad de enlace |
---|---|
base |
El elemento <extension> requiere un atributo base cuyo valor sea el nombre calificado del tipo de datos base. Para la extensión de contenido simple, la herramienta Xsd.exe genera un campo público a partir del valor del atributo base. Para la extensión de contenido compleja, Xsd.exe genera una clase base a partir del valor base. Consulte el texto anterior. |
id |
La utilidad Xsd.exe omite el atributo id, que está pensado para proporcionar un identificador único. |
Posibles elementos primarios: <complexContent>, <simpleContent>
Posibles elementos secundarios: <all>, <annotation>, <anyAttribute>, <attribute>, <attributeGroup>, <choice>, <group>, <sequence>
Vea también
Referencia
XmlSchemaComplexContentExtension
XmlSchemaSimpleContentExtension