Serializer

## Serializer 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_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_free_serializer ()

    void        raptor_free_serializer          (raptor_serializer *rdf_serializer);

Destructor - destroy a raptor_serializer object.

`rdf_serializer` : | raptor_serializer object

### 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_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_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_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_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_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_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_end ()

    int         raptor_serialize_end            (raptor_serializer *rdf_serializer);

End a serialization.

`rdf_serializer` : | the raptor_serializer
Returns : | non-0 on failure.

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