1*7c568831SAndroid Build Coastguard Worker /** 2*7c568831SAndroid Build Coastguard Worker * Summary: library of generic URI related routines 3*7c568831SAndroid Build Coastguard Worker * Description: library of generic URI related routines 4*7c568831SAndroid Build Coastguard Worker * Implements RFC 2396 5*7c568831SAndroid Build Coastguard Worker * 6*7c568831SAndroid Build Coastguard Worker * Copy: See Copyright for the status of this software. 7*7c568831SAndroid Build Coastguard Worker * 8*7c568831SAndroid Build Coastguard Worker * Author: Daniel Veillard 9*7c568831SAndroid Build Coastguard Worker */ 10*7c568831SAndroid Build Coastguard Worker 11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_URI_H__ 12*7c568831SAndroid Build Coastguard Worker #define __XML_URI_H__ 13*7c568831SAndroid Build Coastguard Worker 14*7c568831SAndroid Build Coastguard Worker #include <stdio.h> 15*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h> 16*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlstring.h> 17*7c568831SAndroid Build Coastguard Worker 18*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 19*7c568831SAndroid Build Coastguard Worker extern "C" { 20*7c568831SAndroid Build Coastguard Worker #endif 21*7c568831SAndroid Build Coastguard Worker 22*7c568831SAndroid Build Coastguard Worker /** 23*7c568831SAndroid Build Coastguard Worker * xmlURI: 24*7c568831SAndroid Build Coastguard Worker * 25*7c568831SAndroid Build Coastguard Worker * A parsed URI reference. This is a struct containing the various fields 26*7c568831SAndroid Build Coastguard Worker * as described in RFC 2396 but separated for further processing. 27*7c568831SAndroid Build Coastguard Worker * 28*7c568831SAndroid Build Coastguard Worker * Note: query is a deprecated field which is incorrectly unescaped. 29*7c568831SAndroid Build Coastguard Worker * query_raw takes precedence over query if the former is set. 30*7c568831SAndroid Build Coastguard Worker * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127 31*7c568831SAndroid Build Coastguard Worker */ 32*7c568831SAndroid Build Coastguard Worker typedef struct _xmlURI xmlURI; 33*7c568831SAndroid Build Coastguard Worker typedef xmlURI *xmlURIPtr; 34*7c568831SAndroid Build Coastguard Worker struct _xmlURI { 35*7c568831SAndroid Build Coastguard Worker char *scheme; /* the URI scheme */ 36*7c568831SAndroid Build Coastguard Worker char *opaque; /* opaque part */ 37*7c568831SAndroid Build Coastguard Worker char *authority; /* the authority part */ 38*7c568831SAndroid Build Coastguard Worker char *server; /* the server part */ 39*7c568831SAndroid Build Coastguard Worker char *user; /* the user part */ 40*7c568831SAndroid Build Coastguard Worker int port; /* the port number */ 41*7c568831SAndroid Build Coastguard Worker char *path; /* the path string */ 42*7c568831SAndroid Build Coastguard Worker char *query; /* the query string (deprecated - use with caution) */ 43*7c568831SAndroid Build Coastguard Worker char *fragment; /* the fragment identifier */ 44*7c568831SAndroid Build Coastguard Worker int cleanup; /* parsing potentially unclean URI */ 45*7c568831SAndroid Build Coastguard Worker char *query_raw; /* the query string (as it appears in the URI) */ 46*7c568831SAndroid Build Coastguard Worker }; 47*7c568831SAndroid Build Coastguard Worker 48*7c568831SAndroid Build Coastguard Worker /* 49*7c568831SAndroid Build Coastguard Worker * This function is in tree.h: 50*7c568831SAndroid Build Coastguard Worker * xmlChar * xmlNodeGetBase (xmlDocPtr doc, 51*7c568831SAndroid Build Coastguard Worker * xmlNodePtr cur); 52*7c568831SAndroid Build Coastguard Worker */ 53*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlURIPtr 54*7c568831SAndroid Build Coastguard Worker xmlCreateURI (void); 55*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 56*7c568831SAndroid Build Coastguard Worker xmlBuildURISafe (const xmlChar *URI, 57*7c568831SAndroid Build Coastguard Worker const xmlChar *base, 58*7c568831SAndroid Build Coastguard Worker xmlChar **out); 59*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar * 60*7c568831SAndroid Build Coastguard Worker xmlBuildURI (const xmlChar *URI, 61*7c568831SAndroid Build Coastguard Worker const xmlChar *base); 62*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 63*7c568831SAndroid Build Coastguard Worker xmlBuildRelativeURISafe (const xmlChar *URI, 64*7c568831SAndroid Build Coastguard Worker const xmlChar *base, 65*7c568831SAndroid Build Coastguard Worker xmlChar **out); 66*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar * 67*7c568831SAndroid Build Coastguard Worker xmlBuildRelativeURI (const xmlChar *URI, 68*7c568831SAndroid Build Coastguard Worker const xmlChar *base); 69*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlURIPtr 70*7c568831SAndroid Build Coastguard Worker xmlParseURI (const char *str); 71*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 72*7c568831SAndroid Build Coastguard Worker xmlParseURISafe (const char *str, 73*7c568831SAndroid Build Coastguard Worker xmlURIPtr *uri); 74*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlURIPtr 75*7c568831SAndroid Build Coastguard Worker xmlParseURIRaw (const char *str, 76*7c568831SAndroid Build Coastguard Worker int raw); 77*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 78*7c568831SAndroid Build Coastguard Worker xmlParseURIReference (xmlURIPtr uri, 79*7c568831SAndroid Build Coastguard Worker const char *str); 80*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar * 81*7c568831SAndroid Build Coastguard Worker xmlSaveUri (xmlURIPtr uri); 82*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 83*7c568831SAndroid Build Coastguard Worker xmlPrintURI (FILE *stream, 84*7c568831SAndroid Build Coastguard Worker xmlURIPtr uri); 85*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar * 86*7c568831SAndroid Build Coastguard Worker xmlURIEscapeStr (const xmlChar *str, 87*7c568831SAndroid Build Coastguard Worker const xmlChar *list); 88*7c568831SAndroid Build Coastguard Worker XMLPUBFUN char * 89*7c568831SAndroid Build Coastguard Worker xmlURIUnescapeString (const char *str, 90*7c568831SAndroid Build Coastguard Worker int len, 91*7c568831SAndroid Build Coastguard Worker char *target); 92*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 93*7c568831SAndroid Build Coastguard Worker xmlNormalizeURIPath (char *path); 94*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar * 95*7c568831SAndroid Build Coastguard Worker xmlURIEscape (const xmlChar *str); 96*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 97*7c568831SAndroid Build Coastguard Worker xmlFreeURI (xmlURIPtr uri); 98*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar* 99*7c568831SAndroid Build Coastguard Worker xmlCanonicPath (const xmlChar *path); 100*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar* 101*7c568831SAndroid Build Coastguard Worker xmlPathToURI (const xmlChar *path); 102*7c568831SAndroid Build Coastguard Worker 103*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 104*7c568831SAndroid Build Coastguard Worker } 105*7c568831SAndroid Build Coastguard Worker #endif 106*7c568831SAndroid Build Coastguard Worker #endif /* __XML_URI_H__ */ 107