|
|
@ -1,7 +1,7 @@ |
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
|
|
|
<HTML> |
|
|
|
<HTML> |
|
|
|
<HEAD> |
|
|
|
<HEAD> |
|
|
|
<TITLE>Mini-XML Programmers Manual, Version 2.2.1</TITLE> |
|
|
|
<TITLE>Mini-XML Programmers Manual, Version 2.2.3</TITLE> |
|
|
|
<META NAME="author" CONTENT="Michael Sweet"> |
|
|
|
<META NAME="author" CONTENT="Michael Sweet"> |
|
|
|
<META NAME="copyright" CONTENT="Copyright 2003-2005"> |
|
|
|
<META NAME="copyright" CONTENT="Copyright 2003-2005"> |
|
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1"> |
|
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1"> |
|
|
@ -19,8 +19,8 @@ PRE { font-family: monospace } |
|
|
|
--></STYLE> |
|
|
|
--></STYLE> |
|
|
|
</HEAD> |
|
|
|
</HEAD> |
|
|
|
<BODY> |
|
|
|
<BODY> |
|
|
|
<CENTER><A HREF="#CONTENTS"><IMG SRC="logo.png" BORDER="0" WIDTH="256" HEIGHT="256" ALT="Mini-XML Programmers Manual, Version 2.2.1"><BR> |
|
|
|
<CENTER><A HREF="#CONTENTS"><IMG SRC="logo.png" BORDER="0" WIDTH="256" HEIGHT="256" ALT="Mini-XML Programmers Manual, Version 2.2.3"><BR> |
|
|
|
<H1>Mini-XML Programmers Manual, Version 2.2.1</H1></A><BR> |
|
|
|
<H1>Mini-XML Programmers Manual, Version 2.2.3</H1></A><BR> |
|
|
|
Michael Sweet<BR> |
|
|
|
Michael Sweet<BR> |
|
|
|
Copyright 2003-2005<BR> |
|
|
|
Copyright 2003-2005<BR> |
|
|
|
</CENTER> |
|
|
|
</CENTER> |
|
|
@ -83,21 +83,22 @@ Copyright 2003-2005<BR> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<B><A HREF="#RELNOTES">B - Release Notes</A></B> |
|
|
|
<B><A HREF="#RELNOTES">B - Release Notes</A></B> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI><A HREF="#7_1">Changes in Mini-XML 2.2.2</A></LI> |
|
|
|
<LI><A HREF="#7_1">Changes in Mini-XML 2.2.3</A></LI> |
|
|
|
<LI><A HREF="#7_2">Changes in Mini-XML 2.2.1</A></LI> |
|
|
|
<LI><A HREF="#7_2">Changes in Mini-XML 2.2.2</A></LI> |
|
|
|
<LI><A HREF="#7_3">Changes in Mini-XML 2.2</A></LI> |
|
|
|
<LI><A HREF="#7_3">Changes in Mini-XML 2.2.1</A></LI> |
|
|
|
<LI><A HREF="#7_4">Changes in Mini-XML 2.1</A></LI> |
|
|
|
<LI><A HREF="#7_4">Changes in Mini-XML 2.2</A></LI> |
|
|
|
<LI><A HREF="#7_5">Changes in Mini-XML 2.0</A></LI> |
|
|
|
<LI><A HREF="#7_5">Changes in Mini-XML 2.1</A></LI> |
|
|
|
<LI><A HREF="#7_6">Changes in Mini-XML 1.3</A></LI> |
|
|
|
<LI><A HREF="#7_6">Changes in Mini-XML 2.0</A></LI> |
|
|
|
<LI><A HREF="#7_7">Changes in Mini-XML 1.2</A></LI> |
|
|
|
<LI><A HREF="#7_7">Changes in Mini-XML 1.3</A></LI> |
|
|
|
<LI><A HREF="#7_8">Changes in Mini-XML 1.1.2</A></LI> |
|
|
|
<LI><A HREF="#7_8">Changes in Mini-XML 1.2</A></LI> |
|
|
|
<LI><A HREF="#7_9">Changes in Mini-XML 1.1.1</A></LI> |
|
|
|
<LI><A HREF="#7_9">Changes in Mini-XML 1.1.2</A></LI> |
|
|
|
<LI><A HREF="#7_10">Changes in Mini-XML 1.1</A></LI> |
|
|
|
<LI><A HREF="#7_10">Changes in Mini-XML 1.1.1</A></LI> |
|
|
|
<LI><A HREF="#7_11">Changes in Mini-XML 1.0</A></LI> |
|
|
|
<LI><A HREF="#7_11">Changes in Mini-XML 1.1</A></LI> |
|
|
|
<LI><A HREF="#7_12">Changes in Mini-XML 0.93</A></LI> |
|
|
|
<LI><A HREF="#7_12">Changes in Mini-XML 1.0</A></LI> |
|
|
|
<LI><A HREF="#7_13">Changes in Mini-XML 0.92</A></LI> |
|
|
|
<LI><A HREF="#7_13">Changes in Mini-XML 0.93</A></LI> |
|
|
|
<LI><A HREF="#7_14">Changes in Mini-XML 0.91</A></LI> |
|
|
|
<LI><A HREF="#7_14">Changes in Mini-XML 0.92</A></LI> |
|
|
|
<LI><A HREF="#7_15">Changes in Mini-XML 0.9</A></LI> |
|
|
|
<LI><A HREF="#7_15">Changes in Mini-XML 0.91</A></LI> |
|
|
|
|
|
|
|
<LI><A HREF="#7_16">Changes in Mini-XML 0.9</A></LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<B><A HREF="#REFERENCE">C - Library Reference</A></B> |
|
|
|
<B><A HREF="#REFERENCE">C - Library Reference</A></B> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
@ -126,6 +127,7 @@ Copyright 2003-2005<BR> |
|
|
|
<LI><A HREF="#mxmlLoadFd">mxmlLoadFd()</A></LI> |
|
|
|
<LI><A HREF="#mxmlLoadFd">mxmlLoadFd()</A></LI> |
|
|
|
<LI><A HREF="#mxmlLoadFile">mxmlLoadFile()</A></LI> |
|
|
|
<LI><A HREF="#mxmlLoadFile">mxmlLoadFile()</A></LI> |
|
|
|
<LI><A HREF="#mxmlLoadString">mxmlLoadString()</A></LI> |
|
|
|
<LI><A HREF="#mxmlLoadString">mxmlLoadString()</A></LI> |
|
|
|
|
|
|
|
<LI><A HREF="#mxmlNewCDATA">mxmlNewCDATA()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewCustom">mxmlNewCustom()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewCustom">mxmlNewCustom()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewElement">mxmlNewElement()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewElement">mxmlNewElement()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewInteger">mxmlNewInteger()</A></LI> |
|
|
|
<LI><A HREF="#mxmlNewInteger">mxmlNewInteger()</A></LI> |
|
|
@ -138,6 +140,7 @@ Copyright 2003-2005<BR> |
|
|
|
<LI><A HREF="#mxmlSaveFd">mxmlSaveFd()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSaveFd">mxmlSaveFd()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSaveFile">mxmlSaveFile()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSaveFile">mxmlSaveFile()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSaveString">mxmlSaveString()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSaveString">mxmlSaveString()</A></LI> |
|
|
|
|
|
|
|
<LI><A HREF="#mxmlSetCDATA">mxmlSetCDATA()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetCustom">mxmlSetCustom()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetCustom">mxmlSetCustom()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetCustomHandlers">mxmlSetCustomHandlers()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetCustomHandlers">mxmlSetCustomHandlers()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetElement">mxmlSetElement()</A></LI> |
|
|
|
<LI><A HREF="#mxmlSetElement">mxmlSetElement()</A></LI> |
|
|
@ -169,7 +172,6 @@ Copyright 2003-2005<BR> |
|
|
|
<LI><A HREF="#mxml_index_t">mxml_index_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_index_t">mxml_index_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_node_t">mxml_node_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_node_t">mxml_node_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_text_t">mxml_text_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_text_t">mxml_text_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_type_t">mxml_type_t</A></LI> |
|
|
|
|
|
|
|
<LI><A HREF="#mxml_value_t">mxml_value_t</A></LI> |
|
|
|
<LI><A HREF="#mxml_value_t">mxml_value_t</A></LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
</LI> |
|
|
|
</LI> |
|
|
@ -181,7 +183,7 @@ Copyright 2003-2005<BR> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<HR NOSHADE> |
|
|
|
<HR NOSHADE> |
|
|
|
<H1 align="right"><A name="INTRO">Introduction</A></H1> |
|
|
|
<H1 align="right"><A name="INTRO">Introduction</A></H1> |
|
|
|
<P>This programmers manual describes Mini-XML version 2.2.1, a small XML |
|
|
|
<P>This programmers manual describes Mini-XML version 2.2.3, a small XML |
|
|
|
parsing library that you can use to read and write XML and XML-like |
|
|
|
parsing library that you can use to read and write XML and XML-like |
|
|
|
data files in your application without requiring large non-standard |
|
|
|
data files in your application without requiring large non-standard |
|
|
|
libraries. Mini-XML only requires an ANSI C compatible compiler (GCC |
|
|
|
libraries. Mini-XML only requires an ANSI C compatible compiler (GCC |
|
|
@ -1827,12 +1829,19 @@ Ty Coon, President of Vice |
|
|
|
<P>That's all there is to it!</P> |
|
|
|
<P>That's all there is to it!</P> |
|
|
|
<HR NOSHADE> |
|
|
|
<HR NOSHADE> |
|
|
|
<H1 align="right"><A name="RELNOTES">B - Release Notes</A></H1> |
|
|
|
<H1 align="right"><A name="RELNOTES">B - Release Notes</A></H1> |
|
|
|
<H2><A NAME="7_1">Changes in Mini-XML 2.2.2</A></H2> |
|
|
|
<H2><A NAME="7_1">Changes in Mini-XML 2.2.3</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
|
|
|
|
<LI>Added new mxmlNewCDATA() and mxmlSetCDATA() functions to create and |
|
|
|
|
|
|
|
set CDATA nodes, which are really just special element nodes.</LI> |
|
|
|
|
|
|
|
</UL> |
|
|
|
|
|
|
|
<H2><A NAME="7_2">Changes in Mini-XML 2.2.2</A></H2> |
|
|
|
|
|
|
|
<UL> |
|
|
|
|
|
|
|
<LI>Added new MXML_IGNORE type and MXML_IGNORE_CB callback to ignore |
|
|
|
|
|
|
|
non-element nodes (i.e. whitespace)</LI> |
|
|
|
<LI>mxmlLoad*() did not treat custom data as opaque, so whitespace |
|
|
|
<LI>mxmlLoad*() did not treat custom data as opaque, so whitespace |
|
|
|
characters would be lost.</LI> |
|
|
|
characters would be lost.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_2">Changes in Mini-XML 2.2.1</A></H2> |
|
|
|
<H2><A NAME="7_3">Changes in Mini-XML 2.2.1</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString() now correctly |
|
|
|
<LI>mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString() now correctly |
|
|
|
return NULL on error (STR #21)</LI> |
|
|
|
return NULL on error (STR #21)</LI> |
|
|
@ -1843,7 +1852,7 @@ Ty Coon, President of Vice |
|
|
|
proper permissions on UNIX/Linux/OSX.</LI> |
|
|
|
proper permissions on UNIX/Linux/OSX.</LI> |
|
|
|
<LI>Fixed a MingW/Cygwin compilation problem (STR #18)</LI> |
|
|
|
<LI>Fixed a MingW/Cygwin compilation problem (STR #18)</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_3">Changes in Mini-XML 2.2</A></H2> |
|
|
|
<H2><A NAME="7_4">Changes in Mini-XML 2.2</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>Added shared library support (STR #17)</LI> |
|
|
|
<LI>Added shared library support (STR #17)</LI> |
|
|
|
<LI>mxmlLoad*() now returns an error when an XML stream contains illegal |
|
|
|
<LI>mxmlLoad*() now returns an error when an XML stream contains illegal |
|
|
@ -1857,7 +1866,7 @@ Ty Coon, President of Vice |
|
|
|
<LI>Added checking for invalid comment termination ("--->" is not |
|
|
|
<LI>Added checking for invalid comment termination ("--->" is not |
|
|
|
allowed)</LI> |
|
|
|
allowed)</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_4">Changes in Mini-XML 2.1</A></H2> |
|
|
|
<H2><A NAME="7_5">Changes in Mini-XML 2.1</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>Added support for custom data nodes (STR #6)</LI> |
|
|
|
<LI>Added support for custom data nodes (STR #6)</LI> |
|
|
|
<LI>Now treat UTF-8 sequences which are longer than necessary as an |
|
|
|
<LI>Now treat UTF-8 sequences which are longer than necessary as an |
|
|
@ -1868,7 +1877,7 @@ Ty Coon, President of Vice |
|
|
|
<LI>Added mxmlLoadFd() and mxmlSaveFd() functions.</LI> |
|
|
|
<LI>Added mxmlLoadFd() and mxmlSaveFd() functions.</LI> |
|
|
|
<LI>Fixed multi-word UTF-16 handling.</LI> |
|
|
|
<LI>Fixed multi-word UTF-16 handling.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_5">Changes in Mini-XML 2.0</A></H2> |
|
|
|
<H2><A NAME="7_6">Changes in Mini-XML 2.0</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>New programmers manual.</LI> |
|
|
|
<LI>New programmers manual.</LI> |
|
|
|
<LI>Added Visual C++ project files for Microsoft Windows users.</LI> |
|
|
|
<LI>Added Visual C++ project files for Microsoft Windows users.</LI> |
|
|
@ -1901,7 +1910,7 @@ Ty Coon, President of Vice |
|
|
|
destination path and install path. This caused problems when building |
|
|
|
destination path and install path. This caused problems when building |
|
|
|
and installing with MingW.</LI> |
|
|
|
and installing with MingW.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_6">Changes in Mini-XML 1.3</A></H2> |
|
|
|
<H2><A NAME="7_7">Changes in Mini-XML 1.3</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>Fixes for mxmldoc.</LI> |
|
|
|
<LI>Fixes for mxmldoc.</LI> |
|
|
|
<LI>Added support for reading standard HTML entity names.</LI> |
|
|
|
<LI>Added support for reading standard HTML entity names.</LI> |
|
|
@ -1917,7 +1926,7 @@ Ty Coon, President of Vice |
|
|
|
<LI>The load and save functions now properly handle quoted element and |
|
|
|
<LI>The load and save functions now properly handle quoted element and |
|
|
|
attribute name strings properly, e.g. for !DOCTYPE declarations.</LI> |
|
|
|
attribute name strings properly, e.g. for !DOCTYPE declarations.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_7">Changes in Mini-XML 1.2</A></H2> |
|
|
|
<H2><A NAME="7_8">Changes in Mini-XML 1.2</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>Added new "set" methods to set the value of a node.</LI> |
|
|
|
<LI>Added new "set" methods to set the value of a node.</LI> |
|
|
|
<LI>Added new formatted text methods mxmlNewTextf() and mxmlSetTextf() |
|
|
|
<LI>Added new formatted text methods mxmlNewTextf() and mxmlSetTextf() |
|
|
@ -1930,13 +1939,13 @@ Ty Coon, President of Vice |
|
|
|
<LI>Added --with/without-snprintf configure option to control the |
|
|
|
<LI>Added --with/without-snprintf configure option to control the |
|
|
|
snprintf() and vsnprintf() function checks.</LI> |
|
|
|
snprintf() and vsnprintf() function checks.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_8">Changes in Mini-XML 1.1.2</A></H2> |
|
|
|
<H2><A NAME="7_9">Changes in Mini-XML 1.1.2</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>The mxml(3) man page wasn't updated for the string functions.</LI> |
|
|
|
<LI>The mxml(3) man page wasn't updated for the string functions.</LI> |
|
|
|
<LI>mxmlSaveString() returned the wrong number of characters.</LI> |
|
|
|
<LI>mxmlSaveString() returned the wrong number of characters.</LI> |
|
|
|
<LI>mxml_add_char() updated the buffer pointer in the wrong place.</LI> |
|
|
|
<LI>mxml_add_char() updated the buffer pointer in the wrong place.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_9">Changes in Mini-XML 1.1.1</A></H2> |
|
|
|
<H2><A NAME="7_10">Changes in Mini-XML 1.1.1</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>The private mxml_add_ch() function did not update the |
|
|
|
<LI>The private mxml_add_ch() function did not update the |
|
|
|
start-of-buffer pointer which could cause a crash when using |
|
|
|
start-of-buffer pointer which could cause a crash when using |
|
|
@ -1947,7 +1956,7 @@ Ty Coon, President of Vice |
|
|
|
<LI>Added a mxmlSaveAllocString() convenience function for saving an XML |
|
|
|
<LI>Added a mxmlSaveAllocString() convenience function for saving an XML |
|
|
|
node tree to an allocated string.</LI> |
|
|
|
node tree to an allocated string.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_10">Changes in Mini-XML 1.1</A></H2> |
|
|
|
<H2><A NAME="7_11">Changes in Mini-XML 1.1</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>The mxmlLoadFile() function now uses dynamically allocated string |
|
|
|
<LI>The mxmlLoadFile() function now uses dynamically allocated string |
|
|
|
buffers for element names, attribute names, and attribute values. |
|
|
|
buffers for element names, attribute names, and attribute values. |
|
|
@ -1959,7 +1968,7 @@ Ty Coon, President of Vice |
|
|
|
<LI>Add emulation of strdup() if the local platform does not provide the |
|
|
|
<LI>Add emulation of strdup() if the local platform does not provide the |
|
|
|
function.</LI> |
|
|
|
function.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_11">Changes in Mini-XML 1.0</A></H2> |
|
|
|
<H2><A NAME="7_12">Changes in Mini-XML 1.0</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>The mxmldoc program now handles function arguments, structures, |
|
|
|
<LI>The mxmldoc program now handles function arguments, structures, |
|
|
|
unions, enumerations, classes, and typedefs properly.</LI> |
|
|
|
unions, enumerations, classes, and typedefs properly.</LI> |
|
|
@ -1967,7 +1976,7 @@ Ty Coon, President of Vice |
|
|
|
code.</LI> |
|
|
|
code.</LI> |
|
|
|
<LI>Added man pages and packaging files.</LI> |
|
|
|
<LI>Added man pages and packaging files.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_12">Changes in Mini-XML 0.93</A></H2> |
|
|
|
<H2><A NAME="7_13">Changes in Mini-XML 0.93</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>New mxmldoc example program that is also used to create and update |
|
|
|
<LI>New mxmldoc example program that is also used to create and update |
|
|
|
code documentation using XML and produce HTML reference pages.</LI> |
|
|
|
code documentation using XML and produce HTML reference pages.</LI> |
|
|
@ -1992,15 +2001,15 @@ Ty Coon, President of Vice |
|
|
|
<LI>mxmlSaveFile() now supports a whitespace callback to provide more |
|
|
|
<LI>mxmlSaveFile() now supports a whitespace callback to provide more |
|
|
|
human-readable XML output under program control.</LI> |
|
|
|
human-readable XML output under program control.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_13">Changes in Mini-XML 0.92</A></H2> |
|
|
|
<H2><A NAME="7_14">Changes in Mini-XML 0.92</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>mxmlSaveFile() didn't return a value on success.</LI> |
|
|
|
<LI>mxmlSaveFile() didn't return a value on success.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_14">Changes in Mini-XML 0.91</A></H2> |
|
|
|
<H2><A NAME="7_15">Changes in Mini-XML 0.91</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>mxmlWalkNext() would go into an infinite loop.</LI> |
|
|
|
<LI>mxmlWalkNext() would go into an infinite loop.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
<H2><A NAME="7_15">Changes in Mini-XML 0.9</A></H2> |
|
|
|
<H2><A NAME="7_16">Changes in Mini-XML 0.9</A></H2> |
|
|
|
<UL> |
|
|
|
<UL> |
|
|
|
<LI>Initial public release.</LI> |
|
|
|
<LI>Initial public release.</LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
@ -2034,6 +2043,7 @@ Ty Coon, President of Vice |
|
|
|
<TBODY></TBODY> |
|
|
|
<TBODY></TBODY> |
|
|
|
<TR><TD><TT>MXML_CUSTOM</TT></TD><TD>Custom data</TD></TR> |
|
|
|
<TR><TD><TT>MXML_CUSTOM</TT></TD><TD>Custom data</TD></TR> |
|
|
|
<TR><TD><TT>MXML_ELEMENT</TT></TD><TD>XML element with attributes</TD></TR> |
|
|
|
<TR><TD><TT>MXML_ELEMENT</TT></TD><TD>XML element with attributes</TD></TR> |
|
|
|
|
|
|
|
<TR><TD><TT>MXML_IGNORE</TT></TD><TD>Ignore/throw away node</TD></TR> |
|
|
|
<TR><TD><TT>MXML_INTEGER</TT></TD><TD>Integer value</TD></TR> |
|
|
|
<TR><TD><TT>MXML_INTEGER</TT></TD><TD>Integer value</TD></TR> |
|
|
|
<TR><TD><TT>MXML_OPAQUE</TT></TD><TD>Opaque string</TD></TR> |
|
|
|
<TR><TD><TT>MXML_OPAQUE</TT></TD><TD>Opaque string</TD></TR> |
|
|
|
<TR><TD><TT>MXML_REAL</TT></TD><TD>Real value</TD></TR> |
|
|
|
<TR><TD><TT>MXML_REAL</TT></TD><TD>Real value</TD></TR> |
|
|
@ -2062,6 +2072,7 @@ Ty Coon, President of Vice |
|
|
|
<LI><A href="#mxmlLoadFd"><TT>mxmlLoadFd()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlLoadFd"><TT>mxmlLoadFd()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlLoadFile"><TT>mxmlLoadFile()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlLoadFile"><TT>mxmlLoadFile()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlLoadString"><TT>mxmlLoadString()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlLoadString"><TT>mxmlLoadString()</TT></A></LI> |
|
|
|
|
|
|
|
<LI><A href="#mxmlNewCDATA"><TT>mxmlNewCDATA()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewCustom"><TT>mxmlNewCustom()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewCustom"><TT>mxmlNewCustom()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewElement"><TT>mxmlNewElement()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewElement"><TT>mxmlNewElement()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewInteger"><TT>mxmlNewInteger()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlNewInteger"><TT>mxmlNewInteger()</TT></A></LI> |
|
|
@ -2074,6 +2085,7 @@ Ty Coon, President of Vice |
|
|
|
<LI><A href="#mxmlSaveFd"><TT>mxmlSaveFd()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSaveFd"><TT>mxmlSaveFd()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSaveFile"><TT>mxmlSaveFile()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSaveFile"><TT>mxmlSaveFile()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSaveString"><TT>mxmlSaveString()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSaveString"><TT>mxmlSaveString()</TT></A></LI> |
|
|
|
|
|
|
|
<LI><A href="#mxmlSetCDATA"><TT>mxmlSetCDATA()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSetCustom"><TT>mxmlSetCustom()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSetCustom"><TT>mxmlSetCustom()</TT></A></LI> |
|
|
|
<LI><A href="#mxmlSetCustomHandlers"><TT>mxmlSetCustomHandlers()</TT></A> |
|
|
|
<LI><A href="#mxmlSetCustomHandlers"><TT>mxmlSetCustomHandlers()</TT></A> |
|
|
|
</LI> |
|
|
|
</LI> |
|
|
@ -2483,7 +2495,7 @@ mxmlIndexReset( |
|
|
|
mxmlLoadFd( |
|
|
|
mxmlLoadFd( |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
int fd, |
|
|
|
int fd, |
|
|
|
<A href="#mxml_type_t">mxml_type_t</A> (*cb)(mxml_node_t *node)); |
|
|
|
mxml_type_t (*cb)(mxml_node_t *node)); |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<P class="table"></P> |
|
|
|
<P class="table"></P> |
|
|
@ -2518,7 +2530,7 @@ mxmlLoadFd( |
|
|
|
mxmlLoadFile( |
|
|
|
mxmlLoadFile( |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
FILE * fp, |
|
|
|
FILE * fp, |
|
|
|
<A href="#mxml_type_t">mxml_type_t</A> (*cb)(mxml_node_t *node)); |
|
|
|
mxml_type_t (*cb)(mxml_node_t *node)); |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<P class="table"></P> |
|
|
|
<P class="table"></P> |
|
|
@ -2553,7 +2565,7 @@ mxmlLoadFile( |
|
|
|
mxmlLoadString( |
|
|
|
mxmlLoadString( |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * top, |
|
|
|
const char * s, |
|
|
|
const char * s, |
|
|
|
<A href="#mxml_type_t">mxml_type_t</A> (*cb)(mxml_node_t *node)); |
|
|
|
mxml_type_t (*cb)(mxml_node_t *node)); |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<H4>Arguments</H4> |
|
|
|
<P class="table"></P> |
|
|
|
<P class="table"></P> |
|
|
@ -2569,6 +2581,34 @@ mxmlLoadString( |
|
|
|
<H4>Returns</H4> |
|
|
|
<H4>Returns</H4> |
|
|
|
<P>First node or NULL if the string has errors.</P> |
|
|
|
<P>First node or NULL if the string has errors.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
|
|
|
|
<H3><A name="mxmlNewCDATA">mxmlNewCDATA()</A></H3> |
|
|
|
|
|
|
|
<HR noshade/> |
|
|
|
|
|
|
|
<H4>Description</H4> |
|
|
|
|
|
|
|
<P>Create a new CDATA node. The new CDATA node is added to the end of |
|
|
|
|
|
|
|
the specified parent's child list. The constant MXML_NO_PARENT can be |
|
|
|
|
|
|
|
used to specify that the new CDATA node has no parent. The data string |
|
|
|
|
|
|
|
must be nul-terminated and is copied into the new node. CDATA nodes use |
|
|
|
|
|
|
|
the MXML_ELEMENT type.</P> |
|
|
|
|
|
|
|
<H4>Syntax</H4> |
|
|
|
|
|
|
|
<PRE> |
|
|
|
|
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * |
|
|
|
|
|
|
|
mxmlNewCDATA( |
|
|
|
|
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * parent, |
|
|
|
|
|
|
|
const char * data); |
|
|
|
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
<H4>Arguments</H4> |
|
|
|
|
|
|
|
<P class="table"></P> |
|
|
|
|
|
|
|
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" width="80%"> |
|
|
|
|
|
|
|
<THEAD></THEAD> |
|
|
|
|
|
|
|
<TR bgcolor="#cccccc"><TH>Name</TH><TH>Description</TH></TR> |
|
|
|
|
|
|
|
<TBODY></TBODY> |
|
|
|
|
|
|
|
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR> |
|
|
|
|
|
|
|
<TR><TD><TT>data</TT></TD><TD>Data string</TD></TR> |
|
|
|
|
|
|
|
</TABLE> |
|
|
|
|
|
|
|
<H4>Returns</H4> |
|
|
|
|
|
|
|
<P>New node</P> |
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
<!-- NEW PAGE --> |
|
|
|
<H3><A name="mxmlNewCustom">mxmlNewCustom()</A></H3> |
|
|
|
<H3><A name="mxmlNewCustom">mxmlNewCustom()</A></H3> |
|
|
|
<HR noshade/> |
|
|
|
<HR noshade/> |
|
|
@ -2926,6 +2966,31 @@ mxmlSaveString( |
|
|
|
<H4>Returns</H4> |
|
|
|
<H4>Returns</H4> |
|
|
|
<P>Size of string</P> |
|
|
|
<P>Size of string</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
|
|
|
|
<H3><A name="mxmlSetCDATA">mxmlSetCDATA()</A></H3> |
|
|
|
|
|
|
|
<HR noshade/> |
|
|
|
|
|
|
|
<H4>Description</H4> |
|
|
|
|
|
|
|
<P>Set the element name of a CDATA node. The node is not changed if it |
|
|
|
|
|
|
|
is not a CDATA element node.</P> |
|
|
|
|
|
|
|
<H4>Syntax</H4> |
|
|
|
|
|
|
|
<PRE> |
|
|
|
|
|
|
|
int |
|
|
|
|
|
|
|
mxmlSetCDATA( |
|
|
|
|
|
|
|
<A href="#mxml_node_t">mxml_node_t</A> * node, |
|
|
|
|
|
|
|
const char * data); |
|
|
|
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
<H4>Arguments</H4> |
|
|
|
|
|
|
|
<P class="table"></P> |
|
|
|
|
|
|
|
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" width="80%"> |
|
|
|
|
|
|
|
<THEAD></THEAD> |
|
|
|
|
|
|
|
<TR bgcolor="#cccccc"><TH>Name</TH><TH>Description</TH></TR> |
|
|
|
|
|
|
|
<TBODY></TBODY> |
|
|
|
|
|
|
|
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR> |
|
|
|
|
|
|
|
<TR><TD><TT>data</TT></TD><TD>New data string</TD></TR> |
|
|
|
|
|
|
|
</TABLE> |
|
|
|
|
|
|
|
<H4>Returns</H4> |
|
|
|
|
|
|
|
<P>0 on success, -1 on failure</P> |
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
<!-- NEW PAGE --> |
|
|
|
<H3><A name="mxmlSetCustom">mxmlSetCustom()</A></H3> |
|
|
|
<H3><A name="mxmlSetCustom">mxmlSetCustom()</A></H3> |
|
|
|
<HR noshade/> |
|
|
|
<HR noshade/> |
|
|
@ -3318,7 +3383,7 @@ struct mxml_node_s |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * next; |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * next; |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * parent; |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * parent; |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * prev; |
|
|
|
struct <A href="#mxml_node_s">mxml_node_s</A> * prev; |
|
|
|
<A href="#mxml_type_t">mxml_type_t</A> type; |
|
|
|
mxml_type_t type; |
|
|
|
<A href="#mxml_value_t">mxml_value_t</A> value; |
|
|
|
<A href="#mxml_value_t">mxml_value_t</A> value; |
|
|
|
}; |
|
|
|
}; |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
@ -3394,7 +3459,6 @@ struct mxml_value_s |
|
|
|
<LI><A href="#mxml_index_t"><TT>mxml_index_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_index_t"><TT>mxml_index_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_node_t"><TT>mxml_node_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_node_t"><TT>mxml_node_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_text_t"><TT>mxml_text_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_text_t"><TT>mxml_text_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_type_t"><TT>mxml_type_t</TT></A></LI> |
|
|
|
|
|
|
|
<LI><A href="#mxml_value_t"><TT>mxml_value_t</TT></A></LI> |
|
|
|
<LI><A href="#mxml_value_t"><TT>mxml_value_t</TT></A></LI> |
|
|
|
</UL> |
|
|
|
</UL> |
|
|
|
|
|
|
|
|
|
|
@ -3458,16 +3522,6 @@ typedef struct <A href="#mxml_node_s">mxml_node_s</A> mxml_node_t; |
|
|
|
typedef struct <A href="#mxml_text_s">mxml_text_s</A> mxml_text_t; |
|
|
|
typedef struct <A href="#mxml_text_s">mxml_text_s</A> mxml_text_t; |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
|
|
|
|
<H3><A name="mxml_type_t">mxml_type_t</A></H3> |
|
|
|
|
|
|
|
<HR noshade/> |
|
|
|
|
|
|
|
<H4>Description</H4> |
|
|
|
|
|
|
|
<P>The XML node type.</P> |
|
|
|
|
|
|
|
<H4>Definition</H4> |
|
|
|
|
|
|
|
<PRE> |
|
|
|
|
|
|
|
typedef enum <A href="#mxml_type_e">mxml_type_e</A> mxml_type_t; |
|
|
|
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- NEW PAGE --> |
|
|
|
<!-- NEW PAGE --> |
|
|
|
<H3><A name="mxml_value_t">mxml_value_t</A></H3> |
|
|
|
<H3><A name="mxml_value_t">mxml_value_t</A></H3> |
|
|
|
<HR noshade/> |
|
|
|
<HR noshade/> |
|
|
|