fred-mod-eppd
Macros
Macros for convenient xml document construction.

Macros

#define START_ELEMENT(writer, err_handler, elem)
 
#define WRITE_ELEMENT(writer, err_handler, elem, str)
 
#define WRITE_ELEMENT_IF_NONEMPTY(writer, err_handler, elem, str)
 
#define WRITE_STRING(writer, err_handler, str)
 
#define WRITE_ATTRIBUTE(writer, err_handler, attr_name, attr_value)
 
#define END_ELEMENT(writer, err_handler)
 

Detailed Description

Following macros are shortcuts used for document creation. So that we don't have to clutter the code with error checking and other stuff. That makes the code much more readable.

All macros assume that

Macro Definition Documentation

◆ END_ELEMENT

#define END_ELEMENT (   writer,
  err_handler 
)
Value:
do \
{ \
if (xmlTextWriterEndElement(writer) < 0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterEndElement() function.

◆ START_ELEMENT

#define START_ELEMENT (   writer,
  err_handler,
  elem 
)
Value:
do \
{ \
if (xmlTextWriterStartElement(writer, BAD_CAST(elem)) < 0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterStartElement() function.

◆ WRITE_ATTRIBUTE

#define WRITE_ATTRIBUTE (   writer,
  err_handler,
  attr_name,
  attr_value 
)
Value:
do \
{ \
if ((attr_value) != NULL) \
if (xmlTextWriterWriteAttribute(writer, BAD_CAST(attr_name), BAD_CAST(attr_value)) < \
0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterWriteAttribute() function.

◆ WRITE_ELEMENT

#define WRITE_ELEMENT (   writer,
  err_handler,
  elem,
  str 
)
Value:
do \
{ \
if ((str) != NULL) \
if (xmlTextWriterWriteElement(writer, BAD_CAST(elem), BAD_CAST(str)) < 0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterWriteElement() function.

◆ WRITE_ELEMENT_IF_NONEMPTY

#define WRITE_ELEMENT_IF_NONEMPTY (   writer,
  err_handler,
  elem,
  str 
)
Value:
do \
{ \
if (((str) != NULL) && (*(str) != '\0')) \
if (xmlTextWriterWriteElement(writer, BAD_CAST(elem), BAD_CAST(str)) < 0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterWriteElement() function.

◆ WRITE_STRING

#define WRITE_STRING (   writer,
  err_handler,
  str 
)
Value:
do \
{ \
if ((str) != NULL) \
if (xmlTextWriterWriteString(writer, BAD_CAST(str)) < 0) \
goto err_handler; \
} while (0)

Wrapper around libxml's xmlTextWriterWriteString() function.