Initial revision
[TestXSLT.git] / libxml2 / include / libxml / uri.h
1 /**
2  * uri.c: library of generic URI related routines 
3  *
4  * Reference: RFC 2396
5  *
6  * See Copyright for the status of this software.
7  *
8  * daniel@veillard.com
9  */
10
11 #ifndef __XML_URI_H__
12 #define __XML_URI_H__
13
14 #include <libxml/tree.h>
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 /**
21  * xmlURI:
22  *
23  * A parsed URI reference. This is a struct containing the various fields
24  * as described in RFC 2396 but separated for further processing.
25  */
26 typedef struct _xmlURI xmlURI;
27 typedef xmlURI *xmlURIPtr;
28 struct _xmlURI {
29     char *scheme;       /* the URI scheme */
30     char *opaque;       /* opaque part */
31     char *authority;    /* the authority part */
32     char *server;       /* the server part */
33     char *user;         /* the user part */
34     int port;           /* the port number */
35     char *path;         /* the path string */
36     char *query;        /* the query string */
37     char *fragment;     /* the fragment identifier */
38     int  cleanup;       /* parsing potentially unclean URI */
39 };
40
41 /*
42  * This function is in tree.h:
43  * xmlChar *    xmlNodeGetBase  (xmlDocPtr doc,
44  *                               xmlNodePtr cur);
45  */
46 xmlURIPtr       xmlCreateURI            (void);
47 xmlChar *       xmlBuildURI             (const xmlChar *URI,
48                                          const xmlChar *base);
49 xmlURIPtr       xmlParseURI             (const char *str);
50 int             xmlParseURIReference    (xmlURIPtr uri,
51                                          const char *str);
52 xmlChar *       xmlSaveUri              (xmlURIPtr uri);
53 void            xmlPrintURI             (FILE *stream,
54                                          xmlURIPtr uri);
55 xmlChar *       xmlURIEscapeStr         (const xmlChar *str,
56                                          const xmlChar *list);
57 char *          xmlURIUnescapeString    (const char *str,
58                                          int len,
59                                          char *target);
60 int             xmlNormalizeURIPath     (char *path);
61 xmlChar *       xmlURIEscape            (const xmlChar *str);
62 void            xmlFreeURI              (xmlURIPtr uri);
63 xmlChar*        xmlCanonicPath          (const xmlChar *path);
64
65 #ifdef __cplusplus
66 }
67 #endif
68 #endif /* __XML_URI_H__ */