Prep for 2.4 release.

Update documentation.
This commit is contained in:
Michael R Sweet 2007-11-23 02:15:07 +00:00
parent 8c43d0a67f
commit 6057e7ee02
20 changed files with 302 additions and 149 deletions

View File

@ -1,8 +1,7 @@
Mini-XML 2.3 is now available for download from: Mini-XML 2.4 is now available for download from:
http://www.easysw.com/~mike/mxml/software.php http://www.easysw.com/~mike/mxml/software.php
Mini-XML 2.3 adds a SAX API, more convenience functions, a user data Mini-XML 2.4 fixes some build and XML parsing bugs, adds support
pointer to the mxml_node_t structure, and improved HTML and new man for the apos character entity, and adds per-thread global settings.
page output from mxmldoc. The new release now also offers relaxed
LGPL licensing that allows static linking.

View File

@ -1,8 +1,11 @@
CHANGES - 2007-09-22 CHANGES - 2007-11-22
-------------------- --------------------
CHANGES IN Mini-XML 2.4 CHANGES IN Mini-XML 2.4
- Fixed shared library build problems on HP-UX and Mac OS X.
- The mxmldoc program did not output argument descriptions
for functions properly.
- All global settings (custom, error, and entity callbacks - All global settings (custom, error, and entity callbacks
and the wrap margin) are now managed separately for each and the wrap margin) are now managed separately for each
thread. thread.

View File

@ -103,7 +103,7 @@ all: Makefile config.h $(TARGETS)
# #
clean: clean:
$(RM) $(OBJS) $(TARGETS) doc/mxml.man $(RM) $(OBJS) $(TARGETS)
$(RM) mxmldoc-static libmxml.a $(RM) mxmldoc-static libmxml.a

4
README
View File

@ -1,10 +1,10 @@
README - 2007-04-17 README - 2007-11-22
------------------- -------------------
INTRODUCTION INTRODUCTION
This README file describes the Mini-XML library version 2.3. This README file describes the Mini-XML library version 2.4.
Mini-XML is a small XML parsing library that you can use to Mini-XML is a small XML parsing library that you can use to
read XML and XML-like data files in your application without read XML and XML-like data files in your application without

4
TODO
View File

@ -1,11 +1,9 @@
TODO - 02/25/2005 TODO - 2007-11-22
----------------- -----------------
- Add access methods and make node structure opaque. - Add access methods and make node structure opaque.
-- To allow for C++ migration -- To allow for C++ migration
-- To make future binary compatibility easier -- To make future binary compatibility easier
- Add VC++/VC++.NET project files.
-- Include DLL .def file for making a DLL?
- Add C++ class/struct. - Add C++ class/struct.
-- Make this the core implementation which the C API accesses? -- Make this the core implementation which the C API accesses?
-- Class would allow for subclassing, is that necessary? -- Class would allow for subclassing, is that necessary?

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -87,9 +87,10 @@ A { text-decoration: none }
<UL> <UL>
<LI><A HREF="#mxmlAdd">mxmlAdd()</A></LI> <LI><A HREF="#mxmlAdd">mxmlAdd()</A></LI>
<LI><A HREF="#mxmlDelete">mxmlDelete()</A></LI> <LI><A HREF="#mxmlDelete">mxmlDelete()</A></LI>
<LI><A HREF="#8_3_3">mxmlElementDeleteAttr()</A></LI>
<LI><A HREF="#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI> <LI><A HREF="#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI>
<LI><A HREF="#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI> <LI><A HREF="#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI>
<LI><A HREF="#8_3_5">mxmlElementSetAttrf()</A></LI> <LI><A HREF="#8_3_6">mxmlElementSetAttrf()</A></LI>
<LI><A HREF="#mxmlEntityAddCallback">mxmlEntityAddCallback()</A></LI> <LI><A HREF="#mxmlEntityAddCallback">mxmlEntityAddCallback()</A></LI>
<LI><A HREF="#mxmlEntityGetName">mxmlEntityGetName()</A></LI> <LI><A HREF="#mxmlEntityGetName">mxmlEntityGetName()</A></LI>
<LI><A HREF="#mxmlEntityGetValue">mxmlEntityGetValue()</A></LI> <LI><A HREF="#mxmlEntityGetValue">mxmlEntityGetValue()</A></LI>
@ -103,27 +104,27 @@ A { text-decoration: none }
<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="#8_3_19">mxmlNewCDATA()</A></LI> <LI><A HREF="#8_3_20">mxmlNewCDATA()</A></LI>
<LI><A HREF="#8_3_20">mxmlNewCustom()</A></LI> <LI><A HREF="#8_3_21">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>
<LI><A HREF="#mxmlNewOpaque">mxmlNewOpaque()</A></LI> <LI><A HREF="#mxmlNewOpaque">mxmlNewOpaque()</A></LI>
<LI><A HREF="#mxmlNewReal">mxmlNewReal()</A></LI> <LI><A HREF="#mxmlNewReal">mxmlNewReal()</A></LI>
<LI><A HREF="#mxmlNewText">mxmlNewText()</A></LI> <LI><A HREF="#mxmlNewText">mxmlNewText()</A></LI>
<LI><A HREF="#mxmlNewTextf">mxmlNewTextf()</A></LI> <LI><A HREF="#mxmlNewTextf">mxmlNewTextf()</A></LI>
<LI><A HREF="#8_3_27">mxmlNewXML()</A></LI> <LI><A HREF="#8_3_28">mxmlNewXML()</A></LI>
<LI><A HREF="#8_3_28">mxmlRelease()</A></LI> <LI><A HREF="#8_3_29">mxmlRelease()</A></LI>
<LI><A HREF="#mxmlRemove">mxmlRemove()</A></LI> <LI><A HREF="#mxmlRemove">mxmlRemove()</A></LI>
<LI><A HREF="#8_3_30">mxmlRetain()</A></LI> <LI><A HREF="#8_3_31">mxmlRetain()</A></LI>
<LI><A HREF="#8_3_31">mxmlSAXLoadFd()</A></LI> <LI><A HREF="#8_3_32">mxmlSAXLoadFd()</A></LI>
<LI><A HREF="#8_3_32">mxmlSAXLoadFile()</A></LI> <LI><A HREF="#8_3_33">mxmlSAXLoadFile()</A></LI>
<LI><A HREF="#8_3_33">mxmlSAXLoadString()</A></LI> <LI><A HREF="#8_3_34">mxmlSAXLoadString()</A></LI>
<LI><A HREF="#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI> <LI><A HREF="#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI>
<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="#8_3_38">mxmlSetCDATA()</A></LI> <LI><A HREF="#8_3_39">mxmlSetCDATA()</A></LI>
<LI><A HREF="#8_3_39">mxmlSetCustom()</A></LI> <LI><A HREF="#8_3_40">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>
<LI><A HREF="#mxmlSetErrorCallback">mxmlSetErrorCallback()</A></LI> <LI><A HREF="#mxmlSetErrorCallback">mxmlSetErrorCallback()</A></LI>
@ -132,7 +133,7 @@ A { text-decoration: none }
<LI><A HREF="#mxmlSetReal">mxmlSetReal()</A></LI> <LI><A HREF="#mxmlSetReal">mxmlSetReal()</A></LI>
<LI><A HREF="#mxmlSetText">mxmlSetText()</A></LI> <LI><A HREF="#mxmlSetText">mxmlSetText()</A></LI>
<LI><A HREF="#mxmlSetTextf">mxmlSetTextf()</A></LI> <LI><A HREF="#mxmlSetTextf">mxmlSetTextf()</A></LI>
<LI><A HREF="#8_3_48">mxmlSetWrapMargin()</A></LI> <LI><A HREF="#8_3_49">mxmlSetWrapMargin()</A></LI>
<LI><A HREF="#mxmlWalkNext">mxmlWalkNext()</A></LI> <LI><A HREF="#mxmlWalkNext">mxmlWalkNext()</A></LI>
<LI><A HREF="#mxmlWalkPrev">mxmlWalkPrev()</A></LI> <LI><A HREF="#mxmlWalkPrev">mxmlWalkPrev()</A></LI>
</UL> </UL>
@ -177,7 +178,7 @@ A { text-decoration: none }
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100" <H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
hspace="10" src="0.gif" width="100"></A>Introduction</H1> hspace="10" src="0.gif" width="100"></A>Introduction</H1>
<P>This programmers manual describes Mini-XML version 2.3, a small XML <P>This programmers manual describes Mini-XML version 2.4, a small XML
parsing library that you can use to read and write XML data files in parsing library that you can use to read and write XML data files in
your C and C++ applications.</P> your C and C++ applications.</P>
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/"> <P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">
@ -1925,7 +1926,27 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100" <H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100"
hspace="10" src="B.gif" width="100"></A>Release Notes</H1> hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<H2><A NAME="7_1">Changes in Mini-XML 2.3</A></H2> <H2><A NAME="7_1">Changes in Mini-XML 2.4</A></H2>
<UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for
functions properly.</LI>
<LI>All global settings (custom, error, and entity callbacks and the
wrap margin) are now managed separately for each thread.</LI>
<LI>Added mxmlElementDeleteAttr() function (STR #59)</LI>
<LI>mxmlElementSetAttrf() did not work (STR #57)</LI>
<LI>mxmlLoad*() incorrectly treated declarations as parent elements (STR
#56)</LI>
<LI>mxmlLoad*() incorrectly allowed attributes without values (STR #47)</LI>
<LI>Fixed Visual C++ build problems (STR #49)</LI>
<LI>mxmlLoad*() did not return NULL when an element contained an error
(STR #46)</LI>
<LI>Added support for the apos character entity (STR #54)</LI>
<LI>Fixed whitespace detection with Unicode characters (STR #48)</LI>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.3</A></H2>
<UL> <UL>
<LI>Added two exceptions to the LGPL to support static linking of <LI>Added two exceptions to the LGPL to support static linking of
applications against Mini-XML</LI> applications against Mini-XML</LI>
@ -1963,12 +1984,12 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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.2</A></H2> <H2><A NAME="7_3">Changes in Mini-XML 2.2.2</A></H2>
<UL> <UL>
<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_3">Changes in Mini-XML 2.2.1</A></H2> <H2><A NAME="7_4">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>
@ -1979,7 +2000,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_4">Changes in Mini-XML 2.2</A></H2> <H2><A NAME="7_5">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
@ -1993,7 +2014,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not <LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not
allowed)</LI> allowed)</LI>
</UL> </UL>
<H2><A NAME="7_5">Changes in Mini-XML 2.1</A></H2> <H2><A NAME="7_6">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
@ -2004,7 +2025,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_6">Changes in Mini-XML 2.0</A></H2> <H2><A NAME="7_7">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>
@ -2037,7 +2058,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_7">Changes in Mini-XML 1.3</A></H2> <H2><A NAME="7_8">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>
@ -2053,7 +2074,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_8">Changes in Mini-XML 1.2</A></H2> <H2><A NAME="7_9">Changes in Mini-XML 1.2</A></H2>
<UL> <UL>
<LI>Added new &quot;set&quot; methods to set the value of a node.</LI> <LI>Added new &quot;set&quot; 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()
@ -2066,13 +2087,13 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_9">Changes in Mini-XML 1.1.2</A></H2> <H2><A NAME="7_10">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_10">Changes in Mini-XML 1.1.1</A></H2> <H2><A NAME="7_11">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
@ -2083,7 +2104,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_11">Changes in Mini-XML 1.1</A></H2> <H2><A NAME="7_12">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.
@ -2095,7 +2116,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_12">Changes in Mini-XML 1.0</A></H2> <H2><A NAME="7_13">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>
@ -2103,7 +2124,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_13">Changes in Mini-XML 0.93</A></H2> <H2><A NAME="7_14">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>
@ -2128,15 +2149,15 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_14">Changes in Mini-XML 0.92</A></H2> <H2><A NAME="7_15">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_15">Changes in Mini-XML 0.91</A></H2> <H2><A NAME="7_16">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_16">Changes in Mini-XML 0.9</A></H2> <H2><A NAME="7_17">Changes in Mini-XML 0.9</A></H2>
<UL> <UL>
<LI>Initial public release.</LI> <LI>Initial public release.</LI>
</UL> </UL>
@ -2204,6 +2225,9 @@ hspace="10" src="C.gif" width="100"></A>Library Reference</H1>
<UL> <UL>
<LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI> <LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI>
<LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI> <LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI>
<LI><A href="#mxmlElementDeleteAttr"><TT>mxmlElementDeleteAttr()</TT></A>
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;</LI>
<LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI> <LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI> <LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A> <LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A>
@ -2334,6 +2358,30 @@ width="80%"><THEAD></THEAD>
<H4>Returns</H4> <H4>Returns</H4>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_3">
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;<A name="mxmlElementDeleteAttr">mxmlElementDeleteAttr()</A>
</A></H3>
<H4>Description</H4>
<P>Delete an attribute.</P>
<H4>Syntax</H4>
<P> <TT>void
<BR> mxmlElementDeleteAttr( <A href="#mxml_node_t">mxml_node_t</A> *
node, const char * name);</TT></P>
<H4>Arguments</H4>
<DIV class="table">
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
width="80%"><THEAD></THEAD>
<TR><TH>Name</TH><TH>Description</TH></TR>
<TBODY></TBODY>
<TR><TD><TT>node</TT></TD><TD>Element</TD></TR>
<TR><TD><TT>name</TT></TD><TD>Attribute name</TD></TR>
</TABLE>
</DIV>
<H4>Returns</H4>
<P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3> <H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2383,7 +2431,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_5"> <H3 class="title"><A NAME="8_3_6">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A>
</H3> </H3>
@ -2726,7 +2774,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the string has errors.</P> <P>First node or NULL if the string has errors.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_19"> <H3 class="title"><A NAME="8_3_20">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2753,7 +2801,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_20"> <H3 class="title"><A NAME="8_3_21">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2936,7 +2984,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_27"> <H3 class="title"><A NAME="8_3_28">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2959,7 +3007,7 @@ width="80%"><THEAD></THEAD>
<P>New ?xml node</P> <P>New ?xml node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_28"> <H3 class="title"><A NAME="8_3_29">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3003,7 +3051,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_30"> <H3 class="title"><A NAME="8_3_31">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3024,7 +3072,7 @@ width="80%"><THEAD></THEAD>
<P>New reference count</P> <P>New reference count</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_31"> <H3 class="title"><A NAME="8_3_32">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3063,7 +3111,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_32"> <H3 class="title"><A NAME="8_3_33">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3102,7 +3150,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_33"> <H3 class="title"><A NAME="8_3_34">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3259,7 +3307,7 @@ width="80%"><THEAD></THEAD>
<P>Size of string</P> <P>Size of string</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_38"> <H3 class="title"><A NAME="8_3_39">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3283,7 +3331,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_39"> <H3 class="title"><A NAME="8_3_40">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3494,7 +3542,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_48"> <H3 class="title"><A NAME="8_3_49">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>

View File

@ -9,6 +9,11 @@ hspace="10" width="100" height="100" alt="B"></a>Release Notes</h1>
<ul> <ul>
<li>Fixed shared library build problems on HP-UX and Mac OS X.</li>
<li>The mxmldoc program did not output argument descriptions
for functions properly.</li>
<li>All global settings (custom, error, and entity callbacks <li>All global settings (custom, error, and entity callbacks
and the wrap margin) are now managed separately for each and the wrap margin) are now managed separately for each
thread.</li> thread.</li>

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -91,9 +91,10 @@ A { text-decoration: none }
<UL> <UL>
<LI><A HREF="refapp.html#mxmlAdd">mxmlAdd()</A></LI> <LI><A HREF="refapp.html#mxmlAdd">mxmlAdd()</A></LI>
<LI><A HREF="refapp.html#mxmlDelete">mxmlDelete()</A></LI> <LI><A HREF="refapp.html#mxmlDelete">mxmlDelete()</A></LI>
<LI><A HREF="refapp.html#8_3_3">mxmlElementDeleteAttr()</A></LI>
<LI><A HREF="refapp.html#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI> <LI><A HREF="refapp.html#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI>
<LI><A HREF="refapp.html#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI> <LI><A HREF="refapp.html#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI>
<LI><A HREF="refapp.html#8_3_5">mxmlElementSetAttrf()</A></LI> <LI><A HREF="refapp.html#8_3_6">mxmlElementSetAttrf()</A></LI>
<LI><A HREF="refapp.html#mxmlEntityAddCallback">mxmlEntityAddCallback()</A> <LI><A HREF="refapp.html#mxmlEntityAddCallback">mxmlEntityAddCallback()</A>
</LI> </LI>
<LI><A HREF="refapp.html#mxmlEntityGetName">mxmlEntityGetName()</A></LI> <LI><A HREF="refapp.html#mxmlEntityGetName">mxmlEntityGetName()</A></LI>
@ -109,27 +110,27 @@ mxmlEntityRemoveCallback()</A></LI>
<LI><A HREF="refapp.html#mxmlLoadFd">mxmlLoadFd()</A></LI> <LI><A HREF="refapp.html#mxmlLoadFd">mxmlLoadFd()</A></LI>
<LI><A HREF="refapp.html#mxmlLoadFile">mxmlLoadFile()</A></LI> <LI><A HREF="refapp.html#mxmlLoadFile">mxmlLoadFile()</A></LI>
<LI><A HREF="refapp.html#mxmlLoadString">mxmlLoadString()</A></LI> <LI><A HREF="refapp.html#mxmlLoadString">mxmlLoadString()</A></LI>
<LI><A HREF="refapp.html#8_3_19">mxmlNewCDATA()</A></LI> <LI><A HREF="refapp.html#8_3_20">mxmlNewCDATA()</A></LI>
<LI><A HREF="refapp.html#8_3_20">mxmlNewCustom()</A></LI> <LI><A HREF="refapp.html#8_3_21">mxmlNewCustom()</A></LI>
<LI><A HREF="refapp.html#mxmlNewElement">mxmlNewElement()</A></LI> <LI><A HREF="refapp.html#mxmlNewElement">mxmlNewElement()</A></LI>
<LI><A HREF="refapp.html#mxmlNewInteger">mxmlNewInteger()</A></LI> <LI><A HREF="refapp.html#mxmlNewInteger">mxmlNewInteger()</A></LI>
<LI><A HREF="refapp.html#mxmlNewOpaque">mxmlNewOpaque()</A></LI> <LI><A HREF="refapp.html#mxmlNewOpaque">mxmlNewOpaque()</A></LI>
<LI><A HREF="refapp.html#mxmlNewReal">mxmlNewReal()</A></LI> <LI><A HREF="refapp.html#mxmlNewReal">mxmlNewReal()</A></LI>
<LI><A HREF="refapp.html#mxmlNewText">mxmlNewText()</A></LI> <LI><A HREF="refapp.html#mxmlNewText">mxmlNewText()</A></LI>
<LI><A HREF="refapp.html#mxmlNewTextf">mxmlNewTextf()</A></LI> <LI><A HREF="refapp.html#mxmlNewTextf">mxmlNewTextf()</A></LI>
<LI><A HREF="refapp.html#8_3_27">mxmlNewXML()</A></LI> <LI><A HREF="refapp.html#8_3_28">mxmlNewXML()</A></LI>
<LI><A HREF="refapp.html#8_3_28">mxmlRelease()</A></LI> <LI><A HREF="refapp.html#8_3_29">mxmlRelease()</A></LI>
<LI><A HREF="refapp.html#mxmlRemove">mxmlRemove()</A></LI> <LI><A HREF="refapp.html#mxmlRemove">mxmlRemove()</A></LI>
<LI><A HREF="refapp.html#8_3_30">mxmlRetain()</A></LI> <LI><A HREF="refapp.html#8_3_31">mxmlRetain()</A></LI>
<LI><A HREF="refapp.html#8_3_31">mxmlSAXLoadFd()</A></LI> <LI><A HREF="refapp.html#8_3_32">mxmlSAXLoadFd()</A></LI>
<LI><A HREF="refapp.html#8_3_32">mxmlSAXLoadFile()</A></LI> <LI><A HREF="refapp.html#8_3_33">mxmlSAXLoadFile()</A></LI>
<LI><A HREF="refapp.html#8_3_33">mxmlSAXLoadString()</A></LI> <LI><A HREF="refapp.html#8_3_34">mxmlSAXLoadString()</A></LI>
<LI><A HREF="refapp.html#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI> <LI><A HREF="refapp.html#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI>
<LI><A HREF="refapp.html#mxmlSaveFd">mxmlSaveFd()</A></LI> <LI><A HREF="refapp.html#mxmlSaveFd">mxmlSaveFd()</A></LI>
<LI><A HREF="refapp.html#mxmlSaveFile">mxmlSaveFile()</A></LI> <LI><A HREF="refapp.html#mxmlSaveFile">mxmlSaveFile()</A></LI>
<LI><A HREF="refapp.html#mxmlSaveString">mxmlSaveString()</A></LI> <LI><A HREF="refapp.html#mxmlSaveString">mxmlSaveString()</A></LI>
<LI><A HREF="refapp.html#8_3_38">mxmlSetCDATA()</A></LI> <LI><A HREF="refapp.html#8_3_39">mxmlSetCDATA()</A></LI>
<LI><A HREF="refapp.html#8_3_39">mxmlSetCustom()</A></LI> <LI><A HREF="refapp.html#8_3_40">mxmlSetCustom()</A></LI>
<LI><A HREF="refapp.html#mxmlSetCustomHandlers">mxmlSetCustomHandlers()</A> <LI><A HREF="refapp.html#mxmlSetCustomHandlers">mxmlSetCustomHandlers()</A>
</LI> </LI>
<LI><A HREF="refapp.html#mxmlSetElement">mxmlSetElement()</A></LI> <LI><A HREF="refapp.html#mxmlSetElement">mxmlSetElement()</A></LI>
@ -140,7 +141,7 @@ mxmlEntityRemoveCallback()</A></LI>
<LI><A HREF="refapp.html#mxmlSetReal">mxmlSetReal()</A></LI> <LI><A HREF="refapp.html#mxmlSetReal">mxmlSetReal()</A></LI>
<LI><A HREF="refapp.html#mxmlSetText">mxmlSetText()</A></LI> <LI><A HREF="refapp.html#mxmlSetText">mxmlSetText()</A></LI>
<LI><A HREF="refapp.html#mxmlSetTextf">mxmlSetTextf()</A></LI> <LI><A HREF="refapp.html#mxmlSetTextf">mxmlSetTextf()</A></LI>
<LI><A HREF="refapp.html#8_3_48">mxmlSetWrapMargin()</A></LI> <LI><A HREF="refapp.html#8_3_49">mxmlSetWrapMargin()</A></LI>
<LI><A HREF="refapp.html#mxmlWalkNext">mxmlWalkNext()</A></LI> <LI><A HREF="refapp.html#mxmlWalkNext">mxmlWalkNext()</A></LI>
<LI><A HREF="refapp.html#mxmlWalkPrev">mxmlWalkPrev()</A></LI> <LI><A HREF="refapp.html#mxmlWalkPrev">mxmlWalkPrev()</A></LI>
</UL> </UL>

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -28,7 +28,7 @@ A { text-decoration: none }
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100" <H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
hspace="10" src="0.gif" width="100"></A>Introduction</H1> hspace="10" src="0.gif" width="100"></A>Introduction</H1>
<P>This programmers manual describes Mini-XML version 2.3, a small XML <P>This programmers manual describes Mini-XML version 2.4, a small XML
parsing library that you can use to read and write XML data files in parsing library that you can use to read and write XML data files in
your C and C++ applications.</P> your C and C++ applications.</P>
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/"> <P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -91,6 +91,9 @@ hspace="10" src="C.gif" width="100"></A>Library Reference</H1>
<UL> <UL>
<LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI> <LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI>
<LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI> <LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI>
<LI><A href="#mxmlElementDeleteAttr"><TT>mxmlElementDeleteAttr()</TT></A>
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;</LI>
<LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI> <LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI> <LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A> <LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A>
@ -221,6 +224,30 @@ width="80%"><THEAD></THEAD>
<H4>Returns</H4> <H4>Returns</H4>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_3">
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;<A name="mxmlElementDeleteAttr">mxmlElementDeleteAttr()</A>
</A></H3>
<H4>Description</H4>
<P>Delete an attribute.</P>
<H4>Syntax</H4>
<P> <TT>void
<BR> mxmlElementDeleteAttr( <A href="#mxml_node_t">mxml_node_t</A> *
node, const char * name);</TT></P>
<H4>Arguments</H4>
<DIV class="table">
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
width="80%"><THEAD></THEAD>
<TR><TH>Name</TH><TH>Description</TH></TR>
<TBODY></TBODY>
<TR><TD><TT>node</TT></TD><TD>Element</TD></TR>
<TR><TD><TT>name</TT></TD><TD>Attribute name</TD></TR>
</TABLE>
</DIV>
<H4>Returns</H4>
<P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3> <H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -270,7 +297,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_5"> <H3 class="title"><A NAME="8_3_6">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A>
</H3> </H3>
@ -613,7 +640,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the string has errors.</P> <P>First node or NULL if the string has errors.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_19"> <H3 class="title"><A NAME="8_3_20">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -640,7 +667,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_20"> <H3 class="title"><A NAME="8_3_21">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -823,7 +850,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_27"> <H3 class="title"><A NAME="8_3_28">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -846,7 +873,7 @@ width="80%"><THEAD></THEAD>
<P>New ?xml node</P> <P>New ?xml node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_28"> <H3 class="title"><A NAME="8_3_29">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -890,7 +917,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_30"> <H3 class="title"><A NAME="8_3_31">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -911,7 +938,7 @@ width="80%"><THEAD></THEAD>
<P>New reference count</P> <P>New reference count</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_31"> <H3 class="title"><A NAME="8_3_32">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -950,7 +977,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_32"> <H3 class="title"><A NAME="8_3_33">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -989,7 +1016,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_33"> <H3 class="title"><A NAME="8_3_34">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -1146,7 +1173,7 @@ width="80%"><THEAD></THEAD>
<P>Size of string</P> <P>Size of string</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_38"> <H3 class="title"><A NAME="8_3_39">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -1170,7 +1197,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_39"> <H3 class="title"><A NAME="8_3_40">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -1381,7 +1408,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_48"> <H3 class="title"><A NAME="8_3_49">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -30,7 +30,27 @@ A { text-decoration: none }
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100" <H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100"
hspace="10" src="B.gif" width="100"></A>Release Notes</H1> hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<H2><A NAME="7_1">Changes in Mini-XML 2.3</A></H2> <H2><A NAME="7_1">Changes in Mini-XML 2.4</A></H2>
<UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for
functions properly.</LI>
<LI>All global settings (custom, error, and entity callbacks and the
wrap margin) are now managed separately for each thread.</LI>
<LI>Added mxmlElementDeleteAttr() function (STR #59)</LI>
<LI>mxmlElementSetAttrf() did not work (STR #57)</LI>
<LI>mxmlLoad*() incorrectly treated declarations as parent elements (STR
#56)</LI>
<LI>mxmlLoad*() incorrectly allowed attributes without values (STR #47)</LI>
<LI>Fixed Visual C++ build problems (STR #49)</LI>
<LI>mxmlLoad*() did not return NULL when an element contained an error
(STR #46)</LI>
<LI>Added support for the apos character entity (STR #54)</LI>
<LI>Fixed whitespace detection with Unicode characters (STR #48)</LI>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.3</A></H2>
<UL> <UL>
<LI>Added two exceptions to the LGPL to support static linking of <LI>Added two exceptions to the LGPL to support static linking of
applications against Mini-XML</LI> applications against Mini-XML</LI>
@ -68,12 +88,12 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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.2</A></H2> <H2><A NAME="7_3">Changes in Mini-XML 2.2.2</A></H2>
<UL> <UL>
<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_3">Changes in Mini-XML 2.2.1</A></H2> <H2><A NAME="7_4">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>
@ -84,7 +104,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_4">Changes in Mini-XML 2.2</A></H2> <H2><A NAME="7_5">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
@ -98,7 +118,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not <LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not
allowed)</LI> allowed)</LI>
</UL> </UL>
<H2><A NAME="7_5">Changes in Mini-XML 2.1</A></H2> <H2><A NAME="7_6">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
@ -109,7 +129,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_6">Changes in Mini-XML 2.0</A></H2> <H2><A NAME="7_7">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>
@ -142,7 +162,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_7">Changes in Mini-XML 1.3</A></H2> <H2><A NAME="7_8">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>
@ -158,7 +178,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_8">Changes in Mini-XML 1.2</A></H2> <H2><A NAME="7_9">Changes in Mini-XML 1.2</A></H2>
<UL> <UL>
<LI>Added new &quot;set&quot; methods to set the value of a node.</LI> <LI>Added new &quot;set&quot; 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()
@ -171,13 +191,13 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_9">Changes in Mini-XML 1.1.2</A></H2> <H2><A NAME="7_10">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_10">Changes in Mini-XML 1.1.1</A></H2> <H2><A NAME="7_11">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
@ -188,7 +208,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_11">Changes in Mini-XML 1.1</A></H2> <H2><A NAME="7_12">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.
@ -200,7 +220,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_12">Changes in Mini-XML 1.0</A></H2> <H2><A NAME="7_13">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>
@ -208,7 +228,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_13">Changes in Mini-XML 0.93</A></H2> <H2><A NAME="7_14">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>
@ -233,15 +253,15 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_14">Changes in Mini-XML 0.92</A></H2> <H2><A NAME="7_15">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_15">Changes in Mini-XML 0.91</A></H2> <H2><A NAME="7_16">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_16">Changes in Mini-XML 0.9</A></H2> <H2><A NAME="7_17">Changes in Mini-XML 0.9</A></H2>
<UL> <UL>
<LI>Initial public release.</LI> <LI>Initial public release.</LI>
</UL> </UL>

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">

View File

@ -240,6 +240,9 @@ multiple files with comments on-line:</p>
</ul> </ul>
<p>You can also get a printed version of the Mini-XML documentation on
<a href="http://www.lulu.com/content/820838">Lulu.com</a>.</p>
<?php <?php
} }

View File

@ -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.3</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.4</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2007"> <META NAME="copyright" CONTENT="Copyright 2003-2007">
<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">
@ -87,9 +87,10 @@ A { text-decoration: none }
<UL> <UL>
<LI><A HREF="#mxmlAdd">mxmlAdd()</A></LI> <LI><A HREF="#mxmlAdd">mxmlAdd()</A></LI>
<LI><A HREF="#mxmlDelete">mxmlDelete()</A></LI> <LI><A HREF="#mxmlDelete">mxmlDelete()</A></LI>
<LI><A HREF="#8_3_3">mxmlElementDeleteAttr()</A></LI>
<LI><A HREF="#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI> <LI><A HREF="#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI>
<LI><A HREF="#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI> <LI><A HREF="#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI>
<LI><A HREF="#8_3_5">mxmlElementSetAttrf()</A></LI> <LI><A HREF="#8_3_6">mxmlElementSetAttrf()</A></LI>
<LI><A HREF="#mxmlEntityAddCallback">mxmlEntityAddCallback()</A></LI> <LI><A HREF="#mxmlEntityAddCallback">mxmlEntityAddCallback()</A></LI>
<LI><A HREF="#mxmlEntityGetName">mxmlEntityGetName()</A></LI> <LI><A HREF="#mxmlEntityGetName">mxmlEntityGetName()</A></LI>
<LI><A HREF="#mxmlEntityGetValue">mxmlEntityGetValue()</A></LI> <LI><A HREF="#mxmlEntityGetValue">mxmlEntityGetValue()</A></LI>
@ -103,27 +104,27 @@ A { text-decoration: none }
<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="#8_3_19">mxmlNewCDATA()</A></LI> <LI><A HREF="#8_3_20">mxmlNewCDATA()</A></LI>
<LI><A HREF="#8_3_20">mxmlNewCustom()</A></LI> <LI><A HREF="#8_3_21">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>
<LI><A HREF="#mxmlNewOpaque">mxmlNewOpaque()</A></LI> <LI><A HREF="#mxmlNewOpaque">mxmlNewOpaque()</A></LI>
<LI><A HREF="#mxmlNewReal">mxmlNewReal()</A></LI> <LI><A HREF="#mxmlNewReal">mxmlNewReal()</A></LI>
<LI><A HREF="#mxmlNewText">mxmlNewText()</A></LI> <LI><A HREF="#mxmlNewText">mxmlNewText()</A></LI>
<LI><A HREF="#mxmlNewTextf">mxmlNewTextf()</A></LI> <LI><A HREF="#mxmlNewTextf">mxmlNewTextf()</A></LI>
<LI><A HREF="#8_3_27">mxmlNewXML()</A></LI> <LI><A HREF="#8_3_28">mxmlNewXML()</A></LI>
<LI><A HREF="#8_3_28">mxmlRelease()</A></LI> <LI><A HREF="#8_3_29">mxmlRelease()</A></LI>
<LI><A HREF="#mxmlRemove">mxmlRemove()</A></LI> <LI><A HREF="#mxmlRemove">mxmlRemove()</A></LI>
<LI><A HREF="#8_3_30">mxmlRetain()</A></LI> <LI><A HREF="#8_3_31">mxmlRetain()</A></LI>
<LI><A HREF="#8_3_31">mxmlSAXLoadFd()</A></LI> <LI><A HREF="#8_3_32">mxmlSAXLoadFd()</A></LI>
<LI><A HREF="#8_3_32">mxmlSAXLoadFile()</A></LI> <LI><A HREF="#8_3_33">mxmlSAXLoadFile()</A></LI>
<LI><A HREF="#8_3_33">mxmlSAXLoadString()</A></LI> <LI><A HREF="#8_3_34">mxmlSAXLoadString()</A></LI>
<LI><A HREF="#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI> <LI><A HREF="#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI>
<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="#8_3_38">mxmlSetCDATA()</A></LI> <LI><A HREF="#8_3_39">mxmlSetCDATA()</A></LI>
<LI><A HREF="#8_3_39">mxmlSetCustom()</A></LI> <LI><A HREF="#8_3_40">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>
<LI><A HREF="#mxmlSetErrorCallback">mxmlSetErrorCallback()</A></LI> <LI><A HREF="#mxmlSetErrorCallback">mxmlSetErrorCallback()</A></LI>
@ -132,7 +133,7 @@ A { text-decoration: none }
<LI><A HREF="#mxmlSetReal">mxmlSetReal()</A></LI> <LI><A HREF="#mxmlSetReal">mxmlSetReal()</A></LI>
<LI><A HREF="#mxmlSetText">mxmlSetText()</A></LI> <LI><A HREF="#mxmlSetText">mxmlSetText()</A></LI>
<LI><A HREF="#mxmlSetTextf">mxmlSetTextf()</A></LI> <LI><A HREF="#mxmlSetTextf">mxmlSetTextf()</A></LI>
<LI><A HREF="#8_3_48">mxmlSetWrapMargin()</A></LI> <LI><A HREF="#8_3_49">mxmlSetWrapMargin()</A></LI>
<LI><A HREF="#mxmlWalkNext">mxmlWalkNext()</A></LI> <LI><A HREF="#mxmlWalkNext">mxmlWalkNext()</A></LI>
<LI><A HREF="#mxmlWalkPrev">mxmlWalkPrev()</A></LI> <LI><A HREF="#mxmlWalkPrev">mxmlWalkPrev()</A></LI>
</UL> </UL>
@ -177,7 +178,7 @@ A { text-decoration: none }
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100" <H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
hspace="10" src="0.gif" width="100"></A>Introduction</H1> hspace="10" src="0.gif" width="100"></A>Introduction</H1>
<P>This programmers manual describes Mini-XML version 2.3, a small XML <P>This programmers manual describes Mini-XML version 2.4, a small XML
parsing library that you can use to read and write XML data files in parsing library that you can use to read and write XML data files in
your C and C++ applications.</P> your C and C++ applications.</P>
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/"> <P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">
@ -1925,7 +1926,27 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100" <H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100"
hspace="10" src="B.gif" width="100"></A>Release Notes</H1> hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<H2><A NAME="7_1">Changes in Mini-XML 2.3</A></H2> <H2><A NAME="7_1">Changes in Mini-XML 2.4</A></H2>
<UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for
functions properly.</LI>
<LI>All global settings (custom, error, and entity callbacks and the
wrap margin) are now managed separately for each thread.</LI>
<LI>Added mxmlElementDeleteAttr() function (STR #59)</LI>
<LI>mxmlElementSetAttrf() did not work (STR #57)</LI>
<LI>mxmlLoad*() incorrectly treated declarations as parent elements (STR
#56)</LI>
<LI>mxmlLoad*() incorrectly allowed attributes without values (STR #47)</LI>
<LI>Fixed Visual C++ build problems (STR #49)</LI>
<LI>mxmlLoad*() did not return NULL when an element contained an error
(STR #46)</LI>
<LI>Added support for the apos character entity (STR #54)</LI>
<LI>Fixed whitespace detection with Unicode characters (STR #48)</LI>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.3</A></H2>
<UL> <UL>
<LI>Added two exceptions to the LGPL to support static linking of <LI>Added two exceptions to the LGPL to support static linking of
applications against Mini-XML</LI> applications against Mini-XML</LI>
@ -1963,12 +1984,12 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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.2</A></H2> <H2><A NAME="7_3">Changes in Mini-XML 2.2.2</A></H2>
<UL> <UL>
<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_3">Changes in Mini-XML 2.2.1</A></H2> <H2><A NAME="7_4">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>
@ -1979,7 +2000,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_4">Changes in Mini-XML 2.2</A></H2> <H2><A NAME="7_5">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
@ -1993,7 +2014,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not <LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not
allowed)</LI> allowed)</LI>
</UL> </UL>
<H2><A NAME="7_5">Changes in Mini-XML 2.1</A></H2> <H2><A NAME="7_6">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
@ -2004,7 +2025,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_6">Changes in Mini-XML 2.0</A></H2> <H2><A NAME="7_7">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>
@ -2037,7 +2058,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_7">Changes in Mini-XML 1.3</A></H2> <H2><A NAME="7_8">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>
@ -2053,7 +2074,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_8">Changes in Mini-XML 1.2</A></H2> <H2><A NAME="7_9">Changes in Mini-XML 1.2</A></H2>
<UL> <UL>
<LI>Added new &quot;set&quot; methods to set the value of a node.</LI> <LI>Added new &quot;set&quot; 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()
@ -2066,13 +2087,13 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_9">Changes in Mini-XML 1.1.2</A></H2> <H2><A NAME="7_10">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_10">Changes in Mini-XML 1.1.1</A></H2> <H2><A NAME="7_11">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
@ -2083,7 +2104,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_11">Changes in Mini-XML 1.1</A></H2> <H2><A NAME="7_12">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.
@ -2095,7 +2116,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_12">Changes in Mini-XML 1.0</A></H2> <H2><A NAME="7_13">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>
@ -2103,7 +2124,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
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_13">Changes in Mini-XML 0.93</A></H2> <H2><A NAME="7_14">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>
@ -2128,15 +2149,15 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<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_14">Changes in Mini-XML 0.92</A></H2> <H2><A NAME="7_15">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_15">Changes in Mini-XML 0.91</A></H2> <H2><A NAME="7_16">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_16">Changes in Mini-XML 0.9</A></H2> <H2><A NAME="7_17">Changes in Mini-XML 0.9</A></H2>
<UL> <UL>
<LI>Initial public release.</LI> <LI>Initial public release.</LI>
</UL> </UL>
@ -2204,6 +2225,9 @@ hspace="10" src="C.gif" width="100"></A>Library Reference</H1>
<UL> <UL>
<LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI> <LI><A href="#mxmlAdd"><TT>mxmlAdd()</TT></A></LI>
<LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI> <LI><A href="#mxmlDelete"><TT>mxmlDelete()</TT></A></LI>
<LI><A href="#mxmlElementDeleteAttr"><TT>mxmlElementDeleteAttr()</TT></A>
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;</LI>
<LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI> <LI><A href="#mxmlElementGetAttr"><TT>mxmlElementGetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI> <LI><A href="#mxmlElementSetAttr"><TT>mxmlElementSetAttr()</TT></A></LI>
<LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A> <LI><A href="#mxmlElementSetAttrf"><TT>mxmlElementSetAttrf()</TT></A>
@ -2334,6 +2358,30 @@ width="80%"><THEAD></THEAD>
<H4>Returns</H4> <H4>Returns</H4>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_3">
<!--span class='info'-->
&nbsp;Mini-XML 2.4&nbsp;<A name="mxmlElementDeleteAttr">mxmlElementDeleteAttr()</A>
</A></H3>
<H4>Description</H4>
<P>Delete an attribute.</P>
<H4>Syntax</H4>
<P> <TT>void
<BR> mxmlElementDeleteAttr( <A href="#mxml_node_t">mxml_node_t</A> *
node, const char * name);</TT></P>
<H4>Arguments</H4>
<DIV class="table">
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
width="80%"><THEAD></THEAD>
<TR><TH>Name</TH><TH>Description</TH></TR>
<TBODY></TBODY>
<TR><TD><TT>node</TT></TD><TD>Element</TD></TR>
<TR><TD><TT>name</TT></TD><TD>Attribute name</TD></TR>
</TABLE>
</DIV>
<H4>Returns</H4>
<P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3> <H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2383,7 +2431,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_5"> <H3 class="title"><A NAME="8_3_6">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A>
</H3> </H3>
@ -2726,7 +2774,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the string has errors.</P> <P>First node or NULL if the string has errors.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_19"> <H3 class="title"><A NAME="8_3_20">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2753,7 +2801,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_20"> <H3 class="title"><A NAME="8_3_21">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2936,7 +2984,7 @@ width="80%"><THEAD></THEAD>
<P>New node</P> <P>New node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_27"> <H3 class="title"><A NAME="8_3_28">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -2959,7 +3007,7 @@ width="80%"><THEAD></THEAD>
<P>New ?xml node</P> <P>New ?xml node</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_28"> <H3 class="title"><A NAME="8_3_29">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3003,7 +3051,7 @@ width="80%"><THEAD></THEAD>
<P>Nothing.</P> <P>Nothing.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_30"> <H3 class="title"><A NAME="8_3_31">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3024,7 +3072,7 @@ width="80%"><THEAD></THEAD>
<P>New reference count</P> <P>New reference count</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_31"> <H3 class="title"><A NAME="8_3_32">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3063,7 +3111,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_32"> <H3 class="title"><A NAME="8_3_33">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3102,7 +3150,7 @@ width="80%"><THEAD></THEAD>
<P>First node or NULL if the file could not be read.</P> <P>First node or NULL if the file could not be read.</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_33"> <H3 class="title"><A NAME="8_3_34">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3259,7 +3307,7 @@ width="80%"><THEAD></THEAD>
<P>Size of string</P> <P>Size of string</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_38"> <H3 class="title"><A NAME="8_3_39">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3283,7 +3331,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_39"> <H3 class="title"><A NAME="8_3_40">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3> &nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>
@ -3494,7 +3542,7 @@ width="80%"><THEAD></THEAD>
<P>0 on success, -1 on failure</P> <P>0 on success, -1 on failure</P>
<!-- NEW PAGE --> <!-- NEW PAGE -->
<H3 class="title"><A NAME="8_3_48"> <H3 class="title"><A NAME="8_3_49">
<!--span class='info'--> <!--span class='info'-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3> &nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3>
<H4>Description</H4> <H4>Description</H4>

View File

@ -49,8 +49,9 @@ $subsystems = array(
$versions = array( $versions = array(
"Trunk", "Trunk",
"+2.4", "+2.5",
"+2.3.1", "+2.4.1",
"2.4",
"2.3", "2.3",
"2.2.2", "2.2.2",
"2.2.1", "2.2.1",