2011-03-22 11 views

Respuesta

27

This post lo explica muy bien. Cito:

xsd: anyType es un tipo, como xsd: número entero (aunque xsd: anyType es especial, ya que puede actuar como un simple o tipo complejo, y se coloca esencialmente sin restricciones a el árbol que valida - piénselo de forma vaga como el análogo del lenguaje de esquema de java.lang.Object).

Un uso de la muestra sería:

<xsd:element name="e" type="xsd:anyType"/> 

Esto significaría que los elementos llamado <e> puede tener cualquier contenido, cualquier atributos, etc.

xs: any es un comodín , utilizable como un término en un modelo de contenido. Por ejemplo:

<xsd:complexType name="T"> 
    <xsd:sequence> 
    <xsd:element ref="A"/> 
    <xsd:any /> 
    <xsd:element ref="C"/> 
    </xsd:sequence> 
</xsd:complexType> 

elementos de tipo T debe tener contenido <A/><???/><C/>, donde <???> puede ser cualquier elemento nombrado. Ahora, si nos fijamos muy cerca hay una aproximación a la definición de xsd: anyType dado como referencia en la Recomendación , y utiliza un xsd: cualquier comodín como los medios para decir que que permite a cualquier elemento.

También eche un vistazo a XML Schema.

+1

Así ** ** anyType es más restrictivo que cualquier ** **? En el sentido de que en el primer ejemplo debo tener el elemento con cualquier contenido, mientras que en el segundo caso puedo tener cualquier elemento (es decir, no restringido al nombre de etiqueta )? ¿Es asi? ** anyType ** impone una restricción adicional sobre el nombre del elemento? – user989812323

+0

@ user989812323 sí, tienes razón. Con 'any' puede tener cualquier elemento que desee. – dogbane

+0

Nota: xsd: anyType es padre de todos los tipos simples o complejos, por lo que es el tipo DEFAULT. Entonces es igual a supernova

25

El puesto de la lista de correo vinculada en la respuesta de las adelfas no era claro para mí hasta que yo creé el siguiente ejemplo:

Con esquema anyType:

<xsd:complexType name="Outer"> 
    <xsd:element name="e" type="xsd:anyType" /> 
</xsd:complexType> 

que permite a este formato:

<Outer> 
    <e> // must be called "e" 
     // but anything can go inside 
    </e> 
</Outer> 

Y con cualquier esquema:

<xsd:complexType name="Outer"> 
    <xsd:any /> 
</xsd:complexType> 

que permite a este formato:

<Outer> 
    //anything can go inside 
</Outer> 

Así anyType es un tipo de registro y es un elemento