Examples RDF/XML handling. JENA-1168, JENA-1494.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e9eb97fd Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e9eb97fd Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e9eb97fd Branch: refs/heads/master Commit: e9eb97fdfe7f9e3e738ff5fbac2f53ddee5c15ad Parents: 9237d24 Author: Andy Seaborne <[email protected]> Authored: Sat Feb 24 08:25:51 2018 +0000 Committer: Andy Seaborne <[email protected]> Committed: Sat Feb 24 08:25:51 2018 +0000 ---------------------------------------------------------------------- .../riot/ExRIOT_RDFXML_ReaderProperties.java | 71 +++++++++++++++++ .../riot/ExRIOT_RDFXML_WriteProperties.java | 81 ++++++++++++++++++++ 2 files changed, 152 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/e9eb97fd/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java ---------------------------------------------------------------------- diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java new file mode 100644 index 0000000..1ba3245 --- /dev/null +++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package arq.examples.riot; + +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; + +import org.apache.jena.atlas.lib.StrUtils; +import org.apache.jena.atlas.logging.LogCtl; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.riot.Lang; +import org.apache.jena.riot.RDFDataMgr; +import org.apache.jena.riot.RDFParser; +import org.apache.jena.riot.SysRIOT; +import org.apache.jena.sparql.util.Context; + +/** Set proeprties of the RDF/XML parser (ARP) */ +public class ExRIOT_RDFXML_ReaderProperties { + static { LogCtl.setCmdLogging(); } + + public static void main(String[] args) { + // Inline illustrative data. + String data = StrUtils.strjoinNL + ("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + ,"<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"" + ," xmlns:ex=\"http://examples.org/\">" + // This rdf:ID startswith a digit which normal causes a warning. + ," <ex:Type rdf:ID='012345'></ex:Type>" + ,"</rdf:RDF>" + ); + System.out.println(data); + System.out.println(); + // Properties to be set. + // This is a map propertyName->value + Map<String, Object> properties = new HashMap<>(); + // See class ARPErrorNumbers for the possible ARP properies. + properties.put("WARN_BAD_NAME", "EM_IGNORE"); + + // Put a properties object into the Context. + Context cxt = new Context(); + cxt.set(SysRIOT.sysRdfReaderProperties, properties); + + Model model = ModelFactory.createDefaultModel(); + // Build and run a parser + RDFParser.create() + .lang(Lang.RDFXML) + .source(new StringReader(data)) + .context(cxt) + .parse(model); + System.out.println("== Parsed data output in Turtle"); + RDFDataMgr.write(System.out, model, Lang.TURTLE); + } +} http://git-wip-us.apache.org/repos/asf/jena/blob/e9eb97fd/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java ---------------------------------------------------------------------- diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java new file mode 100644 index 0000000..5e6506a --- /dev/null +++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_RDFXML_WriteProperties.java @@ -0,0 +1,81 @@ +/* + * or more contributor license agreements. See the NOTICE fil + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package arq.examples.riot; + +import java.io.StringReader; +import java.util.HashMap ; +import java.util.Map ; + +import org.apache.jena.atlas.lib.StrUtils; +import org.apache.jena.atlas.logging.LogCtl; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.riot.*; +import org.apache.jena.sparql.util.Context; + +/** Example of setting properties for RDF/XML writer via RIOT */ +public class ExRIOT_RDFXML_WriteProperties { + static { LogCtl.setCmdLogging(); } + + public static void main(String... args) { + // Data. + String x = StrUtils.strjoinNL + ("PREFIX : <http://example.org/>" + ,":s :p :o ." + ); + Model model = ModelFactory.createDefaultModel(); + RDFDataMgr.read(model, new StringReader(x), null, Lang.TURTLE); + + // Write, default settings. + writePlain(model); + System.out.println(); + + // Write, with properties + writeProperties(model); + } + + /** Write in plain, not pretty ("abbrev") format. */ + private static void writePlain(Model model) { + System.out.println("**** RDFXML_PLAIN"); + RDFDataMgr.write(System.out, model, RDFFormat.RDFXML_PLAIN); + System.out.println(); + } + + /** Write with properties */ + public static void writeProperties(Model model) { + System.out.println("**** RDFXML_PLAIN+properties"); + System.out.println("**** Adds XML declaration"); + + // Properties to be set. + // See https://jena.apache.org/documentation/io/rdfxml_howto.html#advanced-rdfxml-output + // for details of properties. + Map<String, Object> properties = new HashMap<>() ; + properties.put("showXmlDeclaration", "true"); + + // Put a properties object into the Context. + Context cxt = new Context(); + cxt.set(SysRIOT.sysRdfWriterProperties, properties); + + RDFWriter.create() + .base("http://example.org/") + .format(RDFFormat.RDFXML_ABBREV) + .context(cxt) + .source(model) + .output(System.out); + } +}
