que tienen este archivo XML:xsd: único con atributos opcionales
<objects>
<object name="ID1" />
<object name="ID2" />
<object name="ID2" color="green" />
<object name="ID3" color="green" />
<objects>
me gustaría validar esto en contra de un esquema XSD, por lo que la combinación entre name
y color
son únicos en el documento.
El problema es que, si uso:
<xs:unique name="UniqueObjectNameColor">
<xs:selector xpath="./object" />
<xs:field xpath="@name" />
<xs:field xpath="@color" />
</xs:unique>
... la regla ignorará object
elementos sin el atributo opcional color
. Lo siguiente valida correctamente mientras que no debería.
<object name="ID2" />
<object name="ID2" />
¿Me puede decir cómo puedo especificar una regla que aplica única y name
color
combinaciones y, cuando el atributo color
no está presente en el elemento object
, comprueba el name
?
me gustaría saber lo mismo. La respuesta de micfra no acaba de cortarlo. –
Puede romper su esquema, pero ¿establece un valor predeterminado para la ayuda del atributo de color? p.ej. –
@MattyK que solucionó este problema por mí. ¡Muchas gracias! – RichardTowers