XSD: ¿cómo puedo asegurar la existencia de un elemento particular con un atributo dado?

StackOverflow https://stackoverflow.com/questions/283616

  •  08-07-2019
  •  | 
  •  

Pregunta

Estoy intentando agregar una validación adicional al jdpl proceso -definición de archivos usando XSD.

Tenemos un par de reglas que queremos agregar; pero el que me está causando problemas es que debe existir un '' nodo '' elemento con su " nombre " atributo = " Problema " ;.

así que esto es válido:

<process-definition name='sample'>
    <node name="Problem">
    </node>
    <node name="Do Work">
    </node>
</process-definition>

y esto no es

<process-definition name='sample'>
    <node name="Do Work">
    </node>
</process-definition>

Entonces, para resumir, las reglas que necesito aplicar son

  • atributo de nodo que tiene el valor " Problema "
  • existencia de 1 nodo con nombre = " Problema "
  • permitiendo cualquier número de nodos con otros nombres

¿Alguna idea por ahí?

¿Fue útil?

Solución

Lo siento, eso no es posible con XSD.

Debido a razones de rendimiento, el esquema XML está diseñado para nunca mirar hacia adelante y nunca más allá del nodo actual. Eso significa que siempre debe definirse dónde está el validador en el árbol de esquema. Y eso hace que requisitos como este sean imposibles de definir con XSD.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top