View Source RDF.XML.Encoder (RDF-XML.ex v1.2.0)
An encoder for RDF/XML serializations of RDF.ex data structures.
As for all encoders of RDF.Serialization.Format
s, 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 axml:base
declaration. If not specified the one from the given graph is used or if there is also none specified for the graph theRDF.default_base_iri/0
.:prefixes
: Allows to specify the prefixes to be used as aRDF.PrefixMap
or anything from which aRDF.PrefixMap
can be created withRDF.PrefixMap.new/1
. If not specified the ones from the given graph are used or if these are also not present theRDF.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
: Allows to determine ifrdf:ID
should be used when possible. You can either provide a boolean value or a function which should return a boolean value for a givenRDF.Description
. (default:false
):xml_declaration
: Allows to specify the XML declaration. Possible values:true
(default): produces the default<?xml version="1.0" encoding="utf-8"?>
declarationfalse
: omits the XML declaration- any value supported for
prolog
argument ofSaxy.encode!/2
(only available onencode/2
, not onstream/2
)
:producer
: This option allows you to provide a producer function, which will get the input data (usually aRDF.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>)
Summary
Functions
Encodes the given RDF data
structure to an RDF/XML string.
Encodes the given RDF data
structure to an RDF/XML stream.
Functions
@spec encode( RDF.Graph.t(), keyword() ) :: {:ok, String.t()} | {:error, any()}
Encodes the given RDF data
structure to an 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.
@spec stream( RDF.Graph.t(), keyword() ) :: Enumerable.t()
Encodes the given RDF data
structure to an 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.