📄 sax2rdftest.java
字号:
"wg/rdfms-rdf-names-use/test-010.rdf",
"wg/rdfms-rdf-names-use/test-011.rdf",
"wg/rdfms-rdf-names-use/test-012.rdf",
"wg/rdfms-rdf-names-use/test-013.rdf",
"wg/rdfms-rdf-names-use/test-014.rdf",
"wg/rdfms-rdf-names-use/test-015.rdf",
"wg/rdfms-rdf-names-use/test-016.rdf",
"wg/rdfms-rdf-names-use/test-017.rdf",
"wg/rdfms-rdf-names-use/test-018.rdf",
"wg/rdfms-rdf-names-use/test-019.rdf",
"wg/rdfms-rdf-names-use/test-020.rdf",
"wg/rdfms-rdf-names-use/test-021.rdf",
"wg/rdfms-rdf-names-use/test-022.rdf",
"wg/rdfms-rdf-names-use/test-023.rdf",
"wg/rdfms-rdf-names-use/test-024.rdf",
"wg/rdfms-rdf-names-use/test-025.rdf",
"wg/rdfms-rdf-names-use/test-026.rdf",
"wg/rdfms-rdf-names-use/test-027.rdf",
"wg/rdfms-rdf-names-use/test-028.rdf",
"wg/rdfms-rdf-names-use/test-029.rdf",
"wg/rdfms-rdf-names-use/test-030.rdf",
"wg/rdfms-rdf-names-use/test-031.rdf",
"wg/rdfms-rdf-names-use/test-032.rdf",
"wg/rdfms-rdf-names-use/test-033.rdf",
"wg/rdfms-rdf-names-use/test-034.rdf",
"wg/rdfms-rdf-names-use/test-035.rdf",
"wg/rdfms-rdf-names-use/test-036.rdf",
"wg/rdfms-rdf-names-use/test-037.rdf",
"wg/rdfms-rdf-names-use/warn-001.rdf",
"wg/rdfms-rdf-names-use/warn-002.rdf",
"wg/rdfms-rdf-names-use/warn-003.rdf",
"wg/rdfms-reification-required/test001.rdf",
"wg/rdfms-seq-representation/test001.rdf",
"wg/rdfms-syntax-incomplete/error001.rdf",
"wg/rdfms-syntax-incomplete/error002.rdf",
"wg/rdfms-syntax-incomplete/error003.rdf",
"wg/rdfms-syntax-incomplete/error004.rdf",
"wg/rdfms-syntax-incomplete/error005.rdf",
"wg/rdfms-syntax-incomplete/error006.rdf",
"wg/rdfms-syntax-incomplete/test001.rdf",
"wg/rdfms-syntax-incomplete/test002.rdf",
"wg/rdfms-syntax-incomplete/test003.rdf",
"wg/rdfms-syntax-incomplete/test004.rdf",
"wg/rdfms-uri-substructure/test001.rdf",
"wg/rdfms-xml-literal-namespaces/test001.rdf",
"wg/rdfms-xml-literal-namespaces/test002.rdf",
"wg/rdfms-xmllang/test001.rdf", "wg/rdfms-xmllang/test002.rdf",
"wg/rdfms-xmllang/test003.rdf", "wg/rdfms-xmllang/test004.rdf",
"wg/rdfms-xmllang/test005.rdf", "wg/rdfms-xmllang/test006.rdf",
"wg/rdfs-container-membership-superProperty/not1C.rdf",
"wg/rdfs-container-membership-superProperty/not1P.rdf",
"wg/rdfs-domain-and-range/nonconclusions005.rdf",
"wg/rdfs-domain-and-range/nonconclusions006.rdf",
"wg/rdfs-domain-and-range/premises005.rdf",
"wg/rdfs-domain-and-range/premises006.rdf",
"wg/rdfs-domain-and-range/test001.rdf",
"wg/rdfs-domain-and-range/test002.rdf",
"wg/rdfs-domain-and-range/test003.rdf",
"wg/rdfs-domain-and-range/test004.rdf",
"wg/rdfs-no-cycles-in-subClassOf/test001.rdf",
"wg/rdfs-no-cycles-in-subPropertyOf/test001.rdf",
"wg/Restriction/conclusions006.rdf",
"wg/Restriction/consistent003.rdf",
"wg/Restriction/consistent004.rdf",
"wg/Restriction/inconsistent001.rdf",
"wg/Restriction/inconsistent002.rdf",
"wg/Restriction/Manifest001.rdf", "wg/Restriction/Manifest002.rdf",
"wg/Restriction/Manifest003.rdf", "wg/Restriction/Manifest004.rdf",
"wg/Restriction/Manifest005.rdf", "wg/Restriction/Manifest006.rdf",
"wg/Restriction/nonconclusions005.rdf",
"wg/Restriction/premises005.rdf", "wg/Restriction/premises006.rdf",
"wg/sameAs/conclusions001.rdf", "wg/sameAs/Manifest001.rdf",
"wg/sameAs/premises001.rdf",
"wg/someValuesFrom/conclusions001.rdf",
"wg/someValuesFrom/conclusions003.rdf",
"wg/someValuesFrom/Manifest001.rdf",
"wg/someValuesFrom/Manifest002.rdf",
"wg/someValuesFrom/Manifest003.rdf",
"wg/someValuesFrom/nonconclusions002.rdf",
"wg/someValuesFrom/premises001.rdf",
"wg/someValuesFrom/premises002.rdf",
"wg/someValuesFrom/premises003.rdf",
"wg/SymmetricProperty/conclusions001.rdf",
"wg/SymmetricProperty/conclusions002.rdf",
"wg/SymmetricProperty/conclusions003.rdf",
"wg/SymmetricProperty/Manifest001.rdf",
"wg/SymmetricProperty/Manifest002.rdf",
"wg/SymmetricProperty/Manifest003.rdf",
"wg/SymmetricProperty/premises001.rdf",
"wg/SymmetricProperty/premises002.rdf",
"wg/SymmetricProperty/premises003.rdf", "wg/testOntology.rdf",
"wg/Thing/consistent004.rdf", "wg/Thing/inconsistent003.rdf",
"wg/Thing/inconsistent005.rdf", "wg/Thing/Manifest003.rdf",
"wg/Thing/Manifest004.rdf", "wg/Thing/Manifest005.rdf",
"wg/TransitiveProperty/conclusions001.rdf",
"wg/TransitiveProperty/conclusions002.rdf",
"wg/TransitiveProperty/Manifest001.rdf",
"wg/TransitiveProperty/Manifest002.rdf",
"wg/TransitiveProperty/premises001.rdf",
"wg/TransitiveProperty/premises002.rdf",
"wg/unionOf/conclusions001.rdf", "wg/unionOf/conclusions002.rdf",
"wg/unionOf/conclusions003.rdf", "wg/unionOf/conclusions004.rdf",
"wg/unionOf/Manifest001.rdf", "wg/unionOf/Manifest002.rdf",
"wg/unionOf/Manifest003.rdf", "wg/unionOf/Manifest004.rdf",
"wg/unionOf/premises001.rdf", "wg/unionOf/premises002.rdf",
"wg/unionOf/premises003.rdf", "wg/unionOf/premises004.rdf",
"wg/unrecognised-xml-attributes/test001.rdf",
"wg/unrecognised-xml-attributes/test002.rdf",
"arp/dom/domtest.rdf",
//"wg/xmlbase/error001.rdf", "wg/xmlbase/test001.rdf",
"wg/xmlbase/test002.rdf", "wg/xmlbase/test003.rdf",
"wg/xmlbase/test004.rdf", "wg/xmlbase/test005.rdf",
"wg/xmlbase/test006.rdf", "wg/xmlbase/test007.rdf",
"wg/xmlbase/test008.rdf", "wg/xmlbase/test009.rdf",
"wg/xmlbase/test010.rdf", "wg/xmlbase/test011.rdf",
"wg/xmlbase/test012.rdf", "wg/xmlbase/test013.rdf",
"wg/xmlbase/test014.rdf", "wg/xmlbase/test015.rdf",
"wg/xmlbase/test016.rdf",
};
/**
* @author Jeremy J. Carroll
*
*/
static class RDFEHArray implements RDFErrorHandler {
Vector v = new Vector();
/*
* (non-Javadoc)
*
* @see com.hp.hpl.jena.rdf.model.RDFErrorHandler#warning(java.lang.Exception)
*/
public void warning(Exception e) {
s("W", e);
}
/*
* (non-Javadoc)
*
* @see com.hp.hpl.jena.rdf.model.RDFErrorHandler#error(java.lang.Exception)
*/
public void error(Exception e) {
s("E", e);
}
/*
* (non-Javadoc)
*
* @see com.hp.hpl.jena.rdf.model.RDFErrorHandler#fatalError(java.lang.Exception)
*/
public void fatalError(Exception e) {
s("F", e);
}
private void s(String s, Exception e) {
String msg = s + e.getMessage();
if (!v.contains(msg))
v.add(msg);
}
}
static public TestSuite suite() {
TestSuite s = new TestSuite("SAX2RDF");
// s.addTestSuite(PushMePullYouTest.class);
s.addTestSuite(SAX2RDFMoreTests.class);
if (is1_4_1){
logger.warn("Java version 1.4.1: DOM tests suppressed, believed not to work." );
logger.warn("See file:doc/ARP/sax.html#dom for more details." );
logger.warn("This only affects RDF parsing of DOM trees, new in Jena 2.2." );
}
//for (int j=0; j<20; j++)
for (int i = 0; i < all.length; i += 25) {
// String nm = all[i];
//if (all[i].indexOf("premises663")==-1)
// continue;
if (all[i].startsWith("wg/")) {
addTests(s, "wg/", ARPTests.wgTestDir.toString(),
all[i].substring(3));
} else if (all[i].startsWith("arp/")) {
addTests(s,"arp/", ARPTests.arpTestDir
.toString(), all[i].substring(4));
} else {
addTests(s,"", "http://example.org/", all[i]);
}
}
// s.addTest(new
// SAX2RDFTest("wg/",ARPTests.wgTestDir.toString(),"Manifest.rdf"));
return s;
}
static private void addTests(TestSuite s, String dir, String base, String file){
TestCase tc = new SAX2RDFTest(dir,base,file);
tc.setName("SAX "+tc.getName());
s.addTest(tc);
tc = new DOM2RDFTest(dir,base,file);
tc.setName("DOM "+tc.getName());
if (!is1_4_1)
s.addTest(tc);
}
//final private String dir;
final String base;
final private String file;
SAX2RDFTest(String dir, String base0, String file) {
super(file);
//this.dir = dir;
this.base = base0 + file;
this.file = "testing/" + dir + file;
//System.err.println(base+" + "+this.file);
}
public void runTest() throws Exception {
//System.err.println(base+" + "+this.file);
Model m = ModelFactory.createDefaultModel();
Model m2 = ModelFactory.createDefaultModel();
InputStream in = new FileInputStream(file);
RDFEHArray eh = new RDFEHArray();
RDFReader w = m.getReader();
w.setErrorHandler(eh);
w.read(m, in, base);
in.close();
in = new FileInputStream(file);
RDFEHArray eh2 = new RDFEHArray();
/*
* w = m.getReader(); w.setErrorHandler(eh2); w.read(m2,in,base);
* in.close();
*/
loadXMLModel(m2, in, eh2);
in.close();
/*
* System.out.println("Normal:"); m.write(System.out,"N-TRIPLE");
*
* System.out.println("New:"); m2.write(System.out,"N-TRIPLE");
*/
if (eh.v.size() == 0)
assertTrue("Not isomorphic", m.isIsomorphicWith(m2));
if (eh.v.size() != eh2.v.size()) {
for (int i = 0; i < eh.v.size(); i++)
System.err.println(eh.v.get(i));
System.err.println("---");
for (int i = 0; i < eh2.v.size(); i++)
System.err.println(eh2.v.get(i));
}
assertEquals("Different number of errors", eh.v.size(), eh2.v.size());
Object a[] = eh.v.toArray();
Object a2[] = eh2.v.toArray();
Arrays.sort(a);
Arrays.sort(a2);
for (int i = 0; i < eh.v.size(); i++) {
assertEquals("Error " + i + " different.", a[i], a2[i]);
}
}
void loadXMLModel(Model m2, InputStream in, RDFEHArray eh2) throws SAXException, IOException {
XMLReader saxParser = new SAXParser();
SAX2Model handler = SAX2Model.create(base, m2);
SAX2RDF.installHandlers(saxParser, handler);
handler.setErrorHandler(eh2);
InputSource ins = new InputSource(in);
ins.setSystemId(base);
try {
try {
saxParser.parse(ins);
} finally {
handler.close();
}
} catch (SAXParseException e) {
// already reported, leave it be.
}
}
}
/*
* (c) Copyright 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. 2. Redistributions in
* binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution. 3. The name of the author may not
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -