XMLCan.xcc
Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com)
Copyright 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
XMLCanBuffer— Input buffer for XMLCan.
struct XMLCanBuffer_;
XMLCanBuffer_prefill— Prefill this XMLCanBuffer with a string.
void XMLCanBuffer_prefill(XMLCanBuffer this, const char *str);
XMLCanEvent— XMLCan event types for its pull API.
typedef enum { XMLCanEvent_XML, // XML declaration. XMLCanEvent_Comment, // Comment. XMLCanEvent_DOCTYPE, // DOCTYPE. XMLCanEvent_DTD, // DTD declaration. XMLCanEvent_PublicID, // Public ID. XMLCanEvent_SystemID, // System ID. XMLCanEvent_PI, // Processing Instruction. XMLCanEvent_STag, // Element start. XMLCanEvent_AttName, // Attribute name. XMLCanEvent_AttValue, // Attribute value text. XMLCanEvent_CharData, // Element text content. XMLCanEvent_CDATA, // CDATA section content. XMLCanEvent_ETag, // Element stop. XMLCanEvent_Error, // Parse error. XMLCanEvent_End, // End of input. XMLCanEvent__ } XMLCanEvent; typedef int8_t short_XMLCanEvent;
XMLCan_event
#define XMLCan_eventXML(this) (XMLCan_event(this) == XMLCanEvent_XML) #define XMLCan_eventComment(this) (XMLCan_event(this) == XMLCanEvent_Comment) #define XMLCan_eventDOCTYPE(this) (XMLCan_event(this) == XMLCanEvent_DOCTYPE) #define XMLCan_eventPublicID(this) (XMLCan_event(this) == XMLCanEvent_PublicID) #define XMLCan_eventSystemID(this) (XMLCan_event(this) == XMLCanEvent_SystemID) #define XMLCan_eventPI(this) (XMLCan_event(this) == XMLCanEvent_PI) #define XMLCan_eventSTag(this) (XMLCan_event(this) == XMLCanEvent_STag) #define XMLCan_eventAttName(this) (XMLCan_event(this) == XMLCanEvent_AttName) #define XMLCan_eventAttValue(this) (XMLCan_event(this) == XMLCanEvent_AttValue) #define XMLCan_eventCharData(this) (XMLCan_event(this) == XMLCanEvent_CharData) #define XMLCan_eventCDATA(this) (XMLCan_event(this) == XMLCanEvent_CDATA) #define XMLCan_eventETag(this) (XMLCan_event(this) == XMLCanEvent_ETag) #define XMLCan_eventError(this) (XMLCan_event(this) == XMLCanEvent_Error) #define XMLCan_eventEnd(this) (XMLCan_event(this) == XMLCanEvent_End)
XMLCanFlag— Flag for the XMLCan.
typedef enum { XMLCanFlag_Raw = 0x1, // Do not normalize AttValue and CharData. XMLCanFlag_Trim = 0x2, // Trim leading and trailing space in AttValue. XMLCanFlag_HTML = 0x4, // Accept HTML syntax that is not XML valid. XMLCanFlag__ } XMLCanFlag; typedef unsigned XMLCanFlags; typedef uint8_t short_XMLCanFlags;
XMLCan— XMLCan parser.
struct XMLCan_; //@args XMLCanBuffer buffer, //@args int (*lookup)(struct XMLCan_ *this, const char *name), XMLCanFlags flags
XMLCan_normalizeWhiteSpace— Normalize white space in text.
size_t XMLCan_normalizeWhiteSpace(const_XMLCan this, char *text, size_t size);
XMLCan_lookupEntity— Lookup a character entity by name.
int XMLCan_lookupEntity(XMLCan this, const char *name, size_t size);
XMLCan_expandEntity— Expand a character entity in place.
bool XMLCan_expandEntity(XMLCan this, char *start, char *stop);
XMLCan_expandEntities— Expand the character entities in text.
size_t XMLCan_expandEntities(XMLCan this, char *text, size_t size);
XMLCan_getEvent— Get the next XMLCanEvent.
XMLCanEvent XMLCan_getEvent(XMLCan this);
XMLCan_event— The current XMLCanEvent.
XMLCanEvent XMLCan_event(XMLCan this);
XMLCan_line— Current input line number.
int32_t XMLCan_line(XMLCan this);
XMLCan_error— Error message in case of parsing error.
const char * XMLCan_error(XMLCan this);
XMLCan_setError— Set the error state and message.
void XMLCan_setError(XMLCan this, const char *error);
XMLCan_quote— Quote character used for quoted strings.
char XMLCan_quote(XMLCan this);
XMLCan_name— Name of an element or an attribute.
This is defined for the STag, AttName, and ETag events. In case of parsing an empty element, the ETag name is zero-length.
const char * XMLCan_name(XMLCan this);
XMLCan_text— Text of element content or attribute value.
This is defined for the CharData, and AttValue events.
const char * XMLCan_text(XMLCan this);
XMLCan_size— Size of the XMLCan_name or XMLCan_text.
This is defined for the STag, AttName, AttValue, and ETag events.
size_t XMLCan_size(XMLCan this);
XMLCan_depth— Depth of the current XMLCanEvent.
The depth is incremented by STag, and decremented by ETag.
int32_t XMLCan_depth(XMLCan this);
XMLCanLatin1— Expand a Latin1 character entity.
int XMLCanLatin1(const char *name);
XMLCan_lookupLatin1— Lookup a Latin1 character entity.
int XMLCan_lookupLatin1(XMLCan this, const char *name);