26 package org.nexusformat.nxvalidate;
29 import java.io.IOException;
30 import java.util.ArrayList;
31 import java.util.Vector;
33 import javax.xml.parsers.DocumentBuilder;
34 import javax.xml.parsers.DocumentBuilderFactory;
35 import javax.xml.parsers.ParserConfigurationException;
37 import org.w3c.dom.Document;
38 import org.w3c.dom.Node;
39 import org.w3c.dom.NodeList;
40 import org.xml.sax.SAXException;
45 ArrayList<SVRLitem> errors;
46 private static String NXROOT =
"NXroot";
47 private static String SVRLROOT =
"svrl:schematron-output";
49 Report(
final File reduced,
final File reportFile)
50 throws ParserConfigurationException, SAXException, IOException {
53 Document redDoc = parse(reduced);
54 report =
new NXSnode(getNXroot(redDoc));
57 Document svrlDoc = parse(reportFile);
58 this.errors = this.report.addSVRL(getSVRLroot(svrlDoc));
61 public int numErrors() {
62 return this.errors.size();
65 public ArrayList<SVRLitem> getReport() {
69 public void printReport() {
70 int size = this.numErrors();
71 for (
int i = 0; i < size; i++) {
72 System.out.println(this.errors.get(i));
74 System.out.println(
"----------");
79 public NXSnode getTree() {
83 public void printTree() {
84 this.report.printTree();
87 static private Node getNXroot(
final Document doc) {
88 NodeList nodes = doc.getElementsByTagName(NXROOT);
89 int size = nodes.getLength();
94 "Failed to find one " + NXROOT +
" (found " + size +
")");
97 static private Node getSVRLroot(
final Document doc) {
98 NodeList nodes = doc.getElementsByTagName(SVRLROOT);
99 int size = nodes.getLength();
101 return nodes.item(0);
104 "Failed to find one " + SVRLROOT +
" (found " + size +
")");
107 static private Document parse(
final File file)
108 throws ParserConfigurationException, SAXException, IOException {
110 DocumentBuilder builder =
111 DocumentBuilderFactory.newInstance().newDocumentBuilder();
112 return builder.parse(file);