4 package de.uni_hamburg.corpora.validation;
12 import java.io.IOException;
13 import java.io.UnsupportedEncodingException;
14 import java.net.MalformedURLException;
15 import java.net.URISyntaxException;
17 import java.util.Collection;
18 import javax.xml.
transform.TransformerConfigurationException;
19 import javax.xml.transform.TransformerException;
20 import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
21 import org.jdom.JDOMException;
22 import org.xml.sax.SAXException;
23 import javax.xml.parsers.ParserConfigurationException;
24 import javax.xml.xpath.XPathExpressionException;
32 String pathToXSL =
"";
33 String outputFilename =
"";
35 boolean overwritefiles =
false;
46 public Report function(
CorpusData cd, Boolean fix)
throws JDOMException, IOException, URISyntaxException, TransformerConfigurationException, TransformerException, ParserConfigurationException, UnsupportedEncodingException, SAXException, XPathExpressionException {
49 String corpusdata = cd.toUnformattedString();
55 report.
addFix(
function, cd,
56 "XSL Transformation was successful");
59 result = pp.
indent(result,
"event");
62 cd.updateUnformattedString(result);
63 cio.
write(cd, cd.getURL());
65 cio.
write(result, urlToOutput);
69 "XSL Transformation cannot be checked, only fixed (use -f)");
78 Class cl = Class.forName(
"de.uni_hamburg.corpora.BasicTranscriptionData");
82 Class cl2 = Class.forName(
"de.uni_hamburg.corpora.UnspecifiedXMLData");
86 Class cl3 = Class.forName(
"de.uni_hamburg.corpora.ComaData");
89 }
catch (ClassNotFoundException ex) {
100 urlToOutput =
new URL(cd.getParentURL() + s);
104 if (s.equalsIgnoreCase(
"true") || s.equalsIgnoreCase(
"wahr") || s.equalsIgnoreCase(
"ja")) {
105 overwritefiles =
true;
106 }
else if (s.equalsIgnoreCase(
"false") || s.equalsIgnoreCase(
"falsch") || s.equalsIgnoreCase(
"nein")) {
107 overwritefiles =
false;
109 report.
addCritical(
function, cd,
"Parameter coma not recognized: " + escapeHtml4(s));
114 if (s.equalsIgnoreCase(
"true") || s.equalsIgnoreCase(
"wahr") || s.equalsIgnoreCase(
"ja")) {
116 }
else if (s.equalsIgnoreCase(
"false") || s.equalsIgnoreCase(
"falsch") || s.equalsIgnoreCase(
"nein")) {
119 report.
addCritical(
function, cd,
"Parameter coma not recognized: " + escapeHtml4(s));
124 if (s.equalsIgnoreCase(
"true") || s.equalsIgnoreCase(
"wahr") || s.equalsIgnoreCase(
"ja")) {
126 }
else if (s.equalsIgnoreCase(
"false") || s.equalsIgnoreCase(
"falsch") || s.equalsIgnoreCase(
"nein")) {
129 report.
addCritical(
function, cd,
"Parameter coma not recognized: " + escapeHtml4(s));
134 if (s.equalsIgnoreCase(
"true") || s.equalsIgnoreCase(
"wahr") || s.equalsIgnoreCase(
"ja")) {
136 }
else if (s.equalsIgnoreCase(
"false") || s.equalsIgnoreCase(
"falsch") || s.equalsIgnoreCase(
"nein")) {
139 report.
addCritical(
function, cd,
"Parameter coma not recognized: " + escapeHtml4(s));
149 String description =
"This class runs an xsl transformation on files. ";
154 public Report function(
Corpus c, Boolean fix)
throws SAXException, IOException, ParserConfigurationException, URISyntaxException, JDOMException, TransformerException, TransformerConfigurationException, UnsupportedEncodingException, XPathExpressionException {
157 for (
CorpusData cdata : c.getBasicTranscriptionData()) {
158 stats.
merge(
function(cdata, fix));
162 for (
CorpusData scdata : c.getSegmentedTranscriptionData()) {
163 stats.
merge(
function(scdata, fix));
167 cd = c.getComaData();
168 stats =
function(cd, fix);
String indent(String xml, String suppressedElements)
String readExternalResourceAsString(String path2resource)
void addCritical(String description)
void addException(Throwable e, String description)
void write(CorpusData cd, URL url)
void addFix(String statId, CorpusData cd, String description)