Sto usando l'opzione --schema xmllint per convalidare la mia XML che assomiglia a questoxsd: il tipo di elemento booleano accetta "true" ma non "True". Come posso farcelo accettare?
<XML>
<Active>True</Active>
</XML>
Nel mio file di schema, ho seguente riga che descrive elemento attivo.
<xsd:element name="Active" type="xsd:boolean" />
Quando eseguo xmllint, vengono visualizzati messaggi di errore che dice
/tmp/schema_validation.xml:73: elemento attivo: errore di validità schemi: Elemento 'attivo': 'True' non è un valore valido del tipo atomico 'xs: boolean'.
Quando cambio l'XML per
<Active>true</Active>
Poi il messaggio di errore scompare.
Quindi, sembra xsd: boolean significa che è tutto in minuscolo "true/false" ma non "True/False" in xmllint .. La mia domanda è, come posso fare xmllint per accettare "True" per xsd: boolean genere? O ci sono diversi strumenti che posso usare per convalidare questo XML? Cambiare l'XML o lo schema non è la mia opzione a questo punto.
Grazie!
Se la modifica del codice XML di origine o lo schema non è un'opzione, poi ho suggerirebbe di eseguire l'XML sorgente tramite una trasformazione che normalizza i valori booleani ai valori validi XSD corretti. –
Ho pensato di farlo, ma avevo paura di modificare i valori che sono semplicemente "Vero". Per eample, se un elemento chiamato "Description" contiene valore "True", allora non voglio che sia convertito in "true".Non penso che ci sia un modo per sapere quale elemento applicare la normalizzazione o meno. –
devi andare a monte: ferma la generazione di XML non valido all'origine. – Cheeso