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);