RDF.XML.Encoder (RDF-XML.ex v0.1.0) View Source

An encoder for RDF/XML serializations of RDF.ex data structures.

As for all encoders of RDF.Serialization.Formats, you normally won't use these functions directly, but via one of the write_ functions on the RDF.XML format module or the generic RDF.Serialization module.

Options

  • :base: : Allows to specify the base URI to be used for a xml:base declaration. If not specified the one from the given graph is used or if there is also none specified for the graph the RDF.default_base_iri/0.

  • :prefixes: Allows to specify the prefixes to be used as a RDF.PrefixMap or anything from which a RDF.PrefixMap can be created with RDF.PrefixMap.new/1. If not specified the ones from the given graph are used or if these are also not present the RDF.default_prefixes/0.

  • :implicit_base: Allows to specify that the used base URI should not be encoded in the generated serialization (default: false).

  • :use_rdf_id: Use rdf:ID when possible (default: false).

  • :producer: This option allows you to provide a producer function, which will get the input data (usually a RDF.Graph) and should produce a stream of the descriptions to be encoded. This allows you to control the order of the descriptions, apply filters etc.

      iex> RDF.Graph.new([
      ...>   EX.S1 |> EX.p1(EX.O1),
      ...>   EX.S2 |> EX.p2(EX.O2),
      ...> ])
      ...> |> RDF.XML.write_string!(
      ...>     prefixes: [ex: EX],
      ...>     producer: fn graph ->
      ...>       {first, rest} = RDF.Graph.pop(graph, EX.S2)
      ...>       Stream.concat([first], RDF.Graph.descriptions(rest))
      ...>     end)
      ~S(<?xml version="1.0" encoding="utf-8"?><rdf:RDF xmlns:ex="http://example.com/"><rdf:Description rdf:about="http://example.com/S2"><ex:p2 rdf:resource="http://example.com/O2"/></rdf:Description><rdf:Description rdf:about="http://example.com/S1"><ex:p1 rdf:resource="http://example.com/O1"/></rdf:Description></rdf:RDF>)

Link to this section Summary

Functions

Encodes the given RDF data structure to a RDF/XML string.

Encodes the given RDF data structure to a RDF/XML stream.

Link to this section Functions

Link to this function

encode(data, opts \\ [])

View Source

Specs

encode(RDF.Graph.t(), keyword()) :: {:ok, String.t()} | {:error, any()}

Encodes the given RDF data structure to a RDF/XML string.

The result is returned in an :ok tuple or an :error tuple in case of an error.

For a description of the available options see the module documentation.

Link to this function

stream(data, opts \\ [])

View Source

Specs

stream(RDF.Graph.t(), keyword()) :: Enumerable.t()

Encodes the given RDF data structure to a RDF/XML stream.

By default the RDF/XML stream will emit single line strings for each of the descriptions in the given data. But you can also receive the serialized RDF/XML description as IO lists aka iodata by setting the :mode option to :iodata.

For a description of the other available options see the module documentation.