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