URI

URI — URI class and relative URI computation

Functions

raptor_uri * raptor_new_uri ()
raptor_uri * raptor_new_uri_from_counted_string ()
raptor_uri * raptor_new_uri_from_uri_local_name ()
raptor_uri * raptor_new_uri_from_uri_or_file_string ()
raptor_uri * raptor_new_uri_relative_to_base ()
raptor_uri * raptor_new_uri_relative_to_base_counted ()
raptor_uri * raptor_new_uri_from_id ()
raptor_uri * raptor_new_uri_for_rdf_concept ()
raptor_uri * raptor_new_uri_for_xmlbase ()
raptor_uri * raptor_new_uri_for_retrieval ()
void raptor_free_uri ()
int raptor_uri_compare ()
int raptor_uri_equals ()
raptor_uri * raptor_uri_copy ()
unsigned char * raptor_uri_as_string ()
unsigned char * raptor_uri_as_counted_string ()
unsigned char * raptor_uri_to_relative_counted_uri_string ()
unsigned char * raptor_uri_to_relative_uri_string ()
unsigned char * raptor_uri_to_counted_string ()
unsigned char * raptor_uri_to_string ()
size_t raptor_uri_resolve_uri_reference ()
unsigned char * raptor_uri_counted_filename_to_uri_string ()
unsigned char * raptor_uri_filename_to_uri_string ()
int raptor_uri_uri_string_is_absolute ()
int raptor_uri_uri_string_is_file_uri ()
char * raptor_uri_uri_string_to_filename ()
char * raptor_uri_uri_string_to_filename_fragment ()
char * raptor_uri_uri_string_to_counted_filename_fragment ()
int raptor_uri_print ()
raptor_world * raptor_uri_get_world ()
int raptor_uri_write ()
int raptor_uri_file_exists ()
int raptor_uri_filename_exists ()
unsigned char * raptor_uri_to_turtle_counted_string ()
unsigned char * raptor_uri_to_turtle_string ()
int raptor_uri_turtle_write ()

Types and Values

typedef raptor_uri

Description

A class for absolute URIs used inside raptor and relative URI computation utility functions used inside the main Redland librdf_uri class. Only absolute URIs are provided, with no current access to internals of URIs such as URI scheme, path, authority.

Functions

raptor_new_uri ()

raptor_uri *
raptor_new_uri (raptor_world *world,
                const char *uri_string);

Constructor - create a raptor URI from a UTF-8 encoded Unicode string.

Parameters

world

raptor_world object

 

uri_string

URI string.

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_from_counted_string ()

raptor_uri *
raptor_new_uri_from_counted_string (raptor_world *world,
                                    const char *uri_string,
                                    size_t length);

Constructor - create a raptor URI from a UTF-8 encoded Unicode string.

Note: The uri_string need not be NULL terminated - a NULL will be added to the copied string used.

Parameters

world

raptor_world object

 

uri_string

URI string.

 

length

length of URI string

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_from_uri_local_name ()

raptor_uri *
raptor_new_uri_from_uri_local_name (raptor_world *world,
                                    raptor_uri *uri,
                                    const char *local_name);

Constructor - create a raptor URI from an existing URI and a local name.

Creates a new URI from the concatenation of the local_name to the uri . This is NOT relative URI resolution, which is done by the raptor_new_uri_relative_to_base() constructor.

Parameters

world

raptor_world object

 

uri

existing raptor_uri

 

local_name

local name

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_from_uri_or_file_string ()

raptor_uri *
raptor_new_uri_from_uri_or_file_string
                               (raptor_world *world,
                                raptor_uri *base_uri,
                                const unsigned char *uri_or_file_string);

Constructor - create a raptor URI from a string that is a relative or absolute URI or a filename

If the uri_or_file_string is a filename PATH that exists, the result will be a URI file://PATH

Parameters

world

raptor_world object

 

base_uri

existing base URI

 

uri_or_file_string

URI string or filename

 

Returns

a new raptor_uri object or NULL on failure


raptor_new_uri_relative_to_base ()

raptor_uri *
raptor_new_uri_relative_to_base (raptor_world *world,
                                 raptor_uri *base_uri,
                                 const char *uri_string);

Constructor - create a raptor URI from a base URI and a relative URI string.

Use raptor_new_uri_relative_to_base_counted() if the URI string length is known

Parameters

world

raptor_world object

 

base_uri

existing base URI

 

uri_string

relative URI string

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_relative_to_base_counted ()

raptor_uri *
raptor_new_uri_relative_to_base_counted
                               (raptor_world *world,
                                raptor_uri *base_uri,
                                const char *uri_string,
                                size_t uri_len);

Constructor - create a raptor URI from a base URI and a relative counted URI string.

Parameters

world

raptor_world object

 

base_uri

existing base URI

 

uri_string

relative URI string

 

uri_len

length of URI string (or 0)

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_from_id ()

raptor_uri *
raptor_new_uri_from_id (raptor_world *world,
                        raptor_uri *base_uri,
                        const char *id);

Constructor - create a new URI from a base URI and RDF ID.

This creates a URI equivalent to concatenating base_uri with

and id .

Parameters

world

raptor_world object

 

base_uri

existing base URI

 

id

RDF ID

 

Returns

a new raptor_uri object or NULL on failure.


raptor_new_uri_for_rdf_concept ()

raptor_uri *
raptor_new_uri_for_rdf_concept (raptor_world *world,
                                const char *name);

Constructor - create a raptor URI for the RDF namespace concept name.

Example: u=raptor_new_uri_for_rdf_concept("value") creates a new URI for the rdf:value term.

Parameters

world

raptor_world object

 

name

RDF namespace concept

 

Returns

a new raptor_uri object or NULL on failure


raptor_new_uri_for_xmlbase ()

raptor_uri *
raptor_new_uri_for_xmlbase (raptor_uri *old_uri);

Constructor - create a URI suitable for use as an XML Base.

Takes an existing URI and ensures it has a path (default /) and has no fragment or query arguments - XML base does not use these.

Parameters

old_uri

URI to transform

 

Returns

new raptor_uri object or NULL on failure.


raptor_new_uri_for_retrieval ()

raptor_uri *
raptor_new_uri_for_retrieval (raptor_uri *old_uri);

Constructor - create a URI suitable for retrieval.

Takes an existing URI and ensures it has a path (default /) and has no fragment - URI retrieval does not use the fragment part.

Parameters

old_uri

URI to transform

 

Returns

new raptor_uri object or NULL on failure.


raptor_free_uri ()

void
raptor_free_uri (raptor_uri *uri);

Destructor - destroy a raptor_uri object

Parameters

uri

URI to destroy

 

raptor_uri_compare ()

int
raptor_uri_compare (raptor_uri *uri1,
                    raptor_uri *uri2);

Compare two URIs, ala strcmp.

A NULL URI is always less than (never equal to) a non-NULL URI.

Parameters

uri1

URI 1 (may be NULL)

 

uri2

URI 2 (may be NULL)

 

Returns

-1 if uri1 < uri2, 0 if equal, 1 if uri1 > uri2


raptor_uri_equals ()

int
raptor_uri_equals (raptor_uri *uri1,
                   raptor_uri *uri2);

Check if two URIs are equal.

A NULL URI is not equal to a non-NULL URI.

Parameters

uri1

URI 1 (may be NULL)

 

uri2

URI 2 (may be NULL)

 

Returns

non-0 if the URIs are equal


raptor_uri_copy ()

raptor_uri *
raptor_uri_copy (raptor_uri *uri);

Constructor - get a copy of a URI.

Parameters

uri

URI object

 

Returns

a new raptor_uri object or NULL on failure


raptor_uri_as_string ()

unsigned char *
raptor_uri_as_string (raptor_uri *uri);

Get a string representation of a URI.

Returns a shared pointer to a string representation of uri . This string is shared and must not be freed, otherwise see use the raptor_uri_to_string() or raptor_uri_to_counted_string() methods.

Parameters

uri

raptor_uri object

 

Returns

shared string representation of URI


raptor_uri_as_counted_string ()

unsigned char *
raptor_uri_as_counted_string (raptor_uri *uri,
                              size_t *len_p);

Get a string representation of a URI with count.

Returns a shared pointer to a string representation of uri along with the length of the string in len_p , if not NULL. This string is shared and must not be freed, otherwise see use the raptor_uri_to_string() or raptor_uri_to_counted_string() methods.

Parameters

uri

URI object

 

len_p

address of length variable or NULL

 

Returns

shared string representation of URI


raptor_uri_to_relative_counted_uri_string ()

unsigned char *
raptor_uri_to_relative_counted_uri_string
                               (raptor_uri *base_uri,
                                raptor_uri *reference_uri,
                                size_t *length_p);

Get the counted relative URI string of a URI against a base URI.

Parameters

base_uri

The base absolute URI to resolve against (or NULL)

 

reference_uri

The reference absolute URI to use

 

length_p

Location to store the length of the relative URI string or NULL

 

Returns

A newly allocated relative URI string or NULL on failure


raptor_uri_to_relative_uri_string ()

unsigned char *
raptor_uri_to_relative_uri_string (raptor_uri *base_uri,
                                   raptor_uri *reference_uri);

Get the relative URI string of a URI against a base URI.

Parameters

base_uri

The base absolute URI to resolve against

 

reference_uri

The reference absolute URI to use

 

Returns

A newly allocated relative URI string or NULL on failure


raptor_uri_to_counted_string ()

unsigned char *
raptor_uri_to_counted_string (raptor_uri *uri,
                              size_t *len_p);

Get a new counted string for a URI.

If len_p is not NULL, the length of the string is stored in it.

The memory allocated must be freed by the caller and raptor_free_memory() should be used for best portability.

Parameters

uri

raptor_uri object

 

len_p

Pointer to length (or NULL)

 

Returns

new string or NULL on failure


raptor_uri_to_string ()

unsigned char *
raptor_uri_to_string (raptor_uri *uri);

Get a new string for a URI.

The memory allocated must be freed by the caller and raptor_free_memory() should be used for best portability.

Parameters

uri

raptor_uri object

 

Returns

new string or NULL on failure


raptor_uri_resolve_uri_reference ()

size_t
raptor_uri_resolve_uri_reference (const char *base_uri,
                                  const unsigned char *reference_uri,
                                  unsigned char *buffer,
                                  size_t length);

Resolve a URI against a base URI to create a new absolute URI.

Parameters

base_uri

Base URI string

 

reference_uri

Reference URI string

 

buffer

Destination URI output buffer

 

length

Length of destination output buffer

 

Returns

length of resolved string or 0 on failure (such as buffer too small)


raptor_uri_counted_filename_to_uri_string ()

unsigned char *
raptor_uri_counted_filename_to_uri_string
                               (const char *filename,
                                size_t filename_len);

Converts a counted filename to a file: URI.

Handles the OS-specific escaping on turning filenames into URIs and returns a new buffer that the caller must free(). Turns a space in the filename into %20 and '%' into %25.

Parameters

filename

The filename to convert

 

filename_len

length of filename or 0 to count it here

 

Returns

A newly allocated string with the URI or NULL on failure


raptor_uri_filename_to_uri_string ()

unsigned char *
raptor_uri_filename_to_uri_string (const char *filename);

Converts a filename to a file: URI.

Handles the OS-specific escaping on turning filenames into URIs and returns a new buffer that the caller must free(). Turns a space in the filename into %20 and '%' into %25.

Parameters

filename

The filename to convert

 

Returns

A newly allocated string with the URI or NULL on failure


raptor_uri_uri_string_is_absolute ()

int
raptor_uri_uri_string_is_absolute (const unsigned char *uri_string);

Check if a uri string is an absolute URI

Parameters

uri_string

uri to check write

 

Returns

>0 if absolute, 0 if not, < 0 on failure


raptor_uri_uri_string_is_file_uri ()

int
raptor_uri_uri_string_is_file_uri (const unsigned char *uri_string);

Check if a URI string is a file: URI.

Parameters

uri_string

The URI string to check

 

Returns

Non zero if URI string is a file: URI


raptor_uri_uri_string_to_filename ()

char *
raptor_uri_uri_string_to_filename (const char *uri_string);

Convert a file: URI to a filename.

Handles the OS-specific file: URIs to filename mappings. Returns a new buffer containing the filename that the caller must free.

See also raptor_uri_uri_string_to_counted_filename_fragment()

Parameters

uri_string

The file: URI to convert

 

Returns

A newly allocated string with the filename or NULL on failure


raptor_uri_uri_string_to_filename_fragment ()

char *
raptor_uri_uri_string_to_filename_fragment
                               (const char *uri_string,
                                unsigned char **fragment_p);

Convert a file: URI to a filename and fragment.

Handles the OS-specific file: URIs to filename mappings. Returns a new buffer containing the filename that the caller must free.

If fragment_p is given, a new string containing the URI fragment is returned, or NULL if none is present

See also raptor_uri_uri_string_to_counted_filename_fragment()

Parameters

uri_string

The file: URI to convert

 

fragment_p

Address of pointer to store any URI fragment or NULL

 

Returns

A newly allocated string with the filename or NULL on failure


raptor_uri_uri_string_to_counted_filename_fragment ()

char *
raptor_uri_uri_string_to_counted_filename_fragment
                               (const char *uri_string,
                                size_t *len_p,
                                unsigned char **fragment_p,
                                size_t *fragment_len_p);

Convert a file: URI to a counted filename and counted fragment.

Handles the OS-specific file: URIs to filename mappings. Returns a new buffer containing the filename that the caller must free.

If len_p is present the length of the filename is returned

If fragment_p is given, a new string containing the URI fragment is returned, or NULL if none is present. If fragment_len_p is present the length is returned in it.

Parameters

uri_string

The file: URI to convert

 

len_p

address of filename length variable or NULL

 

fragment_p

Address of pointer to store any URI fragment or NULL

 

fragment_len_p

address of length variable or NULL

 

Returns

A newly allocated string with the filename or NULL on failure


raptor_uri_print ()

int
raptor_uri_print (const raptor_uri *uri,
                  FILE *stream);

Print a URI to a file handle.

Parameters

uri

URI to print

 

stream

The file handle to print to

 

Returns

non-0 on failure


raptor_uri_get_world ()

raptor_world *
raptor_uri_get_world (raptor_uri *uri);

Get the raptor_world object associated with a raptor_uri.

Parameters

uri

raptor_uri object

 

Returns

raptor_world object


raptor_uri_write ()

int
raptor_uri_write (raptor_uri *uri,
                  raptor_iostream *iostr);

Write a raptor URI to the iostream.

Parameters

uri

URI

 

iostr

raptor iostream

 

Returns

non-0 on failure


raptor_uri_file_exists ()

int
raptor_uri_file_exists (raptor_uri *uri);

Check if a file: URI is a file that exists

Parameters

uri

URI string

 

Returns

> 0 if file exists, 0 if does not exist, < 0 if not a file URI or error


raptor_uri_filename_exists ()

int
raptor_uri_filename_exists (const unsigned char *path);

Check if path points to a file that exists

Parameters

path

file path

 

Returns

> 0 if file exists, 0 if does not exist, < 0 on error


raptor_uri_to_turtle_counted_string ()

unsigned char *
raptor_uri_to_turtle_counted_string (raptor_world *world,
                                     raptor_uri *uri,
                                     raptor_namespace_stack *nstack,
                                     raptor_uri *base_uri,
                                     size_t *len_p);

Convert raptor_uri to a string. Caller has responsibility to free the string.

Note: This creates and destroys several internal objects for each call so for more efficient writing, create a turtle serializer.

Parameters

world

world

 

uri

uri

 

nstack

namespace stack

 

base_uri

base URI

 

len_p

Pointer to location to store length of new string (if not NULL)

 

Returns

the new string or NULL on failure. The length of the new string is returned in *len_p if len_p is not NULL.


raptor_uri_to_turtle_string ()

unsigned char *
raptor_uri_to_turtle_string (raptor_world *world,
                             raptor_uri *uri,
                             raptor_namespace_stack *nstack,
                             raptor_uri *base_uri);

Convert raptor_uri to a string. Caller has responsibility to free the string.

Note: This creates and destroys several internal objects for each call so for more efficient writing, create a turtle serializer.

Parameters

world

world

 

uri

uri

 

nstack

namespace stack

 

base_uri

base URI

 

Returns

the new string or NULL on failure.


raptor_uri_turtle_write ()

int
raptor_uri_turtle_write (raptor_world *world,
                         raptor_iostream *iostr,
                         raptor_uri *uri,
                         raptor_namespace_stack *nstack,
                         raptor_uri *base_uri);

Write raptor_uri to a stream in turtle syntax (using QNames).

Note: This creates and destroys several internal objects for each call so for more efficient writing, create a turtle serializer.

Parameters

world

world

 

iostr

iostream for writing

 

uri

uri

 

nstack

namespace stack

 

base_uri

base URI

 

Returns

non-0 on failure

Types and Values

raptor_uri

raptor_uri* raptor_uri;

Raptor URI Class.



Navigation: Redland Home Page

Copyright 2000-2023 Dave Beckett