Pergunta

Eu tenho a seguinte sequência XML

<property name="a"  value="x" />
<property name="b"  value="xx" />

Eu quero limitar "a" para uma lista de valores, como [x, y, z] e "b" Para outra lista como [xx, yy, zz

É possível fazer isso usando o XSD e se é como?

Se isso não for possível, como você recomenda alterar o formato XML para prepará -lo para a validação do XSD? (Eu tenho mais de dois property pares de nome/valor)

Foi útil?

Solução

O XSD realiza o que você deseja (validação condicional) usando o ninho.

Portanto, embora você não possa usar o XSD para tornar os valores de um atributo condicional aos valores de outro (como Fyodor Soikin diz em sua resposta), você pode usar o XSD para tornar os valores de um atributo condicional ao próprio elemento:

<propertyNameA value="x"/>
<propertyNameB value="xx"/>

Nesse caso, cada propriedade é seu próprio elemento, e cada atributo "valor" tem sua própria enumeração.

Ele oferece o benefício adicional de poder restringir quantos de cada propriedade nomeada você pode ter, mas a desvantagem é que você precisa gerenciar mais elementos.

Dependendo das especificidades da sua situação, usar o XSD dessa maneira pode ser a melhor opção, ou pode ser melhor implementar outro sistema que possa fazer a validação de nome/valor necessária.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top