#ifndef __XML_URI_H__
#define __XML_URI_H__
#include <libxml/xmlversion.h>
#include <libxml/tree.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _xmlURI xmlURI;
typedef xmlURI *xmlURIPtr;
struct _xmlURI {
char *scheme;
char *opaque;
char *authority;
char *server;
char *user;
int port;
char *path;
char *query;
char *fragment;
int cleanup;
char *query_raw;
};
XMLPUBFUN xmlURIPtr xmlParseURI(const char *str);
XMLPUBFUN xmlURIPtr xmlParseURIRaw(const char *str, int raw);
XMLPUBFUN int
xmlParseURIReference(xmlURIPtr uri, const char *str);
XMLPUBFUN void xmlFreeURI(xmlURIPtr uri);
XMLPUBFUN xmlChar *xmlSaveUri(xmlURIPtr uri);
XMLPUBFUN char *xmlURIUnescapeString(const char *str, int len, char *target);
XMLPUBFUN char *xmlURIEscapeStr(const char *str, const char *list);
XMLPUBFUN int xmlNormalizeURIPath(char *path);
XMLPUBFUN xmlChar * xmlBuildRelativeURI (const xmlChar *URI, const xmlChar *base);
XMLPUBFUN int xmlBuildRelativeURISafe (const xmlChar *URI, const xmlChar *base, xmlChar **out);
XMLPUBFUN xmlChar * xmlBuildURI (const xmlChar *URI, const xmlChar *base);
XMLPUBFUN int xmlBuildURISafe (const xmlChar *URI, const xmlChar *base, xmlChar **out);
XMLPUBFUN xmlChar* xmlCanonicPath (const xmlChar *path);
XMLPUBFUN xmlURI * xmlCreateURI (void);
XMLPUBFUN int xmlParseURISafe (const char *str, xmlURI **uri);
XMLPUBFUN xmlChar* xmlPathToURI (const xmlChar *path);
XMLPUBFUN void xmlPrintURI (FILE *stream, xmlURI *uri);
XMLPUBFUN xmlChar * xmlURIEscape (const xmlChar *str);
#ifdef __cplusplus
}
#endif
#endif