Esquema XML: todos, secuencia y grupos
Estoy escribiendo un esquema XML por primera vez y encontré algunas herramientas útiles para ayudarme a escribirlo.
Ahora estoy en una situación extraña. El esquema que escribí es válido para algunas herramientas y no para otras. Este esquema es una mezcla de "todos", "secuencia" y "grupo". Aquí está mi esquema XML:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:group name="test">
<xsd:all>
<xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e3" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e4" minOccurs="0" maxOccurs="1"/>
</xsd:all>
</xsd:group>
<xsd:element name="e0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="e1" maxOccurs="unbounded"/>
<xsd:group ref="test"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
¿Es este esquema correcto? Va bien coneste validador yeste también pero el complemento de herramientas XML para Notepad ++ dice "No se puede analizar el archivo de esquema".
P.S: Escribí este esquema porque quería tener un elemento "e0" con la posibilidad de tener una mezcla de e1, e2, e3 y e4. e2, e3 y e4 deberían aparecer 0 o 1 vez y e1 podría ocurrir un tiempo ilimitado. Por ejemplo, estos archivos XML deberían pasar:
<e0>
<e1/>
<e1/>
<e1/>
<e1/>
<e1/>
<e2/>
</e0>
<e0>
<e2/>
<e3/>
<e4/>
</e0>
<e0>
<e1/>
<e2/>
<e3/>
<e4/>
</e0>
¿Conoces alguna otra forma de hacer esto?
Gracias