XSD - come posso garantire l'esistenza di un particolare elemento con un determinato attributo?
-
08-07-2019 - |
Domanda
Sto cercando di aggiungere ulteriore convalida al processo jdpl -definizione dei file usando XSD.
Abbiamo un paio di regole che vogliamo aggiungere; ma quello che mi sta causando problemi è che deve esistere un "nodo" elemento con il suo " nome " attributo = " Problema " ;.
quindi questo è valido:
<process-definition name='sample'>
<node name="Problem">
</node>
<node name="Do Work">
</node>
</process-definition>
e questo non è
<process-definition name='sample'>
<node name="Do Work">
</node>
</process-definition>
Quindi, per riassumere, le regole che devo applicare sono
- attributo del nodo con il valore " Problema "
- esistenza di 1 nodo con nome = " Problema "
- consentendo qualsiasi numero di nodi con altri nomi
Qualche idea là fuori?
Soluzione
Spiacente, non è possibile con XSD.
Per motivi di prestazioni XML-Schema è progettato per non guardare mai oltre e non guardare mai oltre il nodo corrente. Ciò significa che deve essere sempre definito dove si trova il validatore nell'albero dello schema. E ciò rende impossibile definire requisiti come questo con XSD.