Cosa usi per la validazione contro lo schema XML?
-
03-07-2019 - |
Domanda
Quando voglio convalidare i miei documenti XML rispetto a uno schema nel mio Java lato server, utilizzo l'implementazione JRE Xerces integrata e javax.xml.validation.Schema. Funziona bene, ma quando la validazione fallisce, Xerces fornisce messaggi di errore molto vicini a quelli inutili, ad esempio:
cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'
Questi possono richiedere un'età per diagnosticare e rintracciare la parte specifica del documento XML che non riesce la convalida, e tutto a causa di un messaggio di errore scadente.
Quindi la mia domanda è: usi un mezzo alternativo per convalidare XML rispetto a Schema, che fornisce un output più utile in caso di errore di validazione?
Per favore, non che questo sia Java lato server, quindi per favore non dire " usa XML Spy " o simile.
Soluzione
Nel tuo gestore per la validazione, dovresti ricevere una SAXParseException con quel messaggio, così come numero di colonna e il numero di riga nel file XML. Non è così?
Altri suggerimenti
Utilizziamo Oracle XDK (XML Development Kit) che include xmlparserv2.jar con un parser di convalida e XSLT 2.0. Utilizza l'API JAXB, quindi dovresti solo aggiungerlo al tuo percorso di classe e modificare le tue importazioni. Genera errori che non sono perfetti, ma direi più facilmente comprensibili del tuo esempio.
xmlstarlet (xmlstar.sourceforge.net/) è un toolkit da riga di comando. potresti eseguirlo usando Runtime.exec () per un dato xml (purché l'xml sia in un file).
Utilizziamo Castor .
Castor è un framework di associazione dati Open Source per Java [tm]. È il percorso più breve tra oggetti Java, documenti XML e tabelle relazionali. Castor fornisce associazione da Java a XML, persistenza da Java a SQL e altro ancora.
Se riscontri problemi nell'interpretazione degli errori di Xerces e desideri qualcosa che ti aiuti a evidenziare dove nel tuo documento hai violato le regole, controlla alcuni degli strumenti di creazione XML come oXygen .
(fonte: xygenxml.com )
Dopo aver associato lo schema al documento XML dell'istanza, l'editor evidenzierà l'area offensiva del documento e ti fornirà una descrizione della violazione.
Inoltre, puoi utilizzare diversi motori per eseguire la convalida:
oXygen ha il supporto integrato per: Xerces, LIBXML, XSV, Saxon SA, MSXML4.0, MSXML .NET e SQC.