Prep for 2.6 release.

pull/193/head
Michael R Sweet 16 years ago
parent f3475bf739
commit e1b9f509fe
  1. 117
      README
  2. 14
      www/data/software.md5
  3. 10
      www/docfiles/advanced.html
  4. 12
      www/docfiles/basics.html
  5. 13
      www/docfiles/index.html
  6. 4
      www/docfiles/install.html
  7. 28
      www/docfiles/intro.html
  8. 6
      www/docfiles/license.html
  9. 17
      www/docfiles/mxmldoc.html
  10. 3198
      www/docfiles/reference.html
  11. 60
      www/docfiles/relnotes.html
  12. 4
      www/docfiles/schema.html
  13. 18
      www/index.php
  14. 153
      www/mxml.html
  15. 11
      www/phplib/mirrors.php
  16. 12
      www/software.php
  17. 4
      www/str.php

117
README

@ -1,4 +1,4 @@
README - 2009-01-12 README - 2009-05-17
------------------- -------------------
@ -6,90 +6,82 @@ INTRODUCTION
This README file describes the Mini-XML library version 2.6. This README file describes the Mini-XML library version 2.6.
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
read XML and XML-like data files in your application without XML-like data files in your application without requiring large non-standard
requiring large non-standard libraries. Mini-XML only libraries. Mini-XML only requires an ANSI C compatible compiler (GCC works,
requires an ANSI C compatible compiler (GCC works, as do as do most vendors' ANSI C compilers) and a "make" program.
most vendors' ANSI C compilers) and a "make" program.
Mini-XML provides the following functionality: Mini-XML provides the following functionality:
- Reading of UTF-8 and UTF-16 and writing of UTF-8 - Reading of UTF-8 and UTF-16 and writing of UTF-8 encoded XML files and
encoded XML files and strings. strings.
- Data is stored in a linked-list tree structure, - Data is stored in a linked-list tree structure, preserving the XML
preserving the XML data hierarchy. data hierarchy.
- Supports arbitrary element names, attributes, and - Supports arbitrary element names, attributes, and attribute values
attribute values with no preset limits, just available with no preset limits, just available memory.
memory. - Supports integer, real, opaque ("cdata"), and text data types in
- Supports integer, real, opaque ("cdata"), and text "leaf" nodes.
data types in "leaf" nodes.
- Functions for creating and managing trees of data. - Functions for creating and managing trees of data.
- "Find" and "walk" functions for easily locating and - "Find" and "walk" functions for easily locating and navigating trees
navigating trees of data. of data.
Mini-XML doesn't do validation or other types of processing Mini-XML doesn't do validation or other types of processing on the data
on the data based upon schema files or other sources of based upon schema files or other sources of definition information.
definition information.
BUILDING Mini-XML BUILDING Mini-XML
Mini-XML comes with an autoconf-based configure script; just Mini-XML comes with an autoconf-based configure script; just type the
type the following command to get things going: following command to get things going:
./configure ./configure
The default install prefix is /usr/local, which can be The default install prefix is /usr/local, which can be overridden using the
overridden using the --prefix option: --prefix option:
./configure --prefix=/foo ./configure --prefix=/foo
Other configure options can be found using the --help Other configure options can be found using the --help option:
option:
./configure --help ./configure --help
Once you have configured the software, type "make" to do the Once you have configured the software, type "make" to do the build and run
build and run the test program to verify that things are the test program to verify that things are working, as follows:
working, as follows:
make make
If you are using Mini-XML under Microsoft Windows with If you are using Mini-XML under Microsoft Windows with Visual C++ 2008, use
Visual C++, use the included project files in the "vcnet" the included project files in the "vcnet" subdirectory to build the library
subdirectory to build the library instead. instead.
INSTALLING Mini-XML INSTALLING Mini-XML
The "install" target will install Mini-XML in the lib and The "install" target will install Mini-XML in the lib and include
include directories: directories:
make install make install
Once you have installed it, use the "-lmxml" option to link Once you have installed it, use the "-lmxml" option to link your application
your application against it. against it.
DOCUMENTATION DOCUMENTATION
The documentation is available in the "doc" subdirectory in The documentation is available in the "doc" subdirectory in the files
the files "mxml.html" (HTML) and "mxml.pdf" (PDF). You can "mxml.html" (HTML) and "mxml.pdf" (PDF). You can also look at the
also look at the "testmxml.c" and "mxmldoc.c" source files "testmxml.c" and "mxmldoc.c" source files for examples of using Mini-XML.
for examples of using Mini-XML.
Mini-XML provides a single header file which you include: Mini-XML provides a single header file which you include:
#include <mxml.h> #include <mxml.h>
Nodes are defined by the "mxml_node_t" structure; the "type" Nodes are defined by the "mxml_node_t" structure; the "type" member defines
member defines the node type (element, integer, opaque, the node type (element, integer, opaque, real, or text) which determines
real, or text) which determines which value you want to look which value you want to look at in the "value" union. New nodes can be
at in the "value" union. New nodes can be created using the created using the "mxmlNewElement()", "mxmlNewInteger()", "mxmlNewOpaque()",
"mxmlNewElement()", "mxmlNewInteger()", "mxmlNewOpaque()", "mxmlNewReal()", and "mxmlNewText()" functions. Only elements can have
"mxmlNewReal()", and "mxmlNewText()" functions. Only child nodes, and the top node must be an element, usually "?xml".
elements can have child nodes, and the top node must be an
element, usually "?xml".
You load an XML file using the "mxmlLoadFile()" function: You load an XML file using the "mxmlLoadFile()" function:
@ -100,8 +92,7 @@ DOCUMENTATION
tree = mxmlLoadFile(NULL, fp, MXML_NO_CALLBACK); tree = mxmlLoadFile(NULL, fp, MXML_NO_CALLBACK);
fclose(fp); fclose(fp);
Similarly, you save an XML file using the "mxmlSaveFile()" Similarly, you save an XML file using the "mxmlSaveFile()" function:
function:
FILE *fp; FILE *fp;
mxml_node_t *tree; mxml_node_t *tree;
@ -110,9 +101,8 @@ DOCUMENTATION
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK); mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
fclose(fp); fclose(fp);
The "mxmlLoadString()", "mxmlSaveAllocString()", and The "mxmlLoadString()", "mxmlSaveAllocString()", and "mxmlSaveString()"
"mxmlSaveString()" functions load XML node trees from and functions load XML node trees from and save XML node trees to strings:
save XML node trees to strings:
char buffer[8192]; char buffer[8192];
char *ptr; char *ptr;
@ -127,14 +117,13 @@ DOCUMENTATION
... ...
ptr = mxmlSaveAllocString(tree, MXML_NO_CALLBACK); ptr = mxmlSaveAllocString(tree, MXML_NO_CALLBACK);
You can find a named element/node using the You can find a named element/node using the "mxmlFindElement()" function:
"mxmlFindElement()" function:
mxml_node_t *node = mxmlFindElement(tree, tree, "name", "attr", mxml_node_t *node = mxmlFindElement(tree, tree, "name", "attr",
"value", MXML_DESCEND); "value", MXML_DESCEND);
The "name", "attr", and "value" arguments can be passed as The "name", "attr", and "value" arguments can be passed as NULL to act as
NULL to act as wildcards, e.g.: wildcards, e.g.:
/* Find the first "a" element */ /* Find the first "a" element */
node = mxmlFindElement(tree, tree, "a", NULL, NULL, MXML_DESCEND); node = mxmlFindElement(tree, tree, "a", NULL, NULL, MXML_DESCEND);
@ -167,22 +156,22 @@ DOCUMENTATION
... do something ... ... do something ...
} }
Finally, once you are done with the XML data, use the Finally, once you are done with the XML data, use the "mxmlDelete()"
"mxmlDelete()" function to recursively free the memory that function to recursively free the memory that is used for a particular node
is used for a particular node or the entire tree: or the entire tree:
mxmlDelete(tree); mxmlDelete(tree);
GETTING HELP AND REPORTING PROBLEMS GETTING HELP AND REPORTING PROBLEMS
The Mini-XML web site provides access to a discussion forum The Mini-XML web site provides access to a discussion forum and bug
and bug reporting page: reporting page:
http://www.minixml.org/ http://www.minixml.org/
LEGAL STUFF LEGAL STUFF
The Mini-XML library is Copyright 2003-2009 by Michael Sweet. The Mini-XML library is Copyright 2003-2009 by Michael Sweet. License terms
License terms are described in the file "COPYING". are described in the file "COPYING".

@ -1,16 +1,2 @@
f706377fba630b39fa02fd63642b17e5 2.5 mxml/2.5/mxml-2.5.tar.gz f706377fba630b39fa02fd63642b17e5 2.5 mxml/2.5/mxml-2.5.tar.gz
8dfa3d25d9a0146bd24324f5111d9db0 2.4 mxml/2.4/mxml-2.4.tar.gz
9b343cd7c7c139a24a382afc31a9a4e6 2.3 mxml/2.3/mxml-2.3-1.i386.rpm
2b0d69c35ada70ba9982f15cb05d006b 2.3 mxml/2.3/mxml-2.3.tar.gz
ab4ce33a866fc3e0d959e7e208a30acb 2.2.2 mxml/2.2.2/mxml-2.2.2-1.i386.rpm
ef69862ad30ef2fe66457415db5b5ab4 2.2.2 mxml/2.2.2/mxml-2.2.2.tar.gz
8b8aef306fa58cb693b89399d576864f 2.2.1 mxml/2.2.1/mxml-2.2.1-1.i386.rpm
ae8f134cc6e89ca66c0f098068516dbe 2.2.1 mxml/2.2.1/mxml-2.2.1.tar.gz
136f9dc7e44aaacc15747bd42222197c 2.2 mxml/2.2/mxml-2.2-1.i386.rpm
2c28aedee8a06eac173104a3fccce096 2.2 mxml/2.2/mxml-2.2.tar.gz
e30ff88b15f74964e20d80c6577a1cb9 2.1 mxml/2.1/mxml-2.1-1.i386.rpm
35f829a907c0319f83a3661591788ed3 2.1 mxml/2.1/mxml-2.1.tar.gz
2d010aa0cfc1058aa48b3c03bc3781ec 2.0 mxml/2.0/mxml-2.0-1.i386.rpm
bd9194cdbf717550a130789802e5b81c 2.0 mxml/2.0/mxml-2.0.tar.gz
9dfb974bd31d60c97bfa394b7f6ca63e 1.3 mxml/1.3/mxml-1.3-1.i386.rpm
9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz 9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -471,10 +471,10 @@ mxmlIndexEnum</TT>.</P>
<LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or <LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or
text) was just read</LI> text) was just read</LI>
<LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI> <LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI>
<LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - An open element was just read (<TT> <LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - A close element was just read (<TT>
&lt;element&gt;</TT>)</LI>
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - A close element was just read (<TT>
&lt;/element&gt;</TT>)</LI> &lt;/element&gt;</TT>)</LI>
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - An open element was just read (<TT>
&lt;element&gt;</TT>)</LI>
</UL> </UL>
<P>Elements are<EM> released</EM> after the close element is processed. <P>Elements are<EM> released</EM> after the close element is processed.
All other nodes are released after they are processed. The SAX callback All other nodes are released after they are processed. The SAX callback

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -68,10 +68,10 @@ hspace="10" src="2.gif" width="100"></A>Getting Started with Mini-XML</H1>
<H2><A NAME="3_2">Nodes</A></H2> <H2><A NAME="3_2">Nodes</A></H2>
<P>Every piece of information in an XML file (elements, text, numbers) <P>Every piece of information in an XML file (elements, text, numbers)
is stored in memory in &quot;nodes&quot;. Nodes are defined by the <A href="reference.html#mxml_node_t"> is stored in memory in &quot;nodes&quot;. Nodes are defined by the <A href="reference.html#mxml_node_t">
<TT>mxml_node_t</TT></A> structure. The <A href="#mxml_type_t"><TT>type</TT> <TT>mxml_node_t</TT></A> structure. The <A href="reference.html#mxml_type_t">
</A> member defines the node type (element, integer, opaque, real, or <TT>type</TT></A> member defines the node type (element, integer,
text) which determines which value you want to look at in the <A href="reference.html#mxml_value_t"> opaque, real, or text) which determines which value you want to look at
<TT>value</TT></A> union.</P> in the <A href="reference.html#mxml_value_t"><TT>value</TT></A> union.</P>
<!-- NEED 10 --> <!-- NEED 10 -->
<CENTER> <CENTER>

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -70,7 +70,12 @@ A { text-decoration: none }
</UL> </UL>
<B><A HREF="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A></B> <B><A HREF="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A></B>
<UL> <UL>
<LI><A HREF="mxmldoc.html#5_1">The Basics</A></LI> <LI><A HREF="mxmldoc.html#5_1">The Basics</A>
<UL>
<LI><A HREF="mxmldoc.html#5_1_1">Creating Man Pages</A></LI>
<LI><A HREF="mxmldoc.html#5_1_2">Creating Xcode Documentation Sets</A></LI>
</UL>
</LI>
<LI><A HREF="mxmldoc.html#5_2">Commenting Your Code</A></LI> <LI><A HREF="mxmldoc.html#5_2">Commenting Your Code</A></LI>
<LI><A HREF="mxmldoc.html#5_3">Titles, Sections, and Introductions</A></LI> <LI><A HREF="mxmldoc.html#5_3">Titles, Sections, and Introductions</A></LI>
</UL> </UL>
@ -151,6 +156,7 @@ mxml_custom_destroy_cb_t</A></LI>
</LI> </LI>
<LI><A HREF="reference.html#8_3_5">mxml_custom_t</A></LI> <LI><A HREF="reference.html#8_3_5">mxml_custom_t</A></LI>
<LI><A HREF="reference.html#mxml_element_t">mxml_element_t</A></LI> <LI><A HREF="reference.html#mxml_element_t">mxml_element_t</A></LI>
<LI><A HREF="reference.html#mxml_entity_cb_t">mxml_entity_cb_t</A></LI>
<LI><A HREF="reference.html#mxml_error_cb_t">mxml_error_cb_t</A></LI> <LI><A HREF="reference.html#mxml_error_cb_t">mxml_error_cb_t</A></LI>
<LI><A HREF="reference.html#mxml_index_t">mxml_index_t</A></LI> <LI><A HREF="reference.html#mxml_index_t">mxml_index_t</A></LI>
<LI><A HREF="reference.html#mxml_load_cb_t">mxml_load_cb_t</A></LI> <LI><A HREF="reference.html#mxml_load_cb_t">mxml_load_cb_t</A></LI>
@ -159,6 +165,7 @@ mxml_custom_destroy_cb_t</A></LI>
<LI><A HREF="reference.html#mxml_sax_cb_t">mxml_sax_cb_t</A></LI> <LI><A HREF="reference.html#mxml_sax_cb_t">mxml_sax_cb_t</A></LI>
<LI><A HREF="reference.html#mxml_sax_event_t">mxml_sax_event_t</A></LI> <LI><A HREF="reference.html#mxml_sax_event_t">mxml_sax_event_t</A></LI>
<LI><A HREF="reference.html#mxml_text_t">mxml_text_t</A></LI> <LI><A HREF="reference.html#mxml_text_t">mxml_text_t</A></LI>
<LI><A HREF="reference.html#mxml_type_t">mxml_type_t</A></LI>
<LI><A HREF="reference.html#mxml_value_t">mxml_value_t</A></LI> <LI><A HREF="reference.html#mxml_value_t">mxml_value_t</A></LI>
</UL> </UL>
</LI> </LI>

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -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.5, a small XML <P>This programmers manual describes Mini-XML version 2.6, 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/">
@ -54,12 +54,13 @@ libxml2</TT> library with something substantially smaller and
projects/software applications:</P> projects/software applications:</P>
<UL> <UL>
<LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI> <LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI>
<LI><A href="http://www.cups.org/ddk/">CUPS Driver Development Kit</A></LI>
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI> <LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
</UL> </UL>
<P>Please email me (mxml @ easysw . com) if you would like your project <P>Please email me (mxml @ easysw . com) if you would like your project
added or removed from this list, or if you have any comments/quotes you added or removed from this list, or if you have any comments/quotes you
would like me to publish about your experiences with Mini-XML.</P> would like me to publish about your experiences with Mini-XML.</P>
<!-- NEED 1in -->
<H2><A NAME="1_1">Organization of This Document</A></H2> <H2><A NAME="1_1">Organization of This Document</A></H2>
<P>This manual is organized into the following chapters and appendices:</P> <P>This manual is organized into the following chapters and appendices:</P>
<UL> <UL>
@ -90,14 +91,14 @@ libxml2</TT> library with something substantially smaller and
<P>Various font and syntax conventions are used in this guide. Examples <P>Various font and syntax conventions are used in this guide. Examples
and their meanings and uses are explained below:</P> and their meanings and uses are explained below:</P>
<DL> <DL>
<DT><CODE>lpstat</CODE> <DT><CODE>mxmldoc</CODE>
<BR> <CODE>lpstat(1)</CODE></DT> <BR> <CODE>mxmldoc(1)</CODE></DT>
<DD>The names of commands; the first mention of a command or function in <DD>The names of commands; the first mention of a command or function in
a chapter is followed by a manual page section number. a chapter is followed by a manual page section number.
<BR> <BR>
<BR></DD> <BR></DD>
<DT><VAR>/var</VAR> <DT><VAR>/var</VAR>
<BR><VAR> /usr/share/cups/data/testprint.ps</VAR></DT> <BR><VAR> /etc/hosts</VAR></DT>
<DD>File and directory names. <DD>File and directory names.
<BR> <BR>
<BR></DD> <BR></DD>
@ -164,16 +165,9 @@ libxml2</TT> library with something substantially smaller and
<!-- NEED 6 --> <!-- NEED 6 -->
<H2><A NAME="1_5">Legal Stuff</A></H2> <H2><A NAME="1_5">Legal Stuff</A></H2>
<P>The Mini-XML library is copyright 2003-2008 by Michael Sweet.</P> <P>The Mini-XML library is copyright 2003-2009 by Michael Sweet. License
<P>This library is free software; you can redistribute it and/or modify terms are described in <A href="license.html#LICENSE">Appendix A -
it under the terms of the <A href="license.html#LICENSE">GNU Library Mini-XML License</A>.</P>
General Public License</A> as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any
later version.</P>
<P>This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.</P>
<HR NOSHADE> <HR NOSHADE>
<A HREF="index.html">Contents</A> <A HREF="index.html">Contents</A>
<A HREF="install.html">Next</A> <A HREF="install.html">Next</A>

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -47,6 +47,8 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
identify the Mini-XML license in your program or documentation as identify the Mini-XML license in your program or documentation as
required by section 6 of the LGPL.</LI> required by section 6 of the LGPL.</LI>
</OL> </OL>
<!-- NEW PAGE -->
<P align="center"><B>GNU LIBRARY GENERAL PUBLIC LICENSE</B></P> <P align="center"><B>GNU LIBRARY GENERAL PUBLIC LICENSE</B></P>
<P align="center">Version 2, June 1991 <P align="center">Version 2, June 1991
<BR> Copyright (C) 1991 Free Software Foundation, Inc. <BR> Copyright (C) 1991 Free Software Foundation, Inc.

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -64,6 +64,7 @@ hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
<PRE> <PRE>
<KBD>mxmldoc filename.xml &gt;filename.html ENTER</KBD> <KBD>mxmldoc filename.xml &gt;filename.html ENTER</KBD>
</PRE> </PRE>
<H3><A NAME="5_1_1">Creating Man Pages</A></H3>
<P>The <TT>--man filename</TT> option tells <TT>mxmldoc</TT> to create a <P>The <TT>--man filename</TT> option tells <TT>mxmldoc</TT> to create a
man page instead of HTML documentation, for example:</P> man page instead of HTML documentation, for example:</P>
<PRE> <PRE>
@ -72,10 +73,16 @@ hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
<KBD>mxmldoc --man filename *.h *.c \ <KBD>mxmldoc --man filename *.h *.c \
&gt;filename.man ENTER</KBD> &gt;filename.man ENTER</KBD>
<KBD>mxmldoc --man filename filename.xml *.h *.c \
&gt;filename.man ENTER</KBD>
</PRE> </PRE>
<H3><A NAME="5_1_2">Creating Xcode Documentation Sets</A></H3>
<P>The <TT>--docset directory.docset</TT> option tells <TT>mxmldoc</TT>
to create an Xcode documentation set containing the HTML documentation,
for example:</P>
<PRE>
<KBD>mxmldoc --docset foo.docset *.h *.c foo.xml ENTER</KBD>
</PRE>
<P>Xcode documentation sets can only be built on Mac OS X with Xcode 3.0
or higher installed.</P>
<H2><A NAME="5_2">Commenting Your Code</A></H2> <H2><A NAME="5_2">Commenting Your Code</A></H2>
<P>As noted previously, <TT>mxmldoc</TT> looks for in-line comments to <P>As noted previously, <TT>mxmldoc</TT> looks for in-line comments to
describe the functions, types, and constants in your code. <TT>Mxmldoc</TT> describe the functions, types, and constants in your code. <TT>Mxmldoc</TT>

File diff suppressed because it is too large Load Diff

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">
@ -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.5</A></H2> <H2><A NAME="7_1">Changes in Mini-XML 2.6</A></H2>
<UL>
<LI>Documentation fixes (STR #91, STR #92)</LI>
<LI>The mxmldoc program did not handle typedef comments properly (STR
#72)</LI>
<LI>Added support for &quot;long long&quot; printf formats.</LI>
<LI>The XML parser now rejects UTF-8 XML files that start with a BOM
(STR #89)</LI>
<LI>The mxmldoc program now supports generating Xcode documentation
sets.</LI>
<LI>mxmlSave*() did not output UTF-8 correctly on some platforms.</LI>
<LI>mxmlNewXML() now adds encoding=&quot;utf-8&quot; in the ?xml directive to
avoid problems with non-conformant XML parsers that assume something
other than UTF-8 as the default encoding.</LI>
<LI>Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
&quot;&lt;?xml ... ?&gt;&quot; was always followed by a newline (STR #76)</LI>
<LI>The mxml.pc.in file was broken (STR #79)</LI>
<LI>The mxmldoc program now handles &quot;typedef enum name {} name&quot;
correctly (STR #72)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.5</A></H2>
<UL> <UL>
<LI>The mxmldoc program now makes greater use of CSS and supports a <LI>The mxmldoc program now makes greater use of CSS and supports a
--css option to embed an alternate stylesheet.</LI> --css option to embed an alternate stylesheet.</LI>
@ -47,7 +67,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
top level of a document (STR #67)</LI> top level of a document (STR #67)</LI>
<LI>Spaces around the &quot;=&quot; in attributes were not supported (STR #67)</LI> <LI>Spaces around the &quot;=&quot; in attributes were not supported (STR #67)</LI>
</UL> </UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.4</A></H2> <H2><A NAME="7_3">Changes in Mini-XML 2.4</A></H2>
<UL> <UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI> <LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for <LI>The mxmldoc program did not output argument descriptions for
@ -67,7 +87,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called <LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI> with a node with no children as the top node (STR #53)</LI>
</UL> </UL>
<H2><A NAME="7_3">Changes in Mini-XML 2.3</A></H2> <H2><A NAME="7_4">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>
@ -105,12 +125,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_4">Changes in Mini-XML 2.2.2</A></H2> <H2><A NAME="7_5">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_5">Changes in Mini-XML 2.2.1</A></H2> <H2><A NAME="7_6">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>
@ -121,7 +141,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_6">Changes in Mini-XML 2.2</A></H2> <H2><A NAME="7_7">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
@ -135,7 +155,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_7">Changes in Mini-XML 2.1</A></H2> <H2><A NAME="7_8">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
@ -146,7 +166,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_8">Changes in Mini-XML 2.0</A></H2> <H2><A NAME="7_9">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>
@ -179,7 +199,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_9">Changes in Mini-XML 1.3</A></H2> <H2><A NAME="7_10">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>
@ -195,7 +215,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_10">Changes in Mini-XML 1.2</A></H2> <H2><A NAME="7_11">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()
@ -208,13 +228,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_11">Changes in Mini-XML 1.1.2</A></H2> <H2><A NAME="7_12">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_12">Changes in Mini-XML 1.1.1</A></H2> <H2><A NAME="7_13">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
@ -225,7 +245,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_13">Changes in Mini-XML 1.1</A></H2> <H2><A NAME="7_14">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.
@ -237,7 +257,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_14">Changes in Mini-XML 1.0</A></H2> <H2><A NAME="7_15">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>
@ -245,7 +265,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_15">Changes in Mini-XML 0.93</A></H2> <H2><A NAME="7_16">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>
@ -270,15 +290,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_16">Changes in Mini-XML 0.92</A></H2> <H2><A NAME="7_17">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_17">Changes in Mini-XML 0.91</A></H2> <H2><A NAME="7_18">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_18">Changes in Mini-XML 0.9</A></H2> <H2><A NAME="7_19">Changes in Mini-XML 0.9</A></H2>
<UL> <UL>
<LI>Initial public release.</LI> <LI>Initial public release.</LI>
</UL> </UL>

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<LINK REL="Start" HREF="index.html"> <LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html"> <LINK REL="Contents" HREF="index.html">

@ -11,11 +11,23 @@ include_once "phplib/poll.php";
html_header(); html_header();
$fp = fopen("data/software.md5", "r");
$line = fgets($fp, 255);
$data = explode(" ", $line);
fclose($fp);
$version = $data[1];
$file = $data[2];
?> ?>
<h1><img src='images/logo-large.gif' style='margin-left: 20px; float: right;' <div style='margin-left: 20px; float: right; line-height: 200%;
width='150' height='150' alt='Mini-XML logo'>Mini-XML: Lightweight XML text-align: center;'><a
Library</h1> href='software.php?FILE=<?print($file);?>&amp;VERSION=<?print($version);?>'><img
src='images/logo-large.gif' width='150' height='150' alt='Mini-XML logo'><br>
Download v<?print($version);?></a></div>
<h1>Mini-XML: Lightweight XML Library</h1>
<p>Mini-XML is a small XML library that you can use to read and write XML and <p>Mini-XML is a small XML library that you can use to read and write XML and
XML-like data files in your application without requiring large non-standard XML-like data files in your application without requiring large non-standard

@ -1,9 +1,9 @@
<!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.5</TITLE> <TITLE>Mini-XML Programmers Manual, Version 2.6</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet"> <META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2008"> <META NAME="copyright" CONTENT="Copyright 2003-2009">
<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">
<STYLE TYPE="text/css"><!-- <STYLE TYPE="text/css"><!--
BODY { font-family: sans-serif } BODY { font-family: sans-serif }
@ -66,7 +66,12 @@ A { text-decoration: none }
</UL> </UL>
<B><A HREF="#MXMLDOC">Using the mxmldoc Utility</A></B> <B><A HREF="#MXMLDOC">Using the mxmldoc Utility</A></B>
<UL> <UL>
<LI><A HREF="#5_1">The Basics</A></LI> <LI><A HREF="#5_1">The Basics</A>
<UL>
<LI><A HREF="#5_1_1">Creating Man Pages</A></LI>
<LI><A HREF="#5_1_2">Creating Xcode Documentation Sets</A></LI>
</UL>
</LI>
<LI><A HREF="#5_2">Commenting Your Code</A></LI> <LI><A HREF="#5_2">Commenting Your Code</A></LI>
<LI><A HREF="#5_3">Titles, Sections, and Introductions</A></LI> <LI><A HREF="#5_3">Titles, Sections, and Introductions</A></LI>
</UL> </UL>
@ -140,6 +145,7 @@ A { text-decoration: none }
<LI><A HREF="#mxml_custom_save_cb_t">mxml_custom_save_cb_t</A></LI> <LI><A HREF="#mxml_custom_save_cb_t">mxml_custom_save_cb_t</A></LI>
<LI><A HREF="#8_3_5">mxml_custom_t</A></LI> <LI><A HREF="#8_3_5">mxml_custom_t</A></LI>
<LI><A HREF="#mxml_element_t">mxml_element_t</A></LI> <LI><A HREF="#mxml_element_t">mxml_element_t</A></LI>
<LI><A HREF="#mxml_entity_cb_t">mxml_entity_cb_t</A></LI>
<LI><A HREF="#mxml_error_cb_t">mxml_error_cb_t</A></LI> <LI><A HREF="#mxml_error_cb_t">mxml_error_cb_t</A></LI>
<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_load_cb_t">mxml_load_cb_t</A></LI> <LI><A HREF="#mxml_load_cb_t">mxml_load_cb_t</A></LI>
@ -148,6 +154,7 @@ A { text-decoration: none }
<LI><A HREF="#mxml_sax_cb_t">mxml_sax_cb_t</A></LI> <LI><A HREF="#mxml_sax_cb_t">mxml_sax_cb_t</A></LI>
<LI><A HREF="#mxml_sax_event_t">mxml_sax_event_t</A></LI> <LI><A HREF="#mxml_sax_event_t">mxml_sax_event_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>
@ -178,7 +185,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.5, a small XML <P>This programmers manual describes Mini-XML version 2.6, 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/">
@ -204,12 +211,13 @@ libxml2</TT> library with something substantially smaller and
projects/software applications:</P> projects/software applications:</P>
<UL> <UL>
<LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI> <LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI>
<LI><A href="http://www.cups.org/ddk/">CUPS Driver Development Kit</A></LI>
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI> <LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
</UL> </UL>
<P>Please email me (mxml @ easysw . com) if you would like your project <P>Please email me (mxml @ easysw . com) if you would like your project
added or removed from this list, or if you have any comments/quotes you added or removed from this list, or if you have any comments/quotes you
would like me to publish about your experiences with Mini-XML.</P> would like me to publish about your experiences with Mini-XML.</P>
<!-- NEED 1in -->
<H2><A NAME="1_1">Organization of This Document</A></H2> <H2><A NAME="1_1">Organization of This Document</A></H2>
<P>This manual is organized into the following chapters and appendices:</P> <P>This manual is organized into the following chapters and appendices:</P>
<UL> <UL>
@ -238,14 +246,14 @@ libxml2</TT> library with something substantially smaller and
<P>Various font and syntax conventions are used in this guide. Examples <P>Various font and syntax conventions are used in this guide. Examples
and their meanings and uses are explained below:</P> and their meanings and uses are explained below:</P>
<DL> <DL>
<DT><CODE>lpstat</CODE> <DT><CODE>mxmldoc</CODE>
<BR> <CODE>lpstat(1)</CODE></DT> <BR> <CODE>mxmldoc(1)</CODE></DT>
<DD>The names of commands; the first mention of a command or function in <DD>The names of commands; the first mention of a command or function in
a chapter is followed by a manual page section number. a chapter is followed by a manual page section number.
<BR> <BR>
<BR></DD> <BR></DD>
<DT><VAR>/var</VAR> <DT><VAR>/var</VAR>
<BR><VAR> /usr/share/cups/data/testprint.ps</VAR></DT> <BR><VAR> /etc/hosts</VAR></DT>
<DD>File and directory names. <DD>File and directory names.
<BR> <BR>
<BR></DD> <BR></DD>
@ -312,15 +320,9 @@ libxml2</TT> library with something substantially smaller and
<!-- NEED 6 --> <!-- NEED 6 -->
<H2><A NAME="1_5">Legal Stuff</A></H2> <H2><A NAME="1_5">Legal Stuff</A></H2>
<P>The Mini-XML library is copyright 2003-2008 by Michael Sweet.</P> <P>The Mini-XML library is copyright 2003-2009 by Michael Sweet. License
<P>This library is free software; you can redistribute it and/or modify terms are described in <A href="#LICENSE">Appendix A - Mini-XML License</A>
it under the terms of the <A href="#LICENSE">GNU Library General Public .</P>
License</A> as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.</P>
<P>This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.</P>
<HR NOSHADE> <HR NOSHADE>
<H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100" <H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100"
hspace="10" src="1.gif" width="100"></A>Building, Installing, and hspace="10" src="1.gif" width="100"></A>Building, Installing, and
@ -1246,10 +1248,10 @@ mxmlSAXLoadString</TT></A> functions provide the SAX loading APIs. Each
<LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or <LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or
text) was just read</LI> text) was just read</LI>
<LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI> <LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI>
<LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - An open element was just read (<TT> <LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - A close element was just read (<TT>
&lt;element&gt;</TT>)</LI>
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - A close element was just read (<TT>
&lt;/element&gt;</TT>)</LI> &lt;/element&gt;</TT>)</LI>
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - An open element was just read (<TT>
&lt;element&gt;</TT>)</LI>
</UL> </UL>
<P>Elements are<EM> released</EM> after the close element is processed. <P>Elements are<EM> released</EM> after the close element is processed.
All other nodes are released after they are processed. The SAX callback All other nodes are released after they are processed. The SAX callback
@ -1381,6 +1383,7 @@ hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
<PRE> <PRE>
<KBD>mxmldoc filename.xml &gt;filename.html ENTER</KBD> <KBD>mxmldoc filename.xml &gt;filename.html ENTER</KBD>
</PRE> </PRE>
<H3><A NAME="5_1_1">Creating Man Pages</A></H3>
<P>The <TT>--man filename</TT> option tells <TT>mxmldoc</TT> to create a <P>The <TT>--man filename</TT> option tells <TT>mxmldoc</TT> to create a
man page instead of HTML documentation, for example:</P> man page instead of HTML documentation, for example:</P>
<PRE> <PRE>
@ -1389,10 +1392,16 @@ hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
<KBD>mxmldoc --man filename *.h *.c \ <KBD>mxmldoc --man filename *.h *.c \
&gt;filename.man ENTER</KBD> &gt;filename.man ENTER</KBD>
<KBD>mxmldoc --man filename filename.xml *.h *.c \
&gt;filename.man ENTER</KBD>
</PRE> </PRE>
<H3><A NAME="5_1_2">Creating Xcode Documentation Sets</A></H3>
<P>The <TT>--docset directory.docset</TT> option tells <TT>mxmldoc</TT>
to create an Xcode documentation set containing the HTML documentation,
for example:</P>
<PRE>
<KBD>mxmldoc --docset foo.docset *.h *.c foo.xml ENTER</KBD>
</PRE>
<P>Xcode documentation sets can only be built on Mac OS X with Xcode 3.0
or higher installed.</P>
<H2><A NAME="5_2">Commenting Your Code</A></H2> <H2><A NAME="5_2">Commenting Your Code</A></H2>
<P>As noted previously, <TT>mxmldoc</TT> looks for in-line comments to <P>As noted previously, <TT>mxmldoc</TT> looks for in-line comments to
describe the functions, types, and constants in your code. <TT>Mxmldoc</TT> describe the functions, types, and constants in your code. <TT>Mxmldoc</TT>
@ -1509,6 +1518,8 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
identify the Mini-XML license in your program or documentation as identify the Mini-XML license in your program or documentation as
required by section 6 of the LGPL.</LI> required by section 6 of the LGPL.</LI>
</OL> </OL>
<!-- NEW PAGE -->
<P align="center"><B>GNU LIBRARY GENERAL PUBLIC LICENSE</B></P> <P align="center"><B>GNU LIBRARY GENERAL PUBLIC LICENSE</B></P>
<P align="center">Version 2, June 1991 <P align="center">Version 2, June 1991
<BR> Copyright (C) 1991 Free Software Foundation, Inc. <BR> Copyright (C) 1991 Free Software Foundation, Inc.
@ -1925,7 +1936,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.5</A></H2> <H2><A NAME="7_1">Changes in Mini-XML 2.6</A></H2>
<UL>
<LI>Documentation fixes (STR #91, STR #92)</LI>
<LI>The mxmldoc program did not handle typedef comments properly (STR
#72)</LI>
<LI>Added support for &quot;long long&quot; printf formats.</LI>
<LI>The XML parser now rejects UTF-8 XML files that start with a BOM
(STR #89)</LI>
<LI>The mxmldoc program now supports generating Xcode documentation
sets.</LI>
<LI>mxmlSave*() did not output UTF-8 correctly on some platforms.</LI>
<LI>mxmlNewXML() now adds encoding=&quot;utf-8&quot; in the ?xml directive to
avoid problems with non-conformant XML parsers that assume something
other than UTF-8 as the default encoding.</LI>
<LI>Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
&quot;&lt;?xml ... ?&gt;&quot; was always followed by a newline (STR #76)</LI>
<LI>The mxml.pc.in file was broken (STR #79)</LI>
<LI>The mxmldoc program now handles &quot;typedef enum name {} name&quot;
correctly (STR #72)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.5</A></H2>
<UL> <UL>
<LI>The mxmldoc program now makes greater use of CSS and supports a <LI>The mxmldoc program now makes greater use of CSS and supports a
--css option to embed an alternate stylesheet.</LI> --css option to embed an alternate stylesheet.</LI>
@ -1942,7 +1973,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
top level of a document (STR #67)</LI> top level of a document (STR #67)</LI>
<LI>Spaces around the &quot;=&quot; in attributes were not supported (STR #67)</LI> <LI>Spaces around the &quot;=&quot; in attributes were not supported (STR #67)</LI>
</UL> </UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.4</A></H2> <H2><A NAME="7_3">Changes in Mini-XML 2.4</A></H2>
<UL> <UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI> <LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for <LI>The mxmldoc program did not output argument descriptions for
@ -1962,7 +1993,7 @@ hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called <LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI> with a node with no children as the top node (STR #53)</LI>
</UL> </UL>
<H2><A NAME="7_3">Changes in Mini-XML 2.3</A></H2> <H2><A NAME="7_4">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>
@ -2000,12 +2031,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_4">Changes in Mini-XML 2.2.2</A></H2> <H2><A NAME="7_5">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_5">Changes in Mini-XML 2.2.1</A></H2> <H2><A NAME="7_6">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>
@ -2016,7 +2047,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_6">Changes in Mini-XML 2.2</A></H2> <H2><A NAME="7_7">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
@ -2030,7 +2061,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_7">Changes in Mini-XML 2.1</A></H2> <H2><A NAME="7_8">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
@ -2041,7 +2072,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_8">Changes in Mini-XML 2.0</A></H2> <H2><A NAME="7_9">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>
@ -2074,7 +2105,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_9">Changes in Mini-XML 1.3</A></H2> <H2><A NAME="7_10">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>
@ -2090,7 +2121,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_10">Changes in Mini-XML 1.2</A></H2> <H2><A NAME="7_11">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()
@ -2103,13 +2134,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_11">Changes in Mini-XML 1.1.2</A></H2> <H2><A NAME="7_12">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_12">Changes in Mini-XML 1.1.1</A></H2> <H2><A NAME="7_13">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
@ -2120,7 +2151,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_13">Changes in Mini-XML 1.1</A></H2> <H2><A NAME="7_14">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.
@ -2132,7 +2163,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_14">Changes in Mini-XML 1.0</A></H2> <H2><A NAME="7_15">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>
@ -2140,7 +2171,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_15">Changes in Mini-XML 0.93</A></H2> <H2><A NAME="7_16">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>
@ -2165,15 +2196,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_16">Changes in Mini-XML 0.92</A></H2> <H2><A NAME="7_17">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_17">Changes in Mini-XML 0.91</A></H2> <H2><A NAME="7_18">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_18">Changes in Mini-XML 0.9</A></H2> <H2><A NAME="7_19">Changes in Mini-XML 0.9</A></H2>
<UL> <UL>
<LI>Initial public release.</LI> <LI>Initial public release.</LI>
</UL> </UL>
@ -2299,6 +2330,8 @@ mxml_custom_save_cb_t</A></LI>
</LI> </LI>
<LI><A href="#mxml_element_t" title="An XML element value."> <LI><A href="#mxml_element_t" title="An XML element value.">
mxml_element_t</A></LI> mxml_element_t</A></LI>
<LI><A href="#mxml_entity_cb_t" title="Entity callback function">
mxml_entity_cb_t</A></LI>
<LI><A href="#mxml_error_cb_t" title="Error callback function"> <LI><A href="#mxml_error_cb_t" title="Error callback function">
mxml_error_cb_t</A></LI> mxml_error_cb_t</A></LI>
<LI><A href="#mxml_index_t" title="An XML node index.">mxml_index_t</A></LI> <LI><A href="#mxml_index_t" title="An XML node index.">mxml_index_t</A></LI>
@ -2312,6 +2345,7 @@ mxml_save_cb_t</A></LI>
<LI><A href="#mxml_sax_event_t" title="SAX event type.">mxml_sax_event_t</A> <LI><A href="#mxml_sax_event_t" title="SAX event type.">mxml_sax_event_t</A>
</LI> </LI>
<LI><A href="#mxml_text_t" title="An XML text value.">mxml_text_t</A></LI> <LI><A href="#mxml_text_t" title="An XML text value.">mxml_text_t</A></LI>
<LI><A href="#mxml_type_t" title="The XML node type.">mxml_type_t</A></LI>
<LI><A href="#mxml_value_t" title="An XML node value.">mxml_value_t</A></LI> <LI><A href="#mxml_value_t" title="An XML node value.">mxml_value_t</A></LI>
</UL> </UL>
</LI> </LI>
@ -2340,7 +2374,6 @@ mxml_element_s</A></LI>
<LI><A href="#mxml_type_e" title="The XML node type.">mxml_type_e</A></LI> <LI><A href="#mxml_type_e" title="The XML node type.">mxml_type_e</A></LI>
</UL> </UL>
</LI> </LI>
</UL>
<H2 class="title"><A name="FUNCTIONS">Functions</A></H2> <H2 class="title"><A name="FUNCTIONS">Functions</A></H2>
<H3 class="function"><A name="mxmlAdd">mxmlAdd</A></H3> <H3 class="function"><A name="mxmlAdd">mxmlAdd</A></H3>
<P class="description">Add a node to a tree.</P> <P class="description">Add a node to a tree.</P>
@ -2466,7 +2499,14 @@ mxml_element_s</A></LI>
<H3 class="function"><A name="mxmlEntityAddCallback"> <H3 class="function"><A name="mxmlEntityAddCallback">
mxmlEntityAddCallback</A></H3> mxmlEntityAddCallback</A></H3>
<P class="description">Add a callback to convert entities to Unicode.</P> <P class="description">Add a callback to convert entities to Unicode.</P>
<P class="code"> int mxmlEntityAddCallback (void);</P> <P class="code"> int mxmlEntityAddCallback (
<BR> &nbsp;&nbsp;&nbsp;&nbsp;<A href="#mxml_entity_cb_t">mxml_entity_cb_t</A> cb
<BR> );</P>
<H4 class="parameters">Parameters</H4>
<DL>
<DT>cb</DT>
<DD class="description">Callback function to add</DD>
</DL>
<H4 class="returnvalue">Return Value</H4> <H4 class="returnvalue">Return Value</H4>
<P class="description">0 on success, -1 on failure</P> <P class="description">0 on success, -1 on failure</P>
<H3 class="function"><A name="mxmlEntityGetName">mxmlEntityGetName</A></H3> <H3 class="function"><A name="mxmlEntityGetName">mxmlEntityGetName</A></H3>
@ -2504,7 +2544,14 @@ mxmlEntityAddCallback</A></H3>
<H3 class="function"><A name="mxmlEntityRemoveCallback"> <H3 class="function"><A name="mxmlEntityRemoveCallback">
mxmlEntityRemoveCallback</A></H3> mxmlEntityRemoveCallback</A></H3>
<P class="description">Remove a callback.</P> <P class="description">Remove a callback.</P>
<P class="code"> void mxmlEntityRemoveCallback (void);</P> <P class="code"> void mxmlEntityRemoveCallback (
<BR> &nbsp;&nbsp;&nbsp;&nbsp;<A href="#mxml_entity_cb_t">mxml_entity_cb_t</A> cb
<BR> );</P>
<H4 class="parameters">Parameters</H4>
<DL>
<DT>cb</DT>
<DD class="description">Callback function to remove</DD>
</DL>
<H3 class="function"><A name="mxmlFindElement">mxmlFindElement</A></H3> <H3 class="function"><A name="mxmlFindElement">mxmlFindElement</A></H3>
<P class="description">Find the named element.</P> <P class="description">Find the named element.</P>
<P class="code"> <A href="#mxml_node_t">mxml_node_t</A> *mxmlFindElement <P class="code"> <A href="#mxml_node_t">mxml_node_t</A> *mxmlFindElement
@ -3405,10 +3452,10 @@ mxmlSetCustomHandlers</A></H3>
<H4 class="parameters">Parameters</H4> <H4 class="parameters">Parameters</H4>
<DL> <DL>
<DT>column</DT> <DT>column</DT>
<DD class="description">Column for wrapping</DD> <DD class="description">Column for wrapping, 0 to disable wrapping</DD>
</DL> </DL>
<H4 class="discussion">Discussion</H4> <H4 class="discussion">Discussion</H4>
<P class="discussion">Wrapping is disabled when &quot;column&quot; is &lt;= 0.</P> <P class="discussion">Wrapping is disabled when &quot;column&quot; is 0.</P>
<H3 class="function"><A name="mxmlWalkNext">mxmlWalkNext</A></H3> <H3 class="function"><A name="mxmlWalkNext">mxmlWalkNext</A></H3>
<P class="description">Walk to the next logical node in the tree.</P> <P class="description">Walk to the next logical node in the tree.</P>
<P class="code"> <A href="#mxml_node_t">mxml_node_t</A> *mxmlWalkNext ( <P class="code"> <A href="#mxml_node_t">mxml_node_t</A> *mxmlWalkNext (
@ -3484,6 +3531,9 @@ mxml_node_t</A> *);</P>
<P class="description">An XML element value.</P> <P class="description">An XML element value.</P>
<P class="code"> typedef struct <A href="#mxml_element_s">mxml_element_s</A> <P class="code"> typedef struct <A href="#mxml_element_s">mxml_element_s</A>
mxml_element_t;</P> mxml_element_t;</P>
<H3 class="typedef"><A name="mxml_entity_cb_t">mxml_entity_cb_t</A></H3>
<P class="description">Entity callback function</P>
<P class="code"> typedef int (*mxml_entity_cb_t)(const char *);</P>
<H3 class="typedef"><A name="mxml_error_cb_t">mxml_error_cb_t</A></H3> <H3 class="typedef"><A name="mxml_error_cb_t">mxml_error_cb_t</A></H3>
<P class="description">Error callback function</P> <P class="description">Error callback function</P>
<P class="code"> typedef void (*mxml_error_cb_t)(const char *);</P> <P class="code"> typedef void (*mxml_error_cb_t)(const char *);</P>
@ -3493,8 +3543,8 @@ mxml_node_t</A> *);</P>
mxml_index_t;</P> mxml_index_t;</P>
<H3 class="typedef"><A name="mxml_load_cb_t">mxml_load_cb_t</A></H3> <H3 class="typedef"><A name="mxml_load_cb_t">mxml_load_cb_t</A></H3>
<P class="description">Load callback function</P> <P class="description">Load callback function</P>
<P class="code"> typedef mxml_type_t (*mxml_load_cb_t)(<A href="#mxml_node_t"> <P class="code"> typedef <A href="#mxml_type_t">mxml_type_t</A>
mxml_node_t</A> *);</P> (*mxml_load_cb_t)(<A href="#mxml_node_t">mxml_node_t</A> *);</P>
<H3 class="typedef"><A name="mxml_node_t">mxml_node_t</A></H3> <H3 class="typedef"><A name="mxml_node_t">mxml_node_t</A></H3>
<P class="description">An XML node.</P> <P class="description">An XML node.</P>
<P class="code"> typedef struct <A href="#mxml_node_s">mxml_node_s</A> <P class="code"> typedef struct <A href="#mxml_node_s">mxml_node_s</A>
@ -3515,6 +3565,10 @@ mxml_sax_event_e</A> mxml_sax_event_t;</P>
<P class="description">An XML text value.</P> <P class="description">An XML text value.</P>
<P class="code"> typedef struct <A href="#mxml_text_s">mxml_text_s</A> <P class="code"> typedef struct <A href="#mxml_text_s">mxml_text_s</A>
mxml_text_t;</P> mxml_text_t;</P>
<H3 class="typedef"><A name="mxml_type_t">mxml_type_t</A></H3>
<P class="description">The XML node type.</P>
<P class="code"> typedef enum <A href="#mxml_type_e">mxml_type_e</A>
mxml_type_t;</P>
<H3 class="typedef"><A name="mxml_value_t">mxml_value_t</A></H3> <H3 class="typedef"><A name="mxml_value_t">mxml_value_t</A></H3>
<P class="description">An XML node value.</P> <P class="description">An XML node value.</P>
<P class="code"> typedef union <A href="#mxml_value_u">mxml_value_u</A> <P class="code"> typedef union <A href="#mxml_value_u">mxml_value_u</A>
@ -3596,7 +3650,7 @@ mxml_sax_event_e</A> mxml_sax_event_t;</P>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;struct <A href="#mxml_node_s">mxml_node_s</A> *parent; <BR> &nbsp;&nbsp;&nbsp;&nbsp;struct <A href="#mxml_node_s">mxml_node_s</A> *parent;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;struct <A href="#mxml_node_s">mxml_node_s</A> *prev; <BR> &nbsp;&nbsp;&nbsp;&nbsp;struct <A href="#mxml_node_s">mxml_node_s</A> *prev;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;int ref_count; <BR> &nbsp;&nbsp;&nbsp;&nbsp;int ref_count;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;mxml_type_t type; <BR> &nbsp;&nbsp;&nbsp;&nbsp;<A href="#mxml_type_t">mxml_type_t</A> type;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;void *user_data; <BR> &nbsp;&nbsp;&nbsp;&nbsp;void *user_data;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;<A href="#mxml_value_t">mxml_value_t</A> value; <BR> &nbsp;&nbsp;&nbsp;&nbsp;<A href="#mxml_value_t">mxml_value_t</A> value;
<BR> };</P> <BR> };</P>
@ -3703,6 +3757,7 @@ mxml_sax_event_e</A> mxml_sax_event_t;</P>
<DT>MXML_TEXT</DT> <DT>MXML_TEXT</DT>
<DD class="description">Text fragment</DD> <DD class="description">Text fragment</DD>
</DL> </DL>
</UL>
</DIV><HR NOSHADE> </DIV><HR NOSHADE>
<H1 align="right"><A name="SCHEMA"><IMG align="right" alt="D" height="100" <H1 align="right"><A name="SCHEMA"><IMG align="right" alt="D" height="100"
hspace="10" src="D.gif" width="100"></A>XML Schema</H1> hspace="10" src="D.gif" width="100"></A>XML Schema</H1>

@ -32,8 +32,15 @@ mirror_closest()
// Get the current longitude for the client... // Get the current longitude for the client...
$current = geoip_record_by_name($_SERVER["REMOTE_ADDR"]); if (!extension_loaded("geoip.so") ||
$lon = $current["longitude"]; $_SERVER["REMOTE_ADDR"] == "::1" ||
$_SERVER["REMOTE_ADDR"] == "127.0.0.1")
$lon = -120;
else
{
$current = geoip_record_by_name($_SERVER["REMOTE_ADDR"]);
$lon = $current["longitude"];
}
// Loop through the mirrors to find the closest one, currently just using // Loop through the mirrors to find the closest one, currently just using
// the longitude... // the longitude...

@ -33,17 +33,7 @@ if (array_key_exists("FILE", $_GET))
else else
$file = ""; $file = "";
if (array_key_exists("SITE", $_GET) && $site = mirror_closest();
array_key_exists($_GET["SITE"], $PROJECT_SITELIST))
{
$site = $_GET["SITE"];
setcookie("SITE", $site, time() + 90 * 86400, "/");
}
else if (array_key_exists("SITE", $_COOKIE) &&
array_key_exists($_COOKIE["SITE"], $MIRRORS))
$site = $_COOKIE["SITE"];
else
$site = mirror_closest();
if (array_key_exists("VERSION", $_GET)) if (array_key_exists("VERSION", $_GET))
$version = $_GET["VERSION"]; $version = $_GET["VERSION"];

@ -52,8 +52,8 @@ $versions = array(
"+None", "+None",
"Trunk", "Trunk",
"+3.0", "+3.0",
"+2.6", "+2.6.1",
"+2.5.1", "2.6",
"2.5", "2.5",
"2.4", "2.4",
"2.3", "2.3",

Loading…
Cancel
Save