private static URL resolveURL(String urlString) throws MalformedURLException { if (urlString.startsWith(W3C_TESTS_DIR)) { // resolve to local copy urlString = LOCAL_TESTS_DIR + "w3c-approved/" + urlString.substring(W3C_TESTS_DIR.length()); } if (urlString.startsWith("/")) { return RDFXMLParserTestCase.class.getResource(urlString); } else { return url(urlString); } }
URL w3cManifest = resolveURL(W3C_MANIFEST_FILE); con.add(w3cManifest, base(W3C_MANIFEST_FILE), RDFFormat.RDFXML); URL localManifest = resolveURL(OPENRDF_MANIFEST_FILE); con.add(localManifest, base(localManifest.toString()), RDFFormat.RDFXML);
RDFParser rdfxmlParser = createRDFParser(); rdfxmlParser.setValueFactory(new CanonXMLValueFactory()); rdfxmlParser.getParserConfig().addNonFatalError(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES);
@Override protected void runTest() { try { // Try parsing the input; this should result in an error being // reported. RDFParser rdfxmlParser = createRDFParser(); rdfxmlParser.getParserConfig().set(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES, true); rdfxmlParser.getParserConfig().set(BasicParserSettings.VERIFY_DATATYPE_VALUES, true); rdfxmlParser.getParserConfig().set(BasicParserSettings.NORMALIZE_DATATYPE_VALUES, true); rdfxmlParser.setRDFHandler(new StatementCollector()); InputStream in = resolveURL(inputURL).openStream(); rdfxmlParser.parse(in, base(inputURL)); in.close(); fail("Parser parses erroneous data without reporting errors"); } catch (RDFParseException e) { // This is expected as the input file is incorrect RDF } catch (Exception e) { fail("Error: " + e.getMessage()); } }