Class RDFXMLPrettyWriter
- java.lang.Object
-
- org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
-
- org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriter
-
- org.eclipse.rdf4j.rio.rdfxml.util.RDFXMLPrettyWriter
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,CharSink,Sink,RDFHandler,RDFWriter
public class RDFXMLPrettyWriter extends RDFXMLWriter implements Closeable, Flushable
An extension of RDFXMLWriter that outputs a more concise form of RDF/XML. The resulting output is semantically equivalent to the output of an RDFXMLWriter (it produces the same set of statements), but it is usually easier to read for humans.This is a quasi-streaming RDFWriter. Statements are cached as long as the striped syntax is followed (i.e. the subject of the next statement is the object of the previous statement) and written to the output when the stripe is broken.
The abbreviations used are typed node elements, empty property elements and striped syntax. Note that these abbreviations require that statements are written in the appropriate order.
Striped syntax means that when the object of a statement is the subject of the next statement we can nest the descriptions in each other.
Example:
<rdf:Seq> <rdf:li> <foaf:Person> <foaf:knows> <foaf:Person> <foaf:mbox rdf:resource="..."/> </foaf:Person> </foaf:knows> </foaf:Person> </rdf:li> </rdf:Seq>Typed node elements means that we write out type information in the short form of
<foaf:Person rdf:about="..."> ... </foaf:Person>instead of
<rdf:Description rdf:about="..."> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/> ... </rdf:Description>Empty property elements are of the form
<foaf:Person> <foaf:homepage rdf:resource="http://www.cs.vu.nl/˜marta"/> </foaf:Person>instead of
<foaf:Person> <foaf:homepage> <rdf:Description rdf:about="http://www.cs.vu.nl/˜marta"/> <foaf:homepage> </foaf:Person>- Author:
- Peter Mika (pmika@cs.vu.nl)
-
-
Field Summary
-
Fields inherited from class org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriter
baseIRI, defaultNamespace, entityQuote, headerWritten, lastWrittenSubject, quote, writer
-
Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
namespaceTable, statementConsumer
-
-
Constructor Summary
Constructors Constructor Description RDFXMLPrettyWriter(OutputStream out)Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.RDFXMLPrettyWriter(OutputStream out, ParsedIRI baseIRI)Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.RDFXMLPrettyWriter(Writer out)Creates a new RDFXMLPrintWriter that will write to the supplied Writer.RDFXMLPrettyWriter(Writer writer, ParsedIRI baseIRI)Creates a new RDFXMLPrintWriter that will write to the supplied Writer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidconsumeStatement(Statement st)Consume a statement.voidendRDF()Signals the end of the RDF data.voidflush()protected voidflushPendingStatements()Collection<RioSetting<?>>getSupportedSettings()protected voidwriteHeader()protected voidwriteIndents(int n)Writes n indents.protected voidwriteStartTag(String namespace, String localName)-
Methods inherited from class org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriter
getRDFFormat, getValidNodeId, getWriter, handleComment, handleNamespace, setNamespace, writeAttribute, writeAttribute, writeCharacterData, writeEndOfEmptyTag, writeEndOfStartTag, writeEndTag, writeIndent, writeNewLine, writeQuotedAttribute, writeStartOfStartTag
-
Methods inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
checkWritingStarted, getFileFormat, getWriterConfig, handleStatement, isWritingStarted, set, setWriterConfig, startRDF
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.io.Sink
acceptsFileFormat, getFileFormat
-
-
-
-
Constructor Detail
-
RDFXMLPrettyWriter
public RDFXMLPrettyWriter(OutputStream out)
Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.- Parameters:
out- The OutputStream to write the RDF/XML document to.
-
RDFXMLPrettyWriter
public RDFXMLPrettyWriter(OutputStream out, ParsedIRI baseIRI)
Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.- Parameters:
out- The OutputStream to write the RDF/XML document to.
-
RDFXMLPrettyWriter
public RDFXMLPrettyWriter(Writer out)
Creates a new RDFXMLPrintWriter that will write to the supplied Writer.- Parameters:
out- The Writer to write the RDF/XML document to.
-
-
Method Detail
-
endRDF
public void endRDF() throws RDFHandlerExceptionDescription copied from interface:RDFHandlerSignals the end of the RDF data. This method is called when all data has been reported.- Specified by:
endRDFin interfaceRDFHandler- Overrides:
endRDFin classRDFXMLWriter- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
writeHeader
protected void writeHeader() throws IOException- Overrides:
writeHeaderin classRDFXMLWriter- Throws:
IOException
-
flush
public void flush() throws IOException- Specified by:
flushin interfaceFlushable- Throws:
IOException
-
getSupportedSettings
public Collection<RioSetting<?>> getSupportedSettings()
- Specified by:
getSupportedSettingsin interfaceRDFWriter- Overrides:
getSupportedSettingsin classRDFXMLWriter- Returns:
- A collection of
RioSettings that are supported by this RDFWriter.
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
flushPendingStatements
protected void flushPendingStatements() throws IOException, RDFHandlerException- Overrides:
flushPendingStatementsin classRDFXMLWriter- Throws:
IOExceptionRDFHandlerException
-
consumeStatement
public void consumeStatement(Statement st) throws RDFHandlerException
Description copied from class:AbstractRDFWriterConsume a statement.Extending classes must override this method instead of overriding
AbstractRDFWriter.handleStatement(Statement)in order to benefit from automatic handling of RDF-star conversion or encoding.- Overrides:
consumeStatementin classRDFXMLWriter- Parameters:
st- the statement to consume.- Throws:
RDFHandlerException
-
writeStartTag
protected void writeStartTag(String namespace, String localName) throws IOException
- Throws:
IOException
-
writeIndents
protected void writeIndents(int n) throws IOExceptionWrites n indents.- Throws:
IOException
-
-