Features
3
RAPTOR Library

# Features

Parser and Serializer features

## Synopsis

    enum                raptor_feature;
    unsigned int        raptor_get_feature_count            (void);
    int                 raptor_features_enumerate           (const raptor_feature feature,
                                                             const char **name,
                                                             raptor_uri **uri,
                                                             const char **label);
    raptor_feature      raptor_feature_from_uri             (raptor_uri *uri);
    int                 raptor_feature_value_type           (const raptor_feature feature);

## Description

Optional parameters for raptor_parser and raptor_serializer objects that can be get and set. Utility functions also exist to enumerate them, their description and the parameter type taken.

## Details

### enum raptor_feature

    typedef enum {
      RAPTOR_FEATURE_SCANNING,
      RAPTOR_FEATURE_ASSUME_IS_RDF,
      RAPTOR_FEATURE_ALLOW_NON_NS_ATTRIBUTES,
      RAPTOR_FEATURE_ALLOW_OTHER_PARSETYPES,
      RAPTOR_FEATURE_ALLOW_BAGID,
      RAPTOR_FEATURE_ALLOW_RDF_TYPE_RDF_LIST,
      RAPTOR_FEATURE_NORMALIZE_LANGUAGE,
      RAPTOR_FEATURE_NON_NFC_FATAL,
      RAPTOR_FEATURE_WARN_OTHER_PARSETYPES,
      RAPTOR_FEATURE_CHECK_RDF_ID,
      RAPTOR_FEATURE_RELATIVE_URIS,
      RAPTOR_FEATURE_START_URI,
      RAPTOR_FEATURE_WRITER_AUTO_INDENT,
      RAPTOR_FEATURE_WRITER_AUTO_EMPTY,
      RAPTOR_FEATURE_WRITER_INDENT_WIDTH,
      RAPTOR_FEATURE_WRITER_XML_VERSION,
      RAPTOR_FEATURE_WRITER_XML_DECLARATION,
      RAPTOR_FEATURE_NO_NET,
      RAPTOR_FEATURE_RESOURCE_BORDER,
      RAPTOR_FEATURE_LITERAL_BORDER,
      RAPTOR_FEATURE_BNODE_BORDER,
      RAPTOR_FEATURE_RESOURCE_FILL,
      RAPTOR_FEATURE_LITERAL_FILL,
      RAPTOR_FEATURE_BNODE_FILL,
      RAPTOR_FEATURE_HTML_TAG_SOUP,
      RAPTOR_FEATURE_MICROFORMATS,
      RAPTOR_FEATURE_HTML_LINK,
      RAPTOR_FEATURE_WWW_TIMEOUT,
      RAPTOR_FEATURE_WRITE_BASE_URI,
      RAPTOR_FEATURE_WWW_HTTP_CACHE_CONTROL,
      RAPTOR_FEATURE_WWW_HTTP_USER_AGENT,
      RAPTOR_FEATURE_JSON_CALLBACK,
      RAPTOR_FEATURE_JSON_EXTRA_DATA,
      RAPTOR_FEATURE_RSS_TRIPLES,
      RAPTOR_FEATURE_ATOM_ENTRY_URI,
      RAPTOR_FEATURE_LAST=RAPTOR_FEATURE_ATOM_ENTRY_URI
    } raptor_feature;

Raptor parser, serializer or XML writer features.

`RAPTOR_FEATURE_SCANNING`

  If true (default false), the RDF/XML parser will look for embedded rdf:RDF elements inside the XML content, and not require that the XML start with an rdf:RDF root element.

`RAPTOR_FEATURE_ASSUME_IS_RDF`

  If true (default false) then the RDF/XML parser will assume the content is RDF/XML, not require that rdf:RDF root element, and immediately interpret the content as RDF/XML.

`RAPTOR_FEATURE_ALLOW_NON_NS_ATTRIBUTES`

  If true (default true) then the RDF/XML parser will allow non-XML namespaced attributes to be accepted as well as rdf: namespaced ones. For example, 'about' and 'ID' will be interpreted as if they were rdf:about and rdf:ID respectively.

`RAPTOR_FEATURE_ALLOW_OTHER_PARSETYPES`

  If true (default true) then the RDF/XML parser will allow unknown parsetypes to be present and will pass them on to the user. Unimplemented at present.

`RAPTOR_FEATURE_ALLOW_BAGID`

  If true (default true) then the RDF/XML parser will support the rdf:bagID attribute that was removed from the RDF/XML language when it was revised. This support may be removed in future.

`RAPTOR_FEATURE_ALLOW_RDF_TYPE_RDF_LIST`

  If true (default false) then the RDF/XML parser will generate the idList rdf:type rdf:List triple in the handling of rdf:parseType="Collection". This triple was removed during the revising of RDF/XML after collections were initially added.

`RAPTOR_FEATURE_NORMALIZE_LANGUAGE`

  If true (default true) then XML language values such as from xml:lang will be normalized to lowercase.

`RAPTOR_FEATURE_NON_NFC_FATAL`

  If true (default false) then illegal Unicode Normal Form C in literals will give a fatal error, otherwise just a warning.

`RAPTOR_FEATURE_WARN_OTHER_PARSETYPES`

  If true (default true) then the RDF/XML parser will warn about unknown rdf:parseType values.

`RAPTOR_FEATURE_CHECK_RDF_ID`

  If true (default true) then the RDF/XML will check rdf:ID attribute values for duplicates and cause an error if any are found.

`RAPTOR_FEATURE_RELATIVE_URIS`

  If true (default true) then relative URIs will be used wherever possible when serializing.

`RAPTOR_FEATURE_START_URI`

  Set the start URI for serlalizing to use.

`RAPTOR_FEATURE_WRITER_AUTO_INDENT`

  Automatically indent elements when seriailizing.

`RAPTOR_FEATURE_WRITER_AUTO_EMPTY`

  Automatically detect and abbreviate empty elements when serializing.

`RAPTOR_FEATURE_WRITER_INDENT_WIDTH`

  Integer number of spaces to use for each indent level when serializing with auto indent.

`RAPTOR_FEATURE_WRITER_XML_VERSION`

  Integer XML version XML 1.0 (10) or XML 1.1 (11)

`RAPTOR_FEATURE_WRITER_XML_DECLARATION`

  Write XML 1.0 or 1.1 declaration.

`RAPTOR_FEATURE_NO_NET`

  Deny network requests.

`RAPTOR_FEATURE_RESOURCE_BORDER`

  Border color of resource nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_LITERAL_BORDER`

  Border color of literal nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_BNODE_BORDER`

  Border color of blank nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_RESOURCE_FILL`

  Fill color of resource nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_LITERAL_FILL`

  Fill color of literal nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_BNODE_FILL`

  Fill color of blank nodes for GraphViz DOT serializer.

`RAPTOR_FEATURE_HTML_TAG_SOUP`

  Use a lax HTML parser if an XML parser fails when read HTML for GRDDL parser.

`RAPTOR_FEATURE_MICROFORMATS`

  Look for microformats for GRDDL parser.

`RAPTOR_FEATURE_HTML_LINK`

  Look for head <link> to type rdf/xml for GRDDL parser.

`RAPTOR_FEATURE_WWW_TIMEOUT`

  Set timeout for internal WWW URI requests for GRDDL parser.

`RAPTOR_FEATURE_WRITE_BASE_URI`

  Write `base` directive for Turtle/N3.

`RAPTOR_FEATURE_WWW_HTTP_CACHE_CONTROL`

  HTTP Cache-Control: header

`RAPTOR_FEATURE_WWW_HTTP_USER_AGENT`

  HTTP User-Agent: header

`RAPTOR_FEATURE_JSON_CALLBACK`

  JSON serializer callback function.

`RAPTOR_FEATURE_JSON_EXTRA_DATA`

  JSON serializer extra top-level data

`RAPTOR_FEATURE_RSS_TRIPLES`

  Atom/RSS serializer writes extra RDF triples it finds (none, rdf-xml, atom-triples)

`RAPTOR_FEATURE_ATOM_ENTRY_URI`

  Atom entry URI. If given, generate an Atom Entry Document with the item having the given URI, otherwise generate an Atom Feed Document with any items found.

`RAPTOR_FEATURE_LAST`

  Internal

### raptor_get_feature_count ()

    unsigned int        raptor_get_feature_count            (void);

Get the count of features defined.

This is prefered to the compile time-only symbol RAPTOR_FEATURE_LAST and returns a count of the number of features which is RAPTOR_FEATURE_LAST+1.

Returns :

  count of features in the raptor_feature enumeration

### raptor_features_enumerate ()

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

Get list of syntax 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_feature_from_uri ()

    raptor_feature      raptor_feature_from_uri             (raptor_uri *uri);

Turn a feature URI into an feature enum.

The allowed feature URIs are available via `raptor_features_enumerate()`.

`uri` :

  feature URI

Returns :

  < 0 if the feature is unknown

### raptor_feature_value_type ()

    int                 raptor_feature_value_type           (const raptor_feature feature);

Get the type of a features.

The type of the `feature` is 0=integer , 1=string. Other values are undefined. Most features are integer values and use raptor_set_feature and `raptor_get_feature()` ( raptor_serializer_set_feature `raptor_serializer_get_feature()` )

String value features use `raptor_parser_set_feature_string()` and `raptor_parser_get_feature_string()` ( `raptor_serializer_set_feature_string()` and `raptor_serializer_get_feature_string()` )

`feature` :

  raptor serializer or parser feature

Returns :

  the type of the feature or <0 if `feature` is unknown