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.

È stato utile?

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 .

 alt text
(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.

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