Esquema XML para elementos con el mismo nombre pero con una subestructura diferente según el contexto
Intento definir un esquema para los documentos XML que recibo.
Los documentos parecen:
<root>
<items>
<group name="G-1">
<item name="I-1"/>
<item name="I-2"/>
<item name="I-3"/>
<item name="I-4"/>
</group>
</items>
<data>
<group name="G-1" place="here">
<customer name="C-1">
<item name="I-1" count="3"/>
<item name="I-2" count="4"/>
</customer>
<customer name="C-2">
<item name="I-3" count="7"/>
</customer>
</group>
</data>
</root>
Probé XmlSpy y xsd.exe desde .NET 2.0. Ambos crearon definiciones de esquema que permiten a continuación<group>
cualquier numero de<item>
y<customer>
elementos. Pero lo que busco debería restringir<group>
abajo<items>
a<item>
elementos, y<group>
abajo<data>
a<customer>
elementos.
¿Es esto algo que el esquema XML no es capaz en absoluto?