xref: /aosp_15_r20/external/libxml2/include/libxml/uri.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
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