Salve, me ne intendo poco/discretamente sugli schemi XSD. Generalmente per scenari "semplici" sono in grado di comprendere un XSD esistente o di farne uno nuovo a mano.
Adesso però, per lavoro, ho bisogno di realizzare uno schema XSD per un tipo di validazione un po' particolare, in cui certi vincoli (es. un elemento obbligatorio o no) dipendono dal contenuto di un altro elemento nel documento.
Con un esempio sarà più chiaro:
XML
<elemento>
<contesto>A</contesto>
<nome>Andrea</nome>
.....molti altri tag......
</elemento>
È possibile con un file XSD "esprimere" la seguente logica di validazione:
- se il contenuto di <contesto> è "A", allora <nome> è
obbligatorio (minOccurs="1").
- se il contenuto di <contesto> è "B", allora <nome>
non è obbligatorio (minOccurs="0").
?
Note:
- i nomi dei tag e i valori descritti sono puramente di esempio.
- il tag <elemento> non è necessariamente la "radice" (nel mio caso reale sarà quasi sicuramente il primo e unico elemento figlio del tag radice).
Chiarisco anche il contesto. Il XSD servirebbe poi per validare il "body" di un messaggio SOAP in input gestito tramite la API JAX-WS in Java.
Grazie per qualunque suggerimento. Se qualcosa non è chiaro o richiede ulteriori indicazioni da parte mia, fatemelo sapere.