Package org.eclipse.rdf4j.rio.rdfxml
Class RDFXMLWriter
- java.lang.Object
-
- org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
-
- org.eclipse.rdf4j.rio.rdfxml.RDFXMLWriter
-
- All Implemented Interfaces:
CharSink
,Sink
,RDFHandler
,RDFWriter
- Direct Known Subclasses:
RDFXMLPrettyWriter
public class RDFXMLWriter extends AbstractRDFWriter implements CharSink
An implementation of the RDFWriter interface that writes RDF documents in XML-serialized RDF format.
-
-
Field Summary
Fields Modifier and Type Field Description protected ParsedIRI
baseIRI
protected String
defaultNamespace
protected boolean
entityQuote
protected boolean
headerWritten
protected Resource
lastWrittenSubject
protected char
quote
protected Writer
writer
-
Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
namespaceTable, statementConsumer
-
-
Constructor Summary
Constructors Constructor Description RDFXMLWriter(OutputStream out)
Creates a new RDFXMLWriter that will write to the supplied OutputStream.RDFXMLWriter(OutputStream out, ParsedIRI baseIRI)
Creates a new RDFXMLWriter that will write to the supplied OutputStream.RDFXMLWriter(Writer writer)
Creates a new RDFXMLWriter that will write to the supplied Writer.RDFXMLWriter(Writer writer, ParsedIRI baseIRI)
Creates a new RDFXMLWriter that will write to the supplied Writer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
consumeStatement(Statement st)
Consume a statement.void
endRDF()
Signals the end of the RDF data.protected void
flushPendingStatements()
RDFFormat
getRDFFormat()
Gets the RDF format that this RDFWriter uses.Collection<RioSetting<?>>
getSupportedSettings()
protected String
getValidNodeId(BNode bNode)
Create a syntactically valid node id from the supplied blank node id.Writer
getWriter()
void
handleComment(String comment)
Handles a comment.void
handleNamespace(String prefix, String name)
Handles a namespace declaration/definition.protected void
setNamespace(String prefix, String name)
protected void
writeAttribute(String attName, String value)
protected void
writeAttribute(String namespace, String attName, String value)
protected void
writeCharacterData(String chars)
Replace special characters in text with entities.protected void
writeEndOfEmptyTag()
Write > or />protected void
writeEndOfStartTag()
Write >protected void
writeEndTag(String namespace, String localName)
protected void
writeHeader()
protected void
writeIndent()
Write tabprotected void
writeNewLine()
Write newline characterprotected void
writeQuotedAttribute(String attName, String value)
Write quoted attributeprotected void
writeStartOfStartTag(String namespace, String localName)
-
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
-
-
-
-
Field Detail
-
baseIRI
protected final ParsedIRI baseIRI
-
writer
protected final Writer writer
-
defaultNamespace
protected String defaultNamespace
-
headerWritten
protected boolean headerWritten
-
lastWrittenSubject
protected Resource lastWrittenSubject
-
quote
protected char quote
-
entityQuote
protected boolean entityQuote
-
-
Constructor Detail
-
RDFXMLWriter
public RDFXMLWriter(OutputStream out)
Creates a new RDFXMLWriter that will write to the supplied OutputStream.- Parameters:
out
- The OutputStream to write the RDF/XML document to.
-
RDFXMLWriter
public RDFXMLWriter(OutputStream out, ParsedIRI baseIRI)
Creates a new RDFXMLWriter that will write to the supplied OutputStream.- Parameters:
out
- The OutputStream to write the RDF/XML document to.baseIRI
- base URI
-
RDFXMLWriter
public RDFXMLWriter(Writer writer)
Creates a new RDFXMLWriter that will write to the supplied Writer.- Parameters:
writer
- The Writer to write the RDF/XML document to.
-
-
Method Detail
-
getRDFFormat
public RDFFormat getRDFFormat()
Description copied from interface:RDFWriter
Gets the RDF format that this RDFWriter uses.- Specified by:
getRDFFormat
in interfaceRDFWriter
-
getSupportedSettings
public Collection<RioSetting<?>> getSupportedSettings()
- Specified by:
getSupportedSettings
in interfaceRDFWriter
- Overrides:
getSupportedSettings
in classAbstractRDFWriter
- Returns:
- A collection of
RioSetting
s that are supported by this RDFWriter.
-
writeHeader
protected void writeHeader() throws IOException
- Throws:
IOException
-
endRDF
public void endRDF() throws RDFHandlerException
Description copied from interface:RDFHandler
Signals the end of the RDF data. This method is called when all data has been reported.- Specified by:
endRDF
in interfaceRDFHandler
- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
handleNamespace
public void handleNamespace(String prefix, String name)
Description copied from interface:RDFHandler
Handles a namespace declaration/definition. A namespace declaration associates a (short) prefix string with the namespace's URI. The prefix for default namespaces, which do not have an associated prefix, are represented as empty strings.- Specified by:
handleNamespace
in interfaceRDFHandler
- Overrides:
handleNamespace
in classAbstractRDFWriter
- Parameters:
prefix
- The prefix for the namespace, or an empty string in case of a default namespace.name
- The URI that the prefix maps to.
-
consumeStatement
protected void consumeStatement(Statement st)
Description copied from class:AbstractRDFWriter
Consume 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:
consumeStatement
in classAbstractRDFWriter
- Parameters:
st
- the statement to consume.
-
handleComment
public void handleComment(String comment) throws RDFHandlerException
Description copied from interface:RDFHandler
Handles a comment.- Specified by:
handleComment
in interfaceRDFHandler
- Parameters:
comment
- The comment.- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
flushPendingStatements
protected void flushPendingStatements() throws IOException, RDFHandlerException
- Throws:
IOException
RDFHandlerException
-
writeStartOfStartTag
protected void writeStartOfStartTag(String namespace, String localName) throws IOException
- Throws:
IOException
-
writeAttribute
protected void writeAttribute(String attName, String value) throws IOException
- Throws:
IOException
-
writeAttribute
protected void writeAttribute(String namespace, String attName, String value) throws IOException, RDFHandlerException
- Throws:
IOException
RDFHandlerException
-
writeQuotedAttribute
protected void writeQuotedAttribute(String attName, String value) throws IOException
Write quoted attribute- Parameters:
attName
- attribute namevalue
- string value- Throws:
IOException
-
writeEndOfStartTag
protected void writeEndOfStartTag() throws IOException
Write >- Throws:
IOException
-
writeEndOfEmptyTag
protected void writeEndOfEmptyTag() throws IOException
Write > or />- Throws:
IOException
-
writeEndTag
protected void writeEndTag(String namespace, String localName) throws IOException
- Throws:
IOException
-
writeCharacterData
protected void writeCharacterData(String chars) throws IOException
Replace special characters in text with entities.- Parameters:
chars
- text- Throws:
IOException
-
writeIndent
protected void writeIndent() throws IOException
Write tab- Throws:
IOException
-
writeNewLine
protected void writeNewLine() throws IOException
Write newline character- Throws:
IOException
-
getValidNodeId
protected String getValidNodeId(BNode bNode) throws IOException
Create a syntactically valid node id from the supplied blank node id. This is necessary because RDF/XML syntax enforces the blank node id is a valid NCName.- Parameters:
bNode
- a blank node identifier- Returns:
- the blank node identifier converted to a form that is a valid NCName.
- Throws:
IOException
- See Also:
- section 7.2.34 of the RDF/XML Syntax specification
-
-