Generated from xml_element.h with ROBODoc v3.2.3 on Sat Sep 29 15:45:37 2001

TABLE OF CONTENTS

  1. VALUE/XMLRPC_MACROS
  2. enum/XML_ELEM_ESCAPING
  3. enum/XML_ELEM_VERBOSITY
  4. struct/XML_ELEM_ERROR
  5. struct/XML_ELEM_INPUT_OPTIONS
  6. struct/XML_ELEM_OUTPUT_OPTIONS
  7. struct/xml_elem_attr
  8. struct/xml_elem_attr

VALUE/XMLRPC_MACROS

NAME
   Some Helpful Macros
NOTES
   Some macros for making life easier.  Should be self-explanatory.
SEE ALSO
   XMLRPC_AddValueToVector ()
   XMLRPC_VectorGetValueWithID_Case ()
   XMLRPC_VALUE
SOURCE
    #define xml_elem_next_element(el) ((el) ? (xml_element *)Q_Next(&el->children) : NULL)
    #define xml_elem_head_element(el) ((el) ? (xml_element *)Q_Head(&el->children) : NULL)
    #define xml_elem_next_attr(el) ((el) ? (xml_element_attr *)Q_Next(&el->attrs) : NULL)
    #define xml_elem_head_attr(el) ((el) ? (xml_element_attr *)Q_Head(&el->attrs) : NULL)
    #define xml_elem_get_name(el) (char *)((el) ? el->name : NULL)
    #define xml_elem_get_val(el) (char *)((el) ? el->text.str : NULL)

enum/XML_ELEM_ESCAPING

NAME
   XML_ELEM_ESCAPING
NOTES
 xml escaping options for generated xml
SEE ALSO
   XML_ELEM_OUTPUT_OPTIONS
SOURCE
    typedef enum _xml_elem_escaping {
       xml_elem_no_escaping             = 0x000,
       xml_elem_markup_escaping         = 0x002,   /* entity escape xml special chars         */
       xml_elem_non_ascii_escaping      = 0x008,   /* entity escape chars above 127           */
       xml_elem_non_print_escaping      = 0x010,   /* entity escape non print (illegal) chars */
       xml_elem_cdata_escaping          = 0x020,   /* wrap in cdata section                   */
    } XML_ELEM_ESCAPING;

enum/XML_ELEM_VERBOSITY

NAME
   XML_ELEM_VERBOSITY
NOTES
   verbosity/readability options for generated xml
SEE ALSO
   XML_ELEM_OUTPUT_OPTIONS
SOURCE
    typedef enum _xml_elem_verbosity {
       xml_elem_no_white_space,    /* compact xml with no white space            */
       xml_elem_newlines_only,     /* add newlines for enhanced readability      */
       xml_elem_pretty             /* add newlines and indent accordint to depth */
    } XML_ELEM_VERBOSITY;

struct/XML_ELEM_ERROR

NAME
   XML_ELEM_ERROR
NOTES
   defines an xml parser error
SOURCE
    typedef struct _xml_elem_error {
      int parser_code;
      const char* parser_error;
      long line;
      long column;
      long byte_index;
    } STRUCT_XML_ELEM_ERROR, *XML_ELEM_ERROR;

struct/XML_ELEM_INPUT_OPTIONS

NAME
   XML_ELEM_INPUT_OPTIONS
NOTES
   defines various input options
SOURCE
    typedef struct _xml_input_options {
      ENCODING_ID                  encoding;       /* which encoding to use.       */
    } STRUCT_XML_ELEM_INPUT_OPTIONS, *XML_ELEM_INPUT_OPTIONS;

struct/XML_ELEM_OUTPUT_OPTIONS

NAME
   XML_ELEM_OUTPUT_OPTIONS
NOTES
   defines various output options
SOURCE
    typedef struct _xml_output_options {
       XML_ELEM_VERBOSITY           verbosity;      /* length/verbosity of xml        */
       XML_ELEM_ESCAPING            escaping;       /* how to escape special chars    */
       const char*                  encoding;       /* <?xml encoding="<encoding>" ?> */
    } STRUCT_XML_ELEM_OUTPUT_OPTIONS, *XML_ELEM_OUTPUT_OPTIONS;

struct/xml_elem_attr

NAME
  xml_elem_attr
NOTES
   representation of an xml attribute, foo="bar"
SOURCE
    typedef struct _xml_element_attr {
       char* key;        /* attribute key   */
       char* val;        /* attribute value */
    } xml_element_attr;

struct/xml_elem_attr

NAME
  xml_elem_attr
NOTES
   representation of an xml element, eg <candidate name="Harry Browne" party="Libertarian"/>
SOURCE
    typedef struct _xml_element {
       const char*   name;           /* element identifier */
       simplestring  text;           /* text contained between element begin/end pairs */
       struct _xml_element* parent;  /* element's parent */
                                     
       queue        attrs;           /* attribute list */
       queue        children;        /* child element list */
    } xml_element;