Package org.eclipse.rdf4j.query.resultio.sparqlxml

## Class SPARQLStarResultsXMLWriter

- java.lang.Object
- - org.eclipse.rdf4j.query.resultio.AbstractQueryResultWriter
  - - org.eclipse.rdf4j.query.resultio.sparqlxml.SPARQLResultsXMLWriter
    - - org.eclipse.rdf4j.query.resultio.sparqlxml.SPARQLStarResultsXMLWriter

- All Implemented Interfaces:
    `CharSink`, `Sink`, `QueryResultHandler`, `QueryResultWriter`, `TupleQueryResultWriter`, `TupleQueryResultHandler`

      @Experimental
      public class SPARQLStarResultsXMLWriter
      extends SPARQLResultsXMLWriter

  A `TupleQueryResultWriter` that writes tuple query results in the extended form SPARQL Query Results XML Format.
  Author:
    Jeen Broekstra

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `documentOpen` |
    `protected boolean` | `headerComplete` |
    `protected boolean` | `headerOpen` |
    `protected boolean` | `tupleVariablesFound` |
    `protected XMLWriter` | `xmlWriter` | XMLWriter to write XML to.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SPARQLStarResultsXMLWriter​(OutputStream out)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `acceptsFileFormat​(FileFormat format)` | Check if this Sink accepts the supplied `FileFormat`.
    `protected void` | `endDocument()` |
    `void` | `endHeader()` | Indicates the end of the header.
    `void` | `endQueryResult()` | Indicates the end of a sequence of solutions.
    `Collection<RioSetting<?>>` | `getSupportedSettings()` |
    `TupleQueryResultFormat` | `getTupleQueryResultFormat()` | Gets the query result format that this writer uses.
    `Writer` | `getWriter()` | get the `Writer` used by this `CharSink`.
    `void` | `handleBoolean​(boolean value)` | Handles the specified boolean value.
    `void` | `handleLinks​(List<String> linkUrls)` | Handles the links elements which are present in SPARQL Results JSON and SPARQL Results XML documents in the header.
    `void` | `handleNamespace​(String prefix, String uri)` | Handles a namespace prefix declaration.
    `protected void` | `handleSolutionImpl​(BindingSet bindingSet)` | Extending classes must implement this method instead of overriding `AbstractQueryResultWriter.handleSolution(BindingSet)` in order to benefit from automatic handling of RDF-star encoding.
    `void` | `handleStylesheet​(String url)` | Handles a stylesheet URL.
    `void` | `setPrettyPrint​(boolean prettyPrint)` | Deprecated. Use `AbstractQueryResultWriter.getWriterConfig()` .set(BasicWriterSettings.PRETTY_PRINT, prettyPrint) instead.
    `void` | `startDocument()` | Indicates the start of the document.
    `void` | `startHeader()` | Indicates the start of the header.
    `void` | `startQueryResult​(List<String> bindingNames)` | Indicates the start of a sequence of Solutions.

    - ### Methods inherited from class org.eclipse.rdf4j.query.resultio.sparqlxml.SPARQLResultsXMLWriter

      `getQueryResultFormat`

    - ### Methods inherited from class org.eclipse.rdf4j.query.resultio.AbstractQueryResultWriter

      `getFileFormat, getWriterConfig, handleSolution, setWriterConfig, xsdStringToPlainLiteral`

    - ### 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.query.QueryResultHandler

      `endQueryResult, handleBoolean, handleLinks, handleSolution, startQueryResult`

    - ### Methods inherited from interface org.eclipse.rdf4j.query.resultio.QueryResultWriter

      `endHeader, getSupportedSettings, getWriterConfig, handleNamespace, handleStylesheet, setWriterConfig, startDocument, startHeader`

    - ### Methods inherited from interface org.eclipse.rdf4j.common.io.Sink

      `getFileFormat`

- - ### Field Detail

    - #### xmlWriter

          protected XMLWriter xmlWriter

      XMLWriter to write XML to.

    - #### documentOpen

          protected boolean documentOpen

    - #### headerOpen

          protected boolean headerOpen

    - #### headerComplete

          protected boolean headerComplete

    - #### tupleVariablesFound

          protected boolean tupleVariablesFound

  - ### Constructor Detail

    - #### SPARQLStarResultsXMLWriter

          public SPARQLStarResultsXMLWriter​(OutputStream out)

      Parameters:
        `out` -

  - ### Method Detail

    - #### getTupleQueryResultFormat

          public final TupleQueryResultFormat getTupleQueryResultFormat()

      Description copied from interface: `TupleQueryResultWriter`
      Gets the query result format that this writer uses.
      Specified by:
        `getTupleQueryResultFormat` in interface `TupleQueryResultWriter`
      Overrides:
        `getTupleQueryResultFormat` in class `SPARQLResultsXMLWriter`

    - #### acceptsFileFormat

          public boolean acceptsFileFormat​(FileFormat format)

      Description copied from interface: `Sink`
      Check if this Sink accepts the supplied `FileFormat`.
      Parameters:
        `format` - the `FileFormat` to check.
      Returns:
        `true` if the sink accepts the supplied format, `false` otherwise.

    - #### 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`

    - #### setPrettyPrint

          @Deprecated
          public void setPrettyPrint​(boolean prettyPrint)

      Deprecated.
      Use `AbstractQueryResultWriter.getWriterConfig()` .set(BasicWriterSettings.PRETTY_PRINT, prettyPrint) instead.
      Enables/disables addition of indentation characters and newlines in the XML document. By default, pretty-printing is set to true. If set to false, no indentation and newlines are added to the XML document. This method has to be used before writing starts (that is, before `QueryResultWriter.startDocument()` is called).

    - #### endDocument

          protected void endDocument()
                              throws IOException

      Throws:
        `IOException`

    - #### handleBoolean

          public void handleBoolean​(boolean value)
                             throws QueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Handles the specified boolean value.
      Specified by:
        `handleBoolean` in interface `QueryResultHandler`
      Parameters:
        `value` - The boolean value to handle.
      Throws:
        `QueryResultHandlerException` - If there was an error during the handling of this value. This exception may be thrown if the `QueryResultHandler.startQueryResult(List)`, `QueryResultHandler.handleSolution(BindingSet)` or `QueryResultHandler.endQueryResult()` methods were called before this method was called, and the handler cannot process both boolean and tuple results simultaneously.

    - #### startDocument

          public void startDocument()
                             throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the start of the document.
      Specified by:
        `startDocument` in interface `QueryResultWriter`
      Throws:
        `QueryResultHandlerException` - If there was an error starting the writing of the results.

    - #### handleStylesheet

          public void handleStylesheet​(String url)
                                throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Handles a stylesheet URL. If this is called, it must be called after `QueryResultWriter.startDocument()` and before `QueryResultWriter.startHeader()`.

      NOTE: If the format does not support stylesheets, it must silently ignore calls to this method.

      Specified by:
        `handleStylesheet` in interface `QueryResultWriter`
      Parameters:
        `url` - The URL of the stylesheet to be used to style the results.
      Throws:
        `QueryResultHandlerException` - If there was an error handling the stylesheet. This error is not thrown in cases where stylesheets are not supported.

    - #### startHeader

          public void startHeader()
                           throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the start of the header.
      Specified by:
        `startHeader` in interface `QueryResultWriter`
      Throws:
        `QueryResultHandlerException` - If there was an error writing the start of the header.
      See Also:
        SPARQL Query Results XML Format documentation for head element.

    - #### handleLinks

          public void handleLinks​(List<String> linkUrls)
                           throws QueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Handles the links elements which are present in SPARQL Results JSON and SPARQL Results XML documents in the header.

      NOTE: If the format does not support links, it must silently ignore a call to this method.

      An accumulating handler should accumulate these links.

      Specified by:
        `handleLinks` in interface `QueryResultHandler`
      Parameters:
        `linkUrls` - The URLs of the links to handle.
      Throws:
        `QueryResultHandlerException` - If there was an error handling the set of link URLs. This error is not thrown in cases where links are not supported.
      See Also:
        "link"

    - #### endHeader

          public void endHeader()
                         throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Indicates the end of the header. This must be called after `QueryResultWriter.startHeader()` and before any calls to `QueryResultHandler.handleSolution(org.eclipse.rdf4j.query.BindingSet)`.
      Specified by:
        `endHeader` in interface `QueryResultWriter`
      Throws:
        `QueryResultHandlerException` - If there was an error writing the end of the header.

    - #### startQueryResult

          public void startQueryResult​(List<String> bindingNames)
                                throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Indicates the start of a sequence of Solutions. The supplied bindingNames are an indication of the values that are in the Solutions. For example, a SPARQL query like select ?X ?Y where { ?X ?P ?Y } will have binding names X and Y.
      Specified by:
        `startQueryResult` in interface `QueryResultHandler`
      Overrides:
        `startQueryResult` in class `AbstractQueryResultWriter`
      Parameters:
        `bindingNames` - An ordered set of binding names.
      Throws:
        `TupleQueryResultHandlerException` - If there was an error during the starting of the query result handler. This exception may be thrown if the `QueryResultHandler.handleBoolean(boolean)` method was called before this method and the handler cannot process both boolean and tuple results simultaneously.

    - #### endQueryResult

          public void endQueryResult()
                              throws TupleQueryResultHandlerException

      Description copied from interface: `QueryResultHandler`
      Indicates the end of a sequence of solutions.
      Specified by:
        `endQueryResult` in interface `QueryResultHandler`
      Throws:
        `TupleQueryResultHandlerException` - If there was an error during the ending of the query result handler. This exception may be thrown if the `QueryResultHandler.handleBoolean(boolean)` method was called before this method and the handler cannot process both boolean and tuple results simultaneously.

    - #### handleSolutionImpl

          protected void handleSolutionImpl​(BindingSet bindingSet)
                                     throws TupleQueryResultHandlerException

      Description copied from class: `AbstractQueryResultWriter`
      Extending classes must implement this method instead of overriding `AbstractQueryResultWriter.handleSolution(BindingSet)` in order to benefit from automatic handling of RDF-star encoding.
      Overrides:
        `handleSolutionImpl` in class `AbstractQueryResultWriter`
      Parameters:
        `bindingSet` - the solution to handle
      Throws:
        `TupleQueryResultHandlerException`

    - #### getSupportedSettings

          public final Collection<RioSetting<?>> getSupportedSettings()

      Specified by:
        `getSupportedSettings` in interface `QueryResultWriter`
      Overrides:
        `getSupportedSettings` in class `AbstractQueryResultWriter`
      Returns:
        A collection of `RioSetting`s that are supported by this `QueryResultWriter`.

    - #### handleNamespace

          public void handleNamespace​(String prefix,
                                      String uri)
                               throws QueryResultHandlerException

      Description copied from interface: `QueryResultWriter`
      Handles a namespace prefix declaration. If this is called, it should be called before `QueryResultWriter.startDocument()` to ensure that it has a document wide effect.

      NOTE: If the format does not support namespaces, it must silently ignore calls to this method.

      Specified by:
        `handleNamespace` in interface `QueryResultWriter`
      Parameters:
        `prefix` - The prefix to use for the namespace
        `uri` - The full URI that is to be represented by the prefix.
      Throws:
        `QueryResultHandlerException`