Hola, estoy luchando contra los Schemas de XML (XSchema) y estoy intentado que según un atributo se limiten una cosas u otras, es decir, si por ej. atributo=coche deba tener dentro <puertas>, y si es moto deba tener dentro <sidecar> (por poner un ejemplo tonto).
<nombre1 atributo="coche">
<puertas>5</puertas>
</nombre1>
<nombre1 atributo="moto">
<sidecar>Presente</sidecar>
</nombre1>
Y que si se cambiarán los atributos, es decir, si pusiera coche con sidecar lo detectara como incorrecto (no válido).
Ya sé que una opción es cambiar el XML, pero tal y es tal y como está definido (no lo he creado yo), así que me gustaría saber si se puede realizar de alguna forma (existe algún tipo de if para XSchema? o cómo se puede diferenciar según atributos?).
<xs:attribute name="atributo">
<xs:SimpleType>
<xs:restriction base="xs:String">
<xs:enumeration value="coche" />
<xs:enumeration value="moto" />
</xs:restriction>
</xs:SimpleType>
</xs:attribute>
Esto limitaría la posibilidad de un atributo a moto o coche, que es lo que tengo ahora, pero dependiendo de esa limitación no consigo determinar los hijos Sad
¿Alguna idea? (con DTD me valdría también, pero siendo menos expresivo no creo que consiga nada mejor...).
¡GRACIAS!