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 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()` | get the `Writer` used by this `CharSink`.
    `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 tab
    `protected void` | `writeNewLine()` | Write newline character
    `protected void` | `writeQuotedAttribute​(String attName, String value)` | Write quoted attribute
    `protected 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.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.

    - #### RDFXMLWriter

          public RDFXMLWriter​(Writer writer,
                              ParsedIRI baseIRI)

      Creates a new RDFXMLWriter that will write to the supplied Writer.
      Parameters:
        `writer` - The Writer to write the RDF/XML document to.
        `baseIRI` - base URI

  - ### Method Detail

    - #### getRDFFormat

          public RDFFormat getRDFFormat()

      Description copied from interface: `RDFWriter`
      Gets the RDF format that this RDFWriter uses.
      Specified by:
        `getRDFFormat` in interface `RDFWriter`

    - #### getWriter

          public Writer getWriter()

      Description copied from interface: `CharSink`
      get the `Writer` used by this `CharSink`.
      Specified by:
        `getWriter` in interface `CharSink`
      Returns:
        an `Writer`

    - #### getSupportedSettings

          public Collection<RioSetting<?>> getSupportedSettings()

      Specified by:
        `getSupportedSettings` in interface `RDFWriter`
      Overrides:
        `getSupportedSettings` in class `AbstractRDFWriter`
      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 interface `RDFHandler`
      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 interface `RDFHandler`
      Overrides:
        `handleNamespace` in class `AbstractRDFWriter`
      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.

    - #### setNamespace

          protected void setNamespace​(String prefix,
                                      String name)

    - #### 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 class `AbstractRDFWriter`
      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 interface `RDFHandler`
      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 name
        `value` - 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