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 RDFWriter, 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 ParsedIRIbaseIRIprotected StringdefaultNamespaceprotected booleanentityQuoteprotected booleanheaderWrittenprotected ResourcelastWrittenSubjectprotected charquoteprotected Writerwriter-
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 voidconsumeStatement(Statement st)Consume a statement.voidendRDF()Signals the end of the RDF data.protected voidflushPendingStatements()RDFFormatgetRDFFormat()Gets the RDF format that this RDFWriter uses.Collection<RioSetting<?>>getSupportedSettings()protected StringgetValidNodeId(BNode bNode)Create a syntactically valid node id from the supplied blank node id.WritergetWriter()voidhandleComment(String comment)Handles a comment.voidhandleNamespace(String prefix, String name)Handles a namespace declaration/definition.protected voidsetNamespace(String prefix, String name)protected voidwriteAttribute(String attName, String value)protected voidwriteAttribute(String namespace, String attName, String value)protected voidwriteCharacterData(String chars)Replace special characters in text with entities.protected voidwriteEndOfEmptyTag()Write > or />protected voidwriteEndOfStartTag()Write >protected voidwriteEndTag(String namespace, String localName)protected voidwriteHeader()protected voidwriteIndent()Write tabprotected voidwriteNewLine()Write newline characterprotected voidwriteQuotedAttribute(String attName, String value)Write quoted attributeprotected voidwriteStartOfStartTag(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.rio.RDFHandler
handleStatement, startRDF
-
Methods inherited from interface org.eclipse.rdf4j.rio.RDFWriter
getWriterConfig, set, setWriterConfig
-
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:RDFWriterGets the RDF format that this RDFWriter uses.- Specified by:
getRDFFormatin interfaceRDFWriter
-
getSupportedSettings
public Collection<RioSetting<?>> getSupportedSettings()
- Specified by:
getSupportedSettingsin interfaceRDFWriter- Overrides:
getSupportedSettingsin classAbstractRDFWriter- Returns:
- A collection of
RioSettings that are supported by this RDFWriter.
-
writeHeader
protected void writeHeader() throws IOException- Throws:
IOException
-
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- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
handleNamespace
public void handleNamespace(String prefix, String name)
Description copied from interface:RDFHandlerHandles 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:
handleNamespacein interfaceRDFHandler- Overrides:
handleNamespacein 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:AbstractRDFWriterConsume a statement. Extending classes must override this method instead of overridingAbstractRDFWriter.handleStatement(Statement)in order to benefit from automatic handling of RDF-star conversion or encoding.- Overrides:
consumeStatementin classAbstractRDFWriter- Parameters:
st- the statement to consume.
-
handleComment
public void handleComment(String comment) throws RDFHandlerException
Description copied from interface:RDFHandlerHandles a comment.- Specified by:
handleCommentin interfaceRDFHandler- Parameters:
comment- The comment.- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
flushPendingStatements
protected void flushPendingStatements() throws IOException, RDFHandlerException- Throws:
IOExceptionRDFHandlerException
-
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:
IOExceptionRDFHandlerException
-
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 IOExceptionWrite >- Throws:
IOException
-
writeEndOfEmptyTag
protected void writeEndOfEmptyTag() throws IOExceptionWrite > 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 IOExceptionWrite tab- Throws:
IOException
-
writeNewLine
protected void writeNewLine() throws IOExceptionWrite 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
-
-