1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: library of generic URI related routines 3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: library of generic URI related routines 4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Implements RFC 2396 5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software. 7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard 9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_URI_H__ 12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_URI_H__ 13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h> 15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/tree.h> 16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" { 19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlURI: 23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A parsed URI reference. This is a struct containing the various fields 25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * as described in RFC 2396 but separated for further processing. 26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Note: query is a deprecated field which is incorrectly unescaped. 28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * query_raw takes precedence over query if the former is set. 29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127 30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlURI xmlURI; 32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlURI *xmlURIPtr; 33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _xmlURI { 34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *scheme; /* the URI scheme */ 35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *opaque; /* opaque part */ 36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *authority; /* the authority part */ 37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *server; /* the server part */ 38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *user; /* the user part */ 39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int port; /* the port number */ 40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *path; /* the path string */ 41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *query; /* the query string (deprecated - use with caution) */ 42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *fragment; /* the fragment identifier */ 43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int cleanup; /* parsing potentially unclean URI */ 44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *query_raw; /* the query string (as it appears in the URI) */ 45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}; 46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * This function is in tree.h: 49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlChar * xmlNodeGetBase (xmlDocPtr doc, 50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlNodePtr cur); 51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 5260a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlURIPtr XMLCALL 53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCreateURI (void); 5460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar * XMLCALL 55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBuildURI (const xmlChar *URI, 5660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott const xmlChar *base); 5760a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar * XMLCALL 58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBuildRelativeURI (const xmlChar *URI, 5960a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott const xmlChar *base); 6060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlURIPtr XMLCALL 61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlParseURI (const char *str); 6260a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlURIPtr XMLCALL 63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlParseURIRaw (const char *str, 64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int raw); 6560a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL 66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlParseURIReference (xmlURIPtr uri, 67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *str); 6860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar * XMLCALL 69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlSaveUri (xmlURIPtr uri); 7060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN void XMLCALL 71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlPrintURI (FILE *stream, 72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlURIPtr uri); 7360a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar * XMLCALL 74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlURIEscapeStr (const xmlChar *str, 7560a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott const xmlChar *list); 7660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN char * XMLCALL 77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlURIUnescapeString (const char *str, 78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int len, 79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *target); 8060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL 81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNormalizeURIPath (char *path); 8260a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar * XMLCALL 83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlURIEscape (const xmlChar *str); 8460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN void XMLCALL 85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlFreeURI (xmlURIPtr uri); 8660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar* XMLCALL 87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCanonicPath (const xmlChar *path); 8860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlChar* XMLCALL 89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlPathToURI (const xmlChar *path); 90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} 93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_URI_H__ */ 95