Serializer 3 RAPTOR Library
Serializer RDF serializers - from RDF triples to a syntax

## Synopsis

    typedef     raptor_serializer;
    raptor_serializer* raptor_new_serializer    (const char *name);
    void        raptor_free_serializer          (raptor_serializer *rdf_serializer);
    int         raptor_serialize_start          (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 raptor_iostream *iostream);
    int         raptor_serialize_start_to_filename
                                                (raptor_serializer *rdf_serializer,
                                                 const char *filename);
    int         raptor_serialize_start_to_string
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 void **string_p,
                                                 size_t *length_p);
    int         raptor_serialize_start_to_file_handle
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 FILE *fh);
    int         raptor_serialize_set_namespace  (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 unsigned char *prefix);
    int         raptor_serialize_set_namespace_from_namespace
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_namespace *nspace);
    int         raptor_serialize_statement      (raptor_serializer *rdf_serializer,
                                                 const raptor_statement *statement);
    int         raptor_serialize_end            (raptor_serializer *rdf_serializer);
    raptor_iostream* raptor_serializer_get_iostream
                                                (raptor_serializer *serializer);
    void        raptor_serializer_set_error_handler
                                                (raptor_serializer *serializer,
                                                 void *user_data,
                                                 raptor_message_handler handler);
    void        raptor_serializer_set_warning_handler
                                                (raptor_serializer *serializer,
                                                 void *user_data,
                                                 raptor_message_handler handler);
    raptor_locator* raptor_serializer_get_locator
                                                (raptor_serializer *rdf_serializer);
    int         raptor_serializer_features_enumerate
                                                (const raptor_feature feature,
                                                 const char **name,
                                                 raptor_uri **uri,
                                                 const char **label);
    int         raptor_serializer_set_feature   (raptor_serializer *serializer,
                                                 raptor_feature feature,
                                                 int value);
    int         raptor_serializer_set_feature_string
                                                (raptor_serializer *serializer,
                                                 raptor_feature feature,
                                                 unsigned char *value);
    int         raptor_serializer_get_feature   (raptor_serializer *serializer,
                                                 raptor_feature feature);
    const unsigned char* raptor_serializer_get_feature_string
                                                (raptor_serializer *serializer,
                                                 raptor_feature feature);

## Description

The serializing class that allows creating a serializer for writing a particular syntax to an output string, file, file handle or user function (via raptor_iostream).

There are also methods to deal with handling errors, warnings and returned triples as well as setting options (features) that can adjust how serializing is performed.

## Details

### raptor_serializer

    raptor_serializer* raptor_serializer;

Raptor Serializer class

raptor_serializer

### raptor_new_serializer ()

    raptor_serializer* raptor_new_serializer    (const char *name);

Constructor - create a new raptor_serializer object

name :

  the serializer name

Returns :

  a new raptor_serializer object or NULL on failure

raptor_new_serializer

### raptor_free_serializer ()

    void        raptor_free_serializer          (raptor_serializer *rdf_serializer);

Destructor - destroy a raptor_serializer object.

rdf_serializer :

  raptor_serializer object

raptor_free_serializer

### raptor_serialize_start ()

    int         raptor_serialize_start          (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 raptor_iostream *iostream);

Start serialization with given base URI

rdf_serializer :

  the raptor_serializer

uri :

  base URI or NULL if no base URI is required

iostream :

  raptor_iostream to write serialization to

Returns :

  non-0 on failure.

raptor_serialize_start

### raptor_serialize_start_to_filename ()

    int         raptor_serialize_start_to_filename
                                                (raptor_serializer *rdf_serializer,
                                                 const char *filename);

Start serializing to a filename.

rdf_serializer :

  the raptor_serializer

filename :

  filename to serialize to

Returns :

  non-0 on failure.

raptor_serialize_start_to_filename

### raptor_serialize_start_to_string ()

    int         raptor_serialize_start_to_string
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 void **string_p,
                                                 size_t *length_p);

Start serializing to a string.

rdf_serializer :

  the raptor_serializer

uri :

  base URI or NULL if no base URI is required

string_p :

  pointer to location to hold string

length_p :

  pointer to location to hold length of string (or NULL)

Returns :

  non-0 on failure.

raptor_serialize_start_to_string

### raptor_serialize_start_to_file_handle ()

    int         raptor_serialize_start_to_file_handle
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 FILE *fh);

Start serializing to a FILE*.

NOTE: This does not fclose the handle when it is finished. 8

rdf_serializer :

  the raptor_serializer

uri :

  base URI or NULL if no base URI is required

fh :

  FILE* to serialize to

Returns :

  non-0 on failure.

raptor_serialize_start_to_file_handle

### raptor_serialize_set_namespace ()

    int         raptor_serialize_set_namespace  (raptor_serializer *rdf_serializer,
                                                 raptor_uri *uri,
                                                 unsigned char *prefix);

set a namespace uri/prefix mapping for serializing.

rdf_serializer :

  the raptor_serializer

uri :

  raptor_uri of namespace

prefix :

  prefix to use

Returns :

  non-0 on failure.

raptor_serialize_set_namespace

### raptor_serialize_set_namespace_from_namespace ()

    int         raptor_serialize_set_namespace_from_namespace
                                                (raptor_serializer *rdf_serializer,
                                                 raptor_namespace *nspace);

Set a namespace uri/prefix mapping for serializing from an existing namespace.

rdf_serializer :

  the raptor_serializer

nspace :

  raptor_namespace to set

Returns :

  non-0 on failure.

raptor_serialize_set_namespace_from_namespace

### raptor_serialize_statement ()

    int         raptor_serialize_statement      (raptor_serializer *rdf_serializer,
                                                 const raptor_statement *statement);

Serialize a statement.

rdf_serializer :

  the raptor_serializer

statement :

  raptor_statement to serialize to a syntax

Returns :

  non-0 on failure.

raptor_serialize_statement

### raptor_serialize_end ()

    int         raptor_serialize_end            (raptor_serializer *rdf_serializer);

End a serialization.

rdf_serializer :

  the raptor_serializer

Returns :

  non-0 on failure.

raptor_serialize_end

### raptor_serializer_get_iostream ()

    raptor_iostream* raptor_serializer_get_iostream
                                                (raptor_serializer *serializer);

Get the current serializer iostream.

serializer :

  raptor_serializer object

Returns :

  the serializer's current iostream or NULL if

raptor_serializer_get_iostream

### raptor_serializer_set_error_handler ()

    void        raptor_serializer_set_error_handler
                                                (raptor_serializer *serializer,
                                                 void *user_data,
                                                 raptor_message_handler handler);

Set the serializer error handling function.

The function will receive callbacks when the serializer fails.

serializer :

  the serializer

user_data :

  user data to pass to function

handler :

  pointer to the function

raptor_serializer_set_error_handler

### raptor_serializer_set_warning_handler ()

    void        raptor_serializer_set_warning_handler
                                                (raptor_serializer *serializer,
                                                 void *user_data,
                                                 raptor_message_handler handler);

Set the serializer warning handling function.

The function will receive callbacks when the serializer fails.

serializer :

  the serializer

user_data :

  user data to pass to function

handler :

  pointer to the function

raptor_serializer_set_warning_handler

### raptor_serializer_get_locator ()

    raptor_locator* raptor_serializer_get_locator
                                                (raptor_serializer *rdf_serializer);

Get the serializer raptor locator object.

rdf_serializer :

  raptor serializer

Returns :

  raptor locator

raptor_serializer_get_locator

### raptor_serializer_features_enumerate ()

    int         raptor_serializer_features_enumerate
                                                (const raptor_feature feature,
                                                 const char **name,
                                                 raptor_uri **uri,
                                                 const char **label);

Get list of serializer features.

If uri is not NULL, a pointer toa new raptor_uri is returned that must be freed by the caller with `raptor_free_uri()`.

feature :

  feature enumeration (0+)

name :

  pointer to store feature short name (or NULL)

uri :

  pointer to store feature URI (or NULL)

label :

  pointer to feature label (or NULL)

Returns :

  0 on success, <0 on failure, >0 if feature is unknown

raptor_serializer_features_enumerate

### raptor_serializer_set_feature ()

    int         raptor_serializer_set_feature   (raptor_serializer *serializer,
                                                 raptor_feature feature,
                                                 int value);

Set serializer features with integer values.

The allowed features are available via `raptor_features_enumerate()`.

serializer :

  raptor_serializer serializer object

feature :

  feature to set from enumerated raptor_feature values

value :

  integer feature value (0 or larger)

Returns :

  non 0 on failure or if the feature is unknown

raptor_serializer_set_feature

### raptor_serializer_set_feature_string ()

    int         raptor_serializer_set_feature_string
                                                (raptor_serializer *serializer,
                                                 raptor_feature feature,
                                                 unsigned char *value);

Set serializer features with string values.

The allowed features are available via `raptor_serializer_features_enumerate()`. If the feature type is integer, the value is interpreted as an integer.

serializer :

  raptor_serializer serializer object

feature :

  feature to set from enumerated raptor_feature values

value :

  feature value

Returns :

  non 0 on failure or if the feature is unknown

raptor_serializer_set_feature_string

### raptor_serializer_get_feature ()

    int         raptor_serializer_get_feature   (raptor_serializer *serializer,
                                                 raptor_feature feature);

Get various serializer features.

The allowed features are available via `raptor_features_enumerate()`.

Note: no feature value is negative

serializer :

  raptor_serializer serializer object

feature :

  feature to get value

Returns :

  feature value or < 0 for an illegal feature

raptor_serializer_get_feature

### raptor_serializer_get_feature_string ()

    const unsigned char* raptor_serializer_get_feature_string
                                                (raptor_serializer *serializer,
                                                 raptor_feature feature);

Get serializer features with string values.

The allowed features are available via `raptor_features_enumerate()`.

serializer :

  raptor_serializer serializer object

feature :

  feature to get value

Returns :

  feature value or NULL for an illegal feature or no value

raptor_serializer_get_feature_string