Wie man Fehler - Zeilennummer während der Validierung einer XML-Datei gegen ein XML-schema

Ich versuche, validade ein XML gegen ein W3C XML-Schema.

Dem folgenden code macht den job, und berichten wenn der Fehler Auftritt. Aber ich bin nicht in der Lage zu Holen Sie sich die Zeilennummer des Fehlers. Es gibt immer -1.

Gibt es eine einfache Möglichkeit, um die Zeilennummer zu erhalten?

import java.io.File;

import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.w3c.dom.Document;
import org.xml.sax.SAXParseException;

    public class XMLValidation {

        public static void main(String[] args) {

            try {
                DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
                Document document = parser.parse(new File("myxml.xml"));

                SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
                Source schemaFile = new StreamSource(new File("myschema.xsd"));

                Schema schema = factory.newSchema(schemaFile);

                Validator validator = schema.newValidator();

                validator.validate(new DOMSource(document));

            } catch (SAXParseException e) {
                System.out.println(e.getLineNumber());
                e.printStackTrace();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

InformationsquelleAutor der Frage pablosaraiva | 2010-12-03

Schreibe einen Kommentar