uri.h 1.65 KB
Newer Older
1 2 3 4 5 6 7
/**
 * uri.c: library of generic URI related routines 
 *
 * Reference: RFC 2396
 *
 * See Copyright for the status of this software.
 *
8
 * daniel@veillard.com
9 10 11 12 13 14 15 16 17 18 19 20
 */

#ifndef __XML_URI_H__
#define __XML_URI_H__

#include <libxml/tree.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
21
 * xmlURI:
22
 *
23 24
 * A parsed URI reference. This is a struct containing the various fields
 * as described in RFC 2396 but separated for further processing
25 26 27 28
 */
typedef struct _xmlURI xmlURI;
typedef xmlURI *xmlURIPtr;
struct _xmlURI {
29 30 31 32 33 34 35 36 37
    char *scheme;	/* the URI scheme */
    char *opaque;	/* opaque part */
    char *authority;	/* the authority part */
    char *server;	/* the server part */
    char *user;		/* the user part */
    int port;		/* the port number */
    char *path;		/* the path string */
    char *query;	/* the query string */
    char *fragment;	/* the fragment identifier */
38 39 40 41 42 43 44 45 46 47
};

/*
 * This function is in tree.h:
 * xmlChar *	xmlNodeGetBase	(xmlDocPtr doc,
 *                               xmlNodePtr cur);
 */
xmlURIPtr	xmlCreateURI		(void);
xmlChar *	xmlBuildURI		(const xmlChar *URI,
	                        	 const xmlChar *base);
48
xmlURIPtr	xmlParseURI		(const char *str);
49 50 51 52 53
int		xmlParseURIReference	(xmlURIPtr uri,
					 const char *str);
xmlChar *	xmlSaveUri		(xmlURIPtr uri);
void		xmlPrintURI		(FILE *stream,
					 xmlURIPtr uri);
54 55
xmlChar *       xmlURIEscapeStr         (const xmlChar *str,
 					 const xmlChar *list);
56 57 58 59 60 61 62 63 64 65 66
char *		xmlURIUnescapeString	(const char *str,
					 int len,
					 char *target);
int		xmlNormalizeURIPath	(char *path);
xmlChar *	xmlURIEscape		(const xmlChar *str);
void		xmlFreeURI		(xmlURIPtr uri);

#ifdef __cplusplus
}
#endif
#endif /* __XML_URI_H__ */