XSD - come posso garantire l'esistenza di un particolare elemento con un determinato attributo?

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

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top