|
libxml2
|
library of generic URI related routines More...
Data Structures | |
| struct | _xmlURI |
| A parsed URI reference. More... | |
Typedefs | |
| typedef struct _xmlURI | xmlURI |
| Parsed URI. | |
Functions | |
| xmlURI * | xmlCreateURI (void) |
| Simply creates an empty xmlURI. | |
| int | xmlBuildURISafe (const xmlChar *URI, const xmlChar *base, xmlChar **out) |
| Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. | |
| xmlChar * | xmlBuildURI (const xmlChar *URI, const xmlChar *base) |
| Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. | |
| int | xmlBuildRelativeURISafe (const xmlChar *URI, const xmlChar *base, xmlChar **out) |
| Expresses the URI of the reference in terms relative to the base. | |
| xmlChar * | xmlBuildRelativeURI (const xmlChar *URI, const xmlChar *base) |
| See xmlBuildRelativeURISafe. | |
| xmlURI * | xmlParseURI (const char *str) |
| Parse an URI based on RFC 3986. | |
| int | xmlParseURISafe (const char *str, xmlURI **uri) |
| Parse an URI based on RFC 3986. | |
| xmlURI * | xmlParseURIRaw (const char *str, int raw) |
| Parse an URI but allows to keep intact the original fragments. | |
| int | xmlParseURIReference (xmlURI *uri, const char *str) |
| Parse an URI reference string based on RFC 3986 and fills in the appropriate fields of the uri structure. | |
| xmlChar * | xmlSaveUri (xmlURI *uri) |
| Save the URI as an escaped string. | |
| void | xmlPrintURI (FILE *stream, xmlURI *uri) |
| Prints the URI in the stream stream. | |
| xmlChar * | xmlURIEscapeStr (const xmlChar *str, const xmlChar *list) |
| This routine escapes a string to hex, ignoring unreserved characters a-z, A-Z, 0-9, "-._~", a few sub-delims "!*'()", the gen-delim "@" (why?) and the characters in the exception list. | |
| char * | xmlURIUnescapeString (const char *str, int len, char *target) |
| Unescaping routine, but does not check that the string is an URI. | |
| int | xmlNormalizeURIPath (char *path) |
| Applies the 5 normalization steps to a path string–that is, RFC 2396 Section 5.2, steps 6.c through 6.g. | |
| xmlChar * | xmlURIEscape (const xmlChar *str) |
| Escaping routine, does not do validity checks ! | |
| void | xmlFreeURI (xmlURI *uri) |
| Free up the xmlURI struct. | |
| xmlChar * | xmlCanonicPath (const xmlChar *path) |
| Prepares a path. | |
| xmlChar * | xmlPathToURI (const xmlChar *path) |
| Constructs an URI expressing the existing path. | |
library of generic URI related routines
library of generic URI related routines Implements RFC 2396
| URI | the URI reference under consideration |
| base | the base value |
Expresses the URI of the reference in terms relative to the base.
Some examples of this operation include:
base = "http://site1.com/docs/book1.html" URI input URI returned http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = "docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif
| URI | the URI reference under consideration |
| base | the base value |
| valPtr | pointer to result URI |
Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI.
This is processed according to section 5.2 of the RFC 2396
5.2. Resolving Relative References to Absolute Form
| URI | the URI instance found in the document |
| base | the base value |
Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI.
This is processed according to section 5.2 of the RFC 2396
5.2. Resolving Relative References to Absolute Form
| URI | the URI instance found in the document |
| base | the base value |
| valPtr | pointer to result URI |
Prepares a path.
If the path contains the substring "://", it is considered a Legacy Extended IRI. Characters which aren't allowed in URIs are escaped.
Otherwise, the path is considered a filesystem path which is copied without modification.
The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.
| path | the resource locator in a filesystem notation |
| xmlURI * xmlCreateURI | ( | void | ) |
Simply creates an empty xmlURI.
| int xmlNormalizeURIPath | ( | char * | path | ) |
Applies the 5 normalization steps to a path string–that is, RFC 2396 Section 5.2, steps 6.c through 6.g.
Normalization occurs directly on the string, no new allocation is done
| path | pointer to the path string |
| xmlURI * xmlParseURI | ( | const char * | str | ) |
Parse an URI based on RFC 3986.
URI-reference = [ absoluteURI | relativeURI ] [ "\#" fragment ]
| str | the URI string to analyze |
| xmlURI * xmlParseURIRaw | ( | const char * | str, |
| int | raw ) |
Parse an URI but allows to keep intact the original fragments.
URI-reference = URI / relative-ref
| str | the URI string to analyze |
| raw | if 1 unescaping of URI pieces are disabled |
| int xmlParseURIReference | ( | xmlURI * | uri, |
| const char * | str ) |
Parse an URI reference string based on RFC 3986 and fills in the appropriate fields of the uri structure.
URI-reference = URI / relative-ref
| uri | pointer to an URI structure |
| str | the string to analyze |
| int xmlParseURISafe | ( | const char * | str, |
| xmlURI ** | uriOut ) |
Parse an URI based on RFC 3986.
URI-reference = [ absoluteURI | relativeURI ] [ "\#" fragment ]
| str | the URI string to analyze |
| uriOut | optional pointer to parsed URI |
Constructs an URI expressing the existing path.
| path | the resource locator in a filesystem notation |
| void xmlPrintURI | ( | FILE * | stream, |
| xmlURI * | uri ) |
Prints the URI in the stream stream.
| stream | a FILE* for the output |
| uri | pointer to an xmlURI |
Save the URI as an escaped string.
| uri | pointer to an xmlURI |
Escaping routine, does not do validity checks !
It will try to escape the chars needing this, but this is heuristic based it's impossible to be sure.
25 May 2001 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly according to RFC2396.
| str | the string of the URI to escape |
This routine escapes a string to hex, ignoring unreserved characters a-z, A-Z, 0-9, "-._~", a few sub-delims "!*'()", the gen-delim "@" (why?) and the characters in the exception list.
| str | string to escape |
| list | exception list string of chars not to escape |
| char * xmlURIUnescapeString | ( | const char * | str, |
| int | len, | ||
| char * | target ) |
Unescaping routine, but does not check that the string is an URI.
The output is a direct unsigned char translation of XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.
| str | the string to unescape |
| len | the length in bytes to unescape (or <= 0 to indicate full string) |
| target | optional destination buffer |