2011-05-21 8 views
6

Cuál es la diferencia práctica entre estos dos:Diferencia de mezclado = "true" y xs: extensión de esquema XML

<xs:element name="A"> 
<xs:complexType mixed="true"> 
    <xs:attribute name="att" type="xs:boolean"/> 
</xs:complexType> 
</xs:element> 

<xs:element name="B"> 
<xs:complexType> 
    <xs:simpleContent> 
    <xs:extension base="xs:string"> 
    <xs:attribute name="att" type="xs:boolean"/> 
    </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 
</xs:element> 
+0

Consulte la respuesta de @Michael Kay aquí: http://stackoverflow.com/questions/12474018/what-is-the-meaning-of-xsmixed-without-elements/36043922#36043922 –

Respuesta

11

Los dos son diferentes. Su primer ejemplo usa mixed="true" que denota contenido mixto, es decir, datos de caracteres mezclados con elementos secundarios. Mientras que su segundo ejemplo restringe el contenido del elemento al tipo xs:string. Ambos indican la presencia de un atributo.

Con su ejemplo, ambos son prácticamente lo mismo. Sin embargo, si no planea tener contenido mixto, es decir, no planea agregar elementos secundarios, la segunda versión es mucho más clara.

+1

Incluso el mensaje de error es el mismo en VS2010: 'El elemento 'X' no puede contener el elemento hijo 'Y' porque el modelo de contenido del elemento principal es solo texto. –

Cuestiones relacionadas