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