Collaboration diagram for XML:

Data Structures

struct  apr_text
struct  apr_text_header
struct  apr_xml_attr
struct  apr_xml_elem
struct  apr_xml_doc


#define APR_XML_NS_DAV_ID   0
#define APR_XML_NS_NONE   -10
#define APR_XML_NS_ERROR_BASE   -100
#define APR_XML_X2T_FULL   0
#define APR_XML_X2T_INNER   1
#define APR_XML_X2T_LANG_INNER   2
#define APR_XML_X2T_FULL_NS_LANG   3
#define APR_XML_X2T_PARSED   4
#define APR_XML_GET_URI_ITEM(ary, i)   (((const char * const *)(ary)->elts)[i])


typedef struct apr_text apr_text
typedef struct apr_text_header apr_text_header
typedef struct apr_xml_attr apr_xml_attr
typedef struct apr_xml_elem apr_xml_elem
typedef struct apr_xml_doc apr_xml_doc
typedef struct apr_xml_parser apr_xml_parser


void apr_text_append (apr_pool_t *p, apr_text_header *hdr, const char *text)
apr_xml_parserapr_xml_parser_create (apr_pool_t *pool)
apr_status_t apr_xml_parse_file (apr_pool_t *p, apr_xml_parser **parser, apr_xml_doc **ppdoc, apr_file_t *xmlfd, apr_size_t buffer_length)
apr_status_t apr_xml_parser_feed (apr_xml_parser *parser, const char *data, apr_size_t len)
apr_status_t apr_xml_parser_done (apr_xml_parser *parser, apr_xml_doc **pdoc)
char * apr_xml_parser_geterror (apr_xml_parser *parser, char *errbuf, apr_size_t errbufsize)
void apr_xml_to_text (apr_pool_t *p, const apr_xml_elem *elem, int style, apr_array_header_t *namespaces, int *ns_map, const char **pbuf, apr_size_t *psize)
const char * apr_xml_empty_elem (apr_pool_t *p, const apr_xml_elem *elem)
const char * apr_xml_quote_string (apr_pool_t *p, const char *s, int quotes)
void apr_xml_quote_elem (apr_pool_t *p, apr_xml_elem *elem)
int apr_xml_insert_uri (apr_array_header_t *uri_array, const char *uri)

Detailed Description

Macro Definition Documentation


#define APR_XML_ELEM_IS_EMPTY (   e)
((e)->first_child == NULL && \
(e)->first_cdata.first == NULL)

Is this XML element empty?


#define APR_XML_GET_URI_ITEM (   ary,
)    (((const char * const *)(ary)->elts)[i])

Get the URI item for this XML element


#define APR_XML_NS_DAV_ID   0

namespace ID for "DAV:"


#define APR_XML_NS_ERROR_BASE   -100

used only during processing


#define APR_XML_NS_IS_ERROR (   e)    ((e) <= APR_XML_NS_ERROR_BASE)

Is this namespace an error?


#define APR_XML_NS_NONE   -10

no namespace for this elem/attr


#define APR_XML_X2T_FULL   0

start tag, contents, end tag


#define APR_XML_X2T_FULL_NS_LANG   3

FULL + ns defns + xml:lang


#define APR_XML_X2T_INNER   1

contents only


#define APR_XML_X2T_LANG_INNER   2

xml:lang + inner contents


#define APR_XML_X2T_PARSED   4

original prefixes

Typedef Documentation

◆ apr_text

typedef struct apr_text apr_text
See also

◆ apr_text_header

◆ apr_xml_attr

typedef struct apr_xml_attr apr_xml_attr
See also

◆ apr_xml_doc

typedef struct apr_xml_doc apr_xml_doc
See also

◆ apr_xml_elem

typedef struct apr_xml_elem apr_xml_elem
See also

◆ apr_xml_parser

Opaque XML parser structure

Function Documentation

◆ apr_text_append()

void apr_text_append ( apr_pool_t p,
apr_text_header hdr,
const char *  text 

Append a piece of text to the end of a list

pThe pool to allocate out of
hdrThe text header to append to
textThe new text to append

◆ apr_xml_empty_elem()

const char* apr_xml_empty_elem ( apr_pool_t p,
const apr_xml_elem elem 

empty XML element

pThe pool to allocate out of
elemThe XML element to empty
the string that was stored in the XML element

◆ apr_xml_insert_uri()

int apr_xml_insert_uri ( apr_array_header_t uri_array,
const char *  uri 

return the URI's (existing) index, or insert it and return a new index

uri_arrayarray to insert into
uriThe uri to insert
int The uri's index

◆ apr_xml_parse_file()

apr_status_t apr_xml_parse_file ( apr_pool_t p,
apr_xml_parser **  parser,
apr_xml_doc **  ppdoc,
apr_file_t xmlfd,
apr_size_t  buffer_length 

Parse a File, producing a xml_doc

pThe pool for allocating the parse results.
parserA pointer to *parser (needed so calling function can get errors), will be set to NULL on successful completion.
ppdocA pointer to *apr_xml_doc (which has the parsed results in it)
xmlfdA file to read from.
buffer_lengthBuffer length which would be suitable
Any errors found during parsing.

◆ apr_xml_parser_create()

apr_xml_parser* apr_xml_parser_create ( apr_pool_t pool)

Create an XML parser

poolThe pool for allocating the parser and the parse results.
The new parser.

◆ apr_xml_parser_done()

apr_status_t apr_xml_parser_done ( apr_xml_parser parser,
apr_xml_doc **  pdoc 

Terminate the parsing and return the result

parserThe XML parser for parsing this data.
pdocThe resulting parse information. May be NULL to simply terminate the parsing without fetching the info.
Any errors found during the final stage of parsing.
Use apr_xml_parser_geterror() to get more error information.

◆ apr_xml_parser_feed()

apr_status_t apr_xml_parser_feed ( apr_xml_parser parser,
const char *  data,
apr_size_t  len 

Feed input into the parser

parserThe XML parser for parsing this data.
dataThe data to parse.
lenThe length of the data.
Any errors found during parsing.
Use apr_xml_parser_geterror() to get more error information.

◆ apr_xml_parser_geterror()

char* apr_xml_parser_geterror ( apr_xml_parser parser,
char *  errbuf,
apr_size_t  errbufsize 

Fetch additional error information from the parser.

parserThe XML parser to query for errors.
errbufA buffer for storing error text.
errbufsizeThe length of the error text buffer.
The error buffer

◆ apr_xml_quote_elem()

void apr_xml_quote_elem ( apr_pool_t p,
apr_xml_elem elem 

Quote an XML element

pThe pool to allocate out of
elemThe element to quote

◆ apr_xml_quote_string()

const char* apr_xml_quote_string ( apr_pool_t p,
const char *  s,
int  quotes 

quote an XML string Replace '<', '>', and '&' with '&lt;', '&gt;', and '&amp;'.

pThe pool to allocate out of
sThe string to quote
quotesIf quotes is true, then replace '"' with '&quot;'.
The quoted string
If the string does not contain special characters, it is not duplicated into the pool and the original string is returned.

◆ apr_xml_to_text()

void apr_xml_to_text ( apr_pool_t p,
const apr_xml_elem elem,
int  style,
apr_array_header_t namespaces,
int ns_map,
const char **  pbuf,
apr_size_t psize 

Converts an XML element tree to flat text

pThe pool to allocate out of
elemThe XML element to convert
styleHow to covert the XML. One of:
    APR_XML_X2T_FULL                start tag, contents, end tag
    APR_XML_X2T_INNER               contents only
    APR_XML_X2T_LANG_INNER          xml:lang + inner contents
    APR_XML_X2T_FULL_NS_LANG        FULL + ns defns + xml:lang
    APR_XML_X2T_PARSED              original prefixes
namespacesThe namespace of the current XML element
ns_mapNamespace mapping
pbufBuffer to put the converted text into
psizeSize of the converted text