Don't install or create formatted man pages.
New logo. Documentation updates.
33
Makefile.in
@ -32,7 +32,6 @@ INSTALL = @INSTALL@
|
||||
LIBMXML = @LIBMXML@
|
||||
LN = @LN@ -s
|
||||
MKDIR = @MKDIR@
|
||||
NROFF = @NROFF@
|
||||
OPTIM = @OPTIM@
|
||||
RANLIB = @RANLIB@
|
||||
RM = @RM@ -f
|
||||
@ -53,16 +52,6 @@ docdir = @docdir@
|
||||
BUILDROOT = $(DSTROOT)
|
||||
|
||||
|
||||
#
|
||||
# Manpage extensions...
|
||||
#
|
||||
|
||||
CAT1EXT = @CAT1EXT@
|
||||
CAT3EXT = @CAT3EXT@
|
||||
MAN1EXT = @MAN1EXT@
|
||||
MAN3EXT = @MAN3EXT@
|
||||
|
||||
|
||||
#
|
||||
# Install commands...
|
||||
#
|
||||
@ -79,12 +68,9 @@ INSTALL_SCRIPT = $(INSTALL) -m 755
|
||||
# Rules...
|
||||
#
|
||||
|
||||
.SUFFIXES: .0 .1 .3 .c .man .o
|
||||
.SUFFIXES: .c .man .o
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) -c $<
|
||||
.man.0 .man.1 .man.3:
|
||||
$(RM) $@
|
||||
$(NROFF) -man $< >$@
|
||||
|
||||
|
||||
#
|
||||
@ -97,8 +83,7 @@ PUBLIBOBJS = mxml-attr.o mxml-entity.o mxml-file.o mxml-index.o \
|
||||
mxml-node.o mxml-search.o mxml-set.o
|
||||
LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o
|
||||
OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
|
||||
TARGETS = $(LIBMXML) mxmldoc doc/mxml.$(CAT3EXT) \
|
||||
doc/mxmldoc.$(CAT1EXT) testmxml mxml.xml
|
||||
TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man
|
||||
|
||||
|
||||
#
|
||||
@ -143,14 +128,10 @@ install: $(TARGETS) install-$(LIBMXML) install-libmxml.a
|
||||
$(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir)
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig
|
||||
$(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat1
|
||||
$(INSTALL_MAN) doc/mxmldoc.$(CAT1EXT) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(mandir)/cat3
|
||||
$(INSTALL_MAN) doc/mxml.$(CAT3EXT) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT)
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1
|
||||
$(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
||||
$(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3
|
||||
$(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT)
|
||||
$(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3
|
||||
|
||||
install-libmxml.a:
|
||||
$(INSTALL_DIR) $(BUILDROOT)$(libdir)
|
||||
@ -187,10 +168,8 @@ uninstall: uninstall-$(LIBMXML) uninstall-libmxml.a
|
||||
$(RM) -r $(BUILDROOT)$(docdir)
|
||||
$(RM) $(BUILDROOT)$(includedir)/mxml.h
|
||||
$(RM) $(BUILDROOT)$(libdir)/pkgconfig/mxml.pc
|
||||
$(RM) $(BUILDROOT)$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
||||
$(RM) $(BUILDROOT)$(mandir)/cat3/mxml.$(CAT3EXT)
|
||||
$(RM) $(BUILDROOT)$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
||||
$(RM) $(BUILDROOT)$(mandir)/man3/mxml.$(MAN3EXT)
|
||||
$(RM) $(BUILDROOT)$(mandir)/man1/mxmldoc.1
|
||||
$(RM) $(BUILDROOT)$(mandir)/man3/mxml.3
|
||||
|
||||
uninstall-libmxml.a:
|
||||
$(RM) $(BUILDROOT)$(libdir)/libmxml.a
|
||||
|
32
configure.in
@ -75,15 +75,6 @@ AC_PATH_PROG(AR,ar)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(LN,ln)
|
||||
AC_PATH_PROG(MKDIR,mkdir)
|
||||
AC_PATH_PROG(NROFF,nroff)
|
||||
if test x$NROFF = x; then
|
||||
AC_PATH_PROG(GROFF,groff)
|
||||
if test x$GROFF = x; then
|
||||
NROFF="echo"
|
||||
else
|
||||
NROFF="$GROFF -T ascii"
|
||||
fi
|
||||
fi
|
||||
AC_PATH_PROG(RM,rm)
|
||||
|
||||
dnl Flags for "ar" command...
|
||||
@ -263,29 +254,6 @@ if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl More manpage stuff...
|
||||
case "$uname" in
|
||||
*BSD* | Darwin*)
|
||||
# *BSD
|
||||
CAT1EXT="0"
|
||||
MAN1EXT="1"
|
||||
CAT3EXT="0"
|
||||
MAN3EXT="3"
|
||||
;;
|
||||
*)
|
||||
# All others
|
||||
CAT1EXT="1"
|
||||
MAN1EXT="1"
|
||||
CAT3EXT="3"
|
||||
MAN3EXT="3"
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(CAT1EXT)
|
||||
AC_SUBST(CAT3EXT)
|
||||
AC_SUBST(MAN1EXT)
|
||||
AC_SUBST(MAN3EXT)
|
||||
|
||||
dnl pkg-config stuff...
|
||||
if test "$includedir" != /usr/include; then
|
||||
PC_CFLAGS="-I$includedir"
|
||||
|
@ -1,8 +1,9 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='ADVANCED'>3 - More Mini-XML
|
||||
Programming Techniques</a></h1>
|
||||
<h1 align='right'><a name='ADVANCED'><img src="3.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="3"></a>More Mini-XML
|
||||
Programming Techniques</h1>
|
||||
|
||||
<p>This chapter shows additional ways to use the Mini-XML
|
||||
library in your programs.</p>
|
||||
@ -567,7 +568,7 @@ directives like <tt><?xml ... ?></tt> and <tt><!DOCTYPE ... ></tt>
|
||||
* Retain headings and titles...
|
||||
*/
|
||||
|
||||
const char *name = node->value.element.name;
|
||||
char *name = node->value.element.name;
|
||||
|
||||
if (!strcmp(name, "html") ||
|
||||
!strcmp(name, "head") ||
|
||||
|
134
doc/basics.html
@ -1,11 +1,41 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='BASICS'>2 - Getting Started with
|
||||
Mini-XML</a></h1>
|
||||
<h1 align='right'><a name='BASICS'><img src="2.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="2"></a>Getting Started
|
||||
with Mini-XML</h1>
|
||||
|
||||
<p>This chapter describes how to write programs that use Mini-XML to
|
||||
access data in an XML file. Mini-XML provides the following
|
||||
functionality:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Functions for creating and managing XML documents
|
||||
in memory.</li>
|
||||
|
||||
<li>Reading of UTF-8 and UTF-16 encoded XML files and
|
||||
strings.</li>
|
||||
|
||||
<li>Writing of UTF-8 encoded XML files and strings.</li>
|
||||
|
||||
<li>Support for arbitrary element names, attributes, and
|
||||
attribute values with no preset limits, just available
|
||||
memory.</li>
|
||||
|
||||
<li>Support for integer, real, opaque ("cdata"), and text
|
||||
data types in "leaf" nodes.</li>
|
||||
|
||||
<li>"Find", "index", and "walk" functions for easily
|
||||
accessing data in an XML document.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Mini-XML doesn't do validation or other types of processing
|
||||
on the data based upon schema files or other sources of
|
||||
definition information, nor does it support character entities
|
||||
other than those required by the XML specification.</p>
|
||||
|
||||
<p>This chapter describes how to write programs that use
|
||||
Mini-XML to access data in an XML file.</p>
|
||||
|
||||
<h2>The Basics</h2>
|
||||
|
||||
@ -43,24 +73,64 @@ defines the node type (element, integer, opaque, real, or text)
|
||||
which determines which value you want to look at in the <a
|
||||
href='#mxml_value_t'><tt>value</tt></a> union.</p>
|
||||
|
||||
<p>New nodes can be created using the <a
|
||||
href='#mxmlNewElement'><tt>mxmlNewElement()</tt></a>, <a
|
||||
href='#mxmlNewInteger'><tt>mxmlNewInteger()</tt></a>, <a
|
||||
href='#mxmlNewOpaque'><tt>mxmlNewOpaque()</tt></a>, <a
|
||||
href='#mxmlNewReal'><tt>mxmlNewReal()</tt></a>, <a
|
||||
href='#mxmlNewText'><tt>mxmlNewText()</tt></a> <a
|
||||
href='#mxmlNewTextf'><tt>mxmlNewTextf()</tt></a> <a
|
||||
href='#mxmlNewXML'><tt>mxmlNewXML()</tt></a> functions. Only
|
||||
elements can have child nodes, and the top node must be an
|
||||
element, usually <tt><?xml version="1.0"?></tt>.</p>
|
||||
<!-- NEED 10 -->
|
||||
<center><table width="80%" border="1" cellpadding="5" cellspacing="0" summary="Mini-XML Node Value Members">
|
||||
<caption align="bottom"><i>Table 2-1: Mini-XML Node Value Members</i></caption>
|
||||
<tr bgcolor="#cccccc">
|
||||
<th>Value</th>
|
||||
<th>Type</th>
|
||||
<th>Node member</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Custom</td>
|
||||
<td><tt>void *</tt></td>
|
||||
<td><tt>node->value.custom.data</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Element</td>
|
||||
<td><tt>char *</tt></td>
|
||||
<td><tt>node->value.element.name</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Integer</td>
|
||||
<td><tt>int</tt></td>
|
||||
<td><tt>node->value.integer</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Opaque (string)</td>
|
||||
<td><tt>char *</tt></td>
|
||||
<td><tt>node->value.opaque</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Real</td>
|
||||
<td><tt>double</tt></td>
|
||||
<td><tt>node->value.real</tt></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Text</td>
|
||||
<td><tt>char *</tt></td>
|
||||
<td><tt>node->value.text.string</tt></td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<p>Each node has a <tt>user_data</tt> member which allows you to
|
||||
associate application-specific data with each node as needed.</p>
|
||||
<p>Each node also has a <tt>user_data</tt> member which allows you
|
||||
to associate application-specific data with each node as needed.</p>
|
||||
|
||||
<p>Node also have pointers for the node above (<tt>parent</tt>),
|
||||
below (<tt>child</tt>), to the left (<tt>prev</tt>), and to the
|
||||
right (<tt>next</tt>) of the current node. If you have an XML
|
||||
file like the following:</p>
|
||||
<p>New nodes are created using the <a
|
||||
href='#mxmlNewElement'><tt>mxmlNewElement</tt></a>, <a
|
||||
href='#mxmlNewInteger'><tt>mxmlNewInteger</tt></a>, <a
|
||||
href='#mxmlNewOpaque'><tt>mxmlNewOpaque</tt></a>, <a
|
||||
href='#mxmlNewReal'><tt>mxmlNewReal</tt></a>, <a
|
||||
href='#mxmlNewText'><tt>mxmlNewText</tt></a> <a
|
||||
href='#mxmlNewTextf'><tt>mxmlNewTextf</tt></a> <a
|
||||
href='#mxmlNewXML'><tt>mxmlNewXML</tt></a> functions. Only
|
||||
elements can have child nodes, and the top node must be an element,
|
||||
usually the <tt><?xml version="1.0"?></tt> node created by
|
||||
<tt>mxmlNewXML()</tt>.</p>
|
||||
|
||||
<p>Nodes have pointers to the node above (<tt>parent</tt>), below
|
||||
(<tt>child</tt>), left (<tt>prev</tt>), and right (<tt>next</tt>)
|
||||
of the current node. If you have an XML file like the following:</p>
|
||||
|
||||
<pre>
|
||||
<?xml version="1.0"?>
|
||||
@ -99,9 +169,9 @@ memory:</p>
|
||||
to the first child node.</p>
|
||||
|
||||
<p>Once you are done with the XML data, use the <a
|
||||
href='#mxmlDelete'><tt>mxmlDelete()</tt></a>
|
||||
function to recursively free the memory that is used for a
|
||||
particular node or the entire tree:</p>
|
||||
href='#mxmlDelete'><tt>mxmlDelete</tt></a> function to recursively
|
||||
free the memory that is used for a particular node or the entire
|
||||
tree:</p>
|
||||
|
||||
<pre>
|
||||
mxmlDelete(tree);
|
||||
@ -184,7 +254,7 @@ processed just like one loaded from disk or a string.</p>
|
||||
<h2>Loading XML</h2>
|
||||
|
||||
<p>You load an XML file using the <a
|
||||
href='#mxmlLoadFile'><tt>mxmlLoadFile()</tt></a>
|
||||
href='#mxmlLoadFile'><tt>mxmlLoadFile</tt></a>
|
||||
function:</p>
|
||||
|
||||
<pre>
|
||||
@ -221,7 +291,7 @@ values. Other standard callbacks include
|
||||
<tt>MXML_OPAQUE_CALLBACK</tt>, and
|
||||
<tt>MXML_REAL_CALLBACK</tt>.</p>
|
||||
|
||||
<p>The <a href='#mxmlLoadString'><tt>mxmlLoadString()</tt></a>
|
||||
<p>The <a href='#mxmlLoadString'><tt>mxmlLoadString</tt></a>
|
||||
function loads XML node trees from a string:</p>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
@ -245,7 +315,7 @@ is <tt>NULL</tt>.</p>
|
||||
<h2>Saving XML</h2>
|
||||
|
||||
<p>You save an XML file using the <a
|
||||
href='#mxmlSaveFile'><tt>mxmlSaveFile()</tt></a> function:</p>
|
||||
href='#mxmlSaveFile'><tt>mxmlSaveFile</tt></a> function:</p>
|
||||
|
||||
<pre>
|
||||
FILE *fp;
|
||||
@ -272,8 +342,8 @@ uses the <tt>MXML_NO_CALLBACK</tt> constant to specify that no
|
||||
special whitespace handling is required.</p>
|
||||
|
||||
<p>The <a
|
||||
href='#mxmlSaveAllocString'><tt>mxmlSaveAllocString()</tt></a>,
|
||||
and <a href='#mxmlSaveString'><tt>mxmlSaveString()</tt></a>
|
||||
href='#mxmlSaveAllocString'><tt>mxmlSaveAllocString</tt></a>,
|
||||
and <a href='#mxmlSaveString'><tt>mxmlSaveString</tt></a>
|
||||
functions save XML node trees to strings:</p>
|
||||
|
||||
<pre>
|
||||
@ -290,7 +360,7 @@ functions save XML node trees to strings:</p>
|
||||
</pre>
|
||||
|
||||
<p>The first and last arguments are the same as used for
|
||||
<tt>mxmlSaveFile()</tt>. The <tt>mxmlSaveString()</tt> function
|
||||
<tt>mxmlSaveFile()</tt>. The <tt>mxmlSaveString</tt> function
|
||||
takes pointer and size arguments for saving the XML document to
|
||||
a fixed-size buffer, while <tt>mxmlSaveAllocString()</tt>
|
||||
returns a string buffer that was allocated using
|
||||
@ -317,9 +387,9 @@ overrides the default wrap margin:</p>
|
||||
<h2>Finding and Iterating Nodes</h2>
|
||||
|
||||
<p>The <a
|
||||
href='#mxmlWalkPrev'><tt>mxmlWalkPrev()</tt></a>
|
||||
href='#mxmlWalkPrev'><tt>mxmlWalkPrev</tt></a>
|
||||
and <a
|
||||
href='#mxmlWalkNext'><tt>mxmlWalkNext()</tt></a>functions
|
||||
href='#mxmlWalkNext'><tt>mxmlWalkNext</tt></a>functions
|
||||
can be used to iterate through the XML node tree:</p>
|
||||
|
||||
<pre>
|
||||
@ -333,7 +403,7 @@ can be used to iterate through the XML node tree:</p>
|
||||
</pre>
|
||||
|
||||
<p>In addition, you can find a named element/node using the <a
|
||||
href='#mxmlFindElement'><tt>mxmlFindElement()</tt></a>
|
||||
href='#mxmlFindElement'><tt>mxmlFindElement</tt></a>
|
||||
function:</p>
|
||||
|
||||
<pre>
|
||||
|
BIN
doc/chapters.xcf.gz
Normal file
BIN
doc/hires/0.gif
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
doc/hires/1.gif
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
doc/hires/2.gif
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
doc/hires/3.gif
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
doc/hires/4.gif
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
doc/hires/5.gif
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
doc/hires/6.gif
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
doc/hires/7.gif
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
doc/hires/8.gif
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
doc/hires/9.gif
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
doc/hires/A.gif
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
doc/hires/B.gif
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
doc/hires/C.gif
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
doc/hires/D.gif
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
doc/hires/E.gif
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
doc/hires/F.gif
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
doc/hires/logo.gif
Normal file
After Width: | Height: | Size: 17 KiB |
@ -1,8 +1,9 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='INSTALL'>1 - Building, Installing,
|
||||
and Packaging Mini-XML</a></h1>
|
||||
<h1 align='right'><a name='INSTALL'><img src="1.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="1"></a>Building,
|
||||
Installing, and Packaging Mini-XML</h1>
|
||||
|
||||
<p>This chapter describes how to build, install, and package
|
||||
Mini-XML on your system from the source archive. You will need an
|
||||
|
110
doc/intro.html
@ -7,85 +7,29 @@
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='INTRO'>Introduction</a></h1>
|
||||
<h1 align='right'><a name='INTRO'><img src="0.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="0"></a>Introduction</h1>
|
||||
|
||||
<p>This programmers manual describes Mini-XML version 2.3, a
|
||||
small XML parsing library that you can use to read and write XML
|
||||
and XML-like data files in your application without requiring
|
||||
large non-standard libraries. Mini-XML only requires an ANSI C
|
||||
compatible compiler (GCC works, as do most vendors' ANSI C
|
||||
compilers) and a "make" program.</p>
|
||||
|
||||
<p>Mini-XML provides the following functionality:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Reading of UTF-8 and UTF-16 encoded XML files and
|
||||
strings.</li>
|
||||
|
||||
<li>Writing of UTF-8 encoded XML files and strings.</li>
|
||||
|
||||
<li>Data is stored in a linked-list tree structure,
|
||||
preserving the XML data hierarchy.</li>
|
||||
|
||||
<li>Supports arbitrary element names, attributes, and
|
||||
attribute values with no preset limits, just available
|
||||
memory.</li>
|
||||
|
||||
<li>Supports integer, real, opaque ("cdata"), and text
|
||||
data types in "leaf" nodes.</li>
|
||||
|
||||
<li>Functions for creating and managing trees of
|
||||
data.</li>
|
||||
|
||||
<li>"Find" and "walk" functions for easily locating and
|
||||
navigating trees of data.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Mini-XML doesn't do validation or other types of processing
|
||||
on the data based upon schema files or other sources of
|
||||
definition information, nor does it support character entities
|
||||
other than those required by the XML specification.</p>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<h2>Legal Stuff</h2>
|
||||
|
||||
<p>The Mini-XML library is copyright 2003-2007 by Michael
|
||||
Sweet.</p>
|
||||
|
||||
<p>This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the <a
|
||||
href='#LICENSE'>GNU Library 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>
|
||||
|
||||
<!-- NEED 4in -->
|
||||
<h2>History</h2>
|
||||
<p>This programmers manual describes Mini-XML version 2.3, a small
|
||||
XML parsing library that you can use to read and write XML data
|
||||
files in your C and C++ applications.</p>
|
||||
|
||||
<p>Mini-XML was initially developed for the <a
|
||||
href='http://gutenprint.sf.net/'>Gutenprint</a> project to
|
||||
replace the rather large and unwieldy <tt>libxml2</tt> library
|
||||
with something substantially smaller and easier-to-use. It all
|
||||
began one morning in June of 2003 when Robert posted the
|
||||
following sentence to the developer's list:</p>
|
||||
href='http://gutenprint.sf.net/'>Gutenprint</a> project to replace
|
||||
the rather large and unwieldy <tt>libxml2</tt> library with
|
||||
something substantially smaller and easier-to-use. It all began one
|
||||
morning in June of 2003 when Robert posted the following sentence to
|
||||
the developer's list:</p>
|
||||
|
||||
<blockquote>It's bad enough that we require libxml2, but rolling
|
||||
<blockquote><em>It's bad enough that we require libxml2, but rolling
|
||||
our own XML parser is a bit more than we can
|
||||
handle.</blockquote>
|
||||
handle.</em></blockquote>
|
||||
|
||||
<p>I then replied with:</p>
|
||||
|
||||
<blockquote>Given the limited scope of what you use in XML, it
|
||||
should be trivial to code a mini-XML API in a few hundred lines
|
||||
of code.</blockquote>
|
||||
<blockquote><em>Given the limited scope of what you use in XML, it
|
||||
should be trivial to code a mini-XML API in a few hundred lines of
|
||||
code.</em></blockquote>
|
||||
|
||||
<p>I took my own challenge and coded furiously for two days to
|
||||
produced the initial public release of Mini-XML, total lines of
|
||||
@ -122,7 +66,6 @@ project 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>
|
||||
|
||||
<!-- NEED 3in -->
|
||||
<h2>Organization of This Document</h2>
|
||||
|
||||
<p>This manual is organized into the following chapters and
|
||||
@ -159,6 +102,10 @@ appendices:</p>
|
||||
Reference</a>", contains a complete reference for
|
||||
Mini-XML, generated by <tt>mxmldoc</tt>.</li>
|
||||
|
||||
<li>Appendix D, "<a href='#SCHEMA'>XML Schema</a>", shows
|
||||
the XML schema used for the XML files produced by
|
||||
<tt>mxmldoc</tt>.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
@ -245,5 +192,24 @@ manual:</p>
|
||||
|
||||
</dl>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<h2>Legal Stuff</h2>
|
||||
|
||||
<p>The Mini-XML library is copyright 2003-2007 by Michael
|
||||
Sweet.</p>
|
||||
|
||||
<p>This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the <a
|
||||
href='#LICENSE'>GNU Library 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>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,7 +1,9 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='LICENSE'>A - Mini-XML License</a></h1>
|
||||
<h1 align='right'><a name='LICENSE'><img src="A.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="A"></a>Mini-XML
|
||||
License</h1>
|
||||
|
||||
<p>The Mini-XML library and included programs are provided under
|
||||
the terms of the GNU Library General Public License (LGPL) with
|
||||
|
BIN
doc/logo.gif
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
doc/logo.png
Before Width: | Height: | Size: 35 KiB |
BIN
doc/logo.xcf.gz
Normal file
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Script to make documentation...
|
||||
#
|
||||
# Copyright 2003-2005 by Michael Sweet.
|
||||
# Copyright 2003-2007 by Michael Sweet.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
@ -17,17 +17,13 @@
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
|
||||
htmldoc --verbose --batch mxml.book --no-embedfonts -f mxml.pdf
|
||||
htmldoc --verbose --path hires:. --batch mxml.book -f mxml.pdf
|
||||
|
||||
htmldoc --verbose --batch mxml.book -f mxml.html
|
||||
|
||||
htmldoc --verbose --batch mxml.book --gray --no-embedfonts -f mxml.ps
|
||||
rm -f mxml.ps.gz
|
||||
gzip -v9 mxml.ps
|
||||
htmldoc --verbose --batch mxml.book --no-title -f mxml.html
|
||||
|
||||
rm -rf mxml.d
|
||||
mkdir mxml.d
|
||||
htmldoc --verbose --batch mxml.book -t htmlsep -d mxml.d
|
||||
htmldoc --verbose --batch mxml.book --no-title -t htmlsep -d mxml.d
|
||||
|
||||
#
|
||||
# End of "$Id$".
|
||||
|
@ -1,10 +0,0 @@
|
||||
#HTMLDOC 1.8.27.1
|
||||
-t pdf14 -f "mxml-pocket.pdf" --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --titleimage "title.html" --linkstyle plain --size 4.25x6.875in --left 0.750in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --duplex --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=95 --fontsize 9.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Helvetica --headfootsize 8.0 --headfootfont Helvetica-Oblique --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680 --no-strict --no-overflow
|
||||
intro.html
|
||||
install.html
|
||||
basics.html
|
||||
advanced.html
|
||||
mxmldoc.html
|
||||
license.html
|
||||
relnotes.html
|
||||
refapp.html
|
@ -1,5 +1,5 @@
|
||||
#HTMLDOC 1.8.25 Commercial
|
||||
-t pdf12 -f mxml.pdf --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --titleimage logo.png --linkstyle underline --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --duplex --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=95 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset iso-8859-1 --links --no-embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680 --no-strict --no-overflow
|
||||
#HTMLDOC 1.8.27.1
|
||||
-t pdf14 -f "mxml.pdf" --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --titleimage "title.html" --linkstyle plain --size 4.25x6.875in --left 0.750in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --duplex --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=95 --fontsize 9.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Helvetica --headfootsize 8.0 --headfootfont Helvetica-Oblique --charset iso-8859-1 --links --embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 300 --no-strict --no-overflow
|
||||
intro.html
|
||||
install.html
|
||||
basics.html
|
||||
@ -8,3 +8,4 @@ mxmldoc.html
|
||||
license.html
|
||||
relnotes.html
|
||||
refapp.html
|
||||
schema.html
|
||||
|
2599
doc/mxml.html
193
doc/mxmldoc.html
@ -1,43 +1,192 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='MXMLDOC'>4 - Using the mxmldoc
|
||||
Utility</a></h1>
|
||||
<h1 align='right'><a name='MXMLDOC'><img src="4.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="4"></a>Using the mxmldoc
|
||||
Utility</h1>
|
||||
|
||||
<p>This chapter describes how to use <tt>mxmldoc(1)</tt> program to
|
||||
automatically generate documentation from C and C++ source
|
||||
files.</p>
|
||||
|
||||
|
||||
<h2>The Basics</h2>
|
||||
|
||||
<p>Originally developed to generate the Mini-XML and CUPS API
|
||||
documentation, the <tt>mxmldoc(1)</tt> program converts C and C++
|
||||
source files into an intermediate XML format and uses in-line
|
||||
comments rather than comment headers to annotate functions, types,
|
||||
and constants.</p>
|
||||
documentation, <tt>mxmldoc</tt> is now a general-purpose utility
|
||||
which scans C and C++ source files to produce HTML and man page
|
||||
documentation along with an XML file representing the functions,
|
||||
types, and definitions in those source files. Unlike popular
|
||||
documentation generators like Doxygen or Javadoc, <tt>mxmldoc</tt>
|
||||
uses in-line comments rather than comment headers, allowing for more
|
||||
"natural" code documentation.</p>
|
||||
|
||||
<p></p>
|
||||
<p>By default, <tt>mxmldoc</tt> produces HTML documentation. For
|
||||
example, the following command will scan all of the C source and
|
||||
header files in the current directory and produce a HTML
|
||||
documentation file called <var>filename.html</var>:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc *.h *.c >filename.html ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
<p>You can also specify an XML file to create which contains all of
|
||||
the information from the source files. For example, the following
|
||||
command creates an XML file called <var>filename.xml</var> in
|
||||
addition to the HTML file:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc filename.xml *.h *.c >filename.html ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
<p>The <tt>--no-output</tt> option disables the normal HTML
|
||||
output:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc --no-output filename.xml *.h *.c ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
<p>You can then run <tt>mxmldoc</tt> again with the XML file alone
|
||||
to generate the HTML documentation:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc filename.xml >filename.html ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
<p>The <tt>--man filename</tt> option tells <tt>mxmldoc</tt> to
|
||||
create a man page instead of HTML documentation, for example:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc --man filename filename.xml \
|
||||
>filename.man ENTER</kbd>
|
||||
|
||||
<kbd>mxmldoc --man filename *.h *.c \
|
||||
>filename.man ENTER</kbd>
|
||||
|
||||
<kbd>mxmldoc --man filename filename.xml *.h *.c \
|
||||
>filename.man ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>Commenting Your Code</h2>
|
||||
|
||||
<h2>Creating HTML Documentation</h2>
|
||||
<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> will document all public names it finds in your
|
||||
source files - any names starting with the underscore character (_)
|
||||
or names that are documented with the <A
|
||||
HREF="#ATDIRECTIVES">@private@</A> directive are treated as private
|
||||
and are undocumented.</p>
|
||||
|
||||
<h2>Creating Man Pages</h2>
|
||||
<p>Comments appearing directly before a function or type definition
|
||||
are used to document that function or type. Comments appearing after
|
||||
argument, definition, return type, or variable declarations are used
|
||||
to document that argument, definition, return type, or variable. For
|
||||
example, the following code excerpt defines a key/value structure
|
||||
and a function that creates a new instance of that structure:</p>
|
||||
|
||||
<h2>The XML Schema</h2>
|
||||
<pre>
|
||||
/* A key/value pair. This is used with the
|
||||
dictionary structure. */
|
||||
|
||||
<p><i>mxmldoc</i> scans the specified C and C++ source files to
|
||||
produce an XML representation of globally accessible classes,
|
||||
constants, enumerations, functions, structures, typedefs,
|
||||
unions, and variables. The XML file is updated as necessary and
|
||||
a HTML representation of the XML file is written to the standard
|
||||
output. If no source files are specified then the current XML
|
||||
file is converted to HTML on the standard output.
|
||||
<p>In general, any C or C++ source code is handled by
|
||||
<i>mxmldoc</i>, however it was specifically written to handle
|
||||
code with documentation that is formatted according to the CUPS
|
||||
Configuration Management Plan which is available at
|
||||
"http://www.cups.org/documentation.php".
|
||||
struct keyval
|
||||
{
|
||||
char *key; /* Key string */
|
||||
char *val; /* Value string */
|
||||
};
|
||||
|
||||
/* Create a new key/value pair. */
|
||||
|
||||
struct keyval * /* New key/value pair */
|
||||
new_keyval(
|
||||
const char *key, /* Key string */
|
||||
const char *val) /* Value string */
|
||||
{
|
||||
...
|
||||
}
|
||||
</pre>
|
||||
|
||||
<p><tt>Mxmldoc</tt> also knows to remove extra asterisks (*) from
|
||||
the comment string, so the comment string:</p>
|
||||
|
||||
<pre>
|
||||
/*
|
||||
* Compute the value of PI.
|
||||
*
|
||||
* The function connects to an Internet server
|
||||
* that streams audio of mathematical monks
|
||||
* chanting the first 100 digits of PI.
|
||||
*/
|
||||
</pre>
|
||||
|
||||
<p>will be shown as:</p>
|
||||
|
||||
<pre>
|
||||
Compute the value of PI.
|
||||
|
||||
The function connects to an Internet server
|
||||
that streams audio of mathematical monks
|
||||
chanting the first 100 digits of PI.
|
||||
</pre>
|
||||
|
||||
<p><a name="ATDIRECTIVES">Comments</a> can also include the
|
||||
following special <tt>@name ...@</tt> directive strings:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><tt>@deprecated@</tt> - flags the item as deprecated to
|
||||
discourage its use</li>
|
||||
|
||||
<li><tt>@private@</tt> - flags the item as private so it
|
||||
will not be included in the documentation</li>
|
||||
|
||||
<li><tt>@since ...@</tt> - flags the item as new since a
|
||||
particular release. The text following the <tt>@since</tt>
|
||||
up to the closing <tt>@</tt> is highlighted in the generated
|
||||
documentation, e.g. <tt>@since CUPS 1.3@</tt>.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<h2>Titles, Sections, and Introductions</h2>
|
||||
|
||||
<p><tt>Mxmldoc</tt> also provides options to set the title, section,
|
||||
and introduction text for the generated documentation. The
|
||||
<tt>--title text</tt> option specifies the title for the
|
||||
documentation. The title string is usually put in quotes:</p>
|
||||
|
||||
<pre>
|
||||
<kbd>mxmldoc filename.xml \
|
||||
--title "My Famous Documentation" \
|
||||
>filename.html ENTER</kbd>
|
||||
</pre>
|
||||
|
||||
<p>The <tt>--section name</tt> option specifies the section for
|
||||
the documentation. For HTML documentation, the name is placed in
|
||||
a HTML comment such as:</p>
|
||||
|
||||
<pre>
|
||||
<!-- SECTION: name -->
|
||||
</pre>
|
||||
|
||||
<p>For man pages, the section name is usually just a number ("3"),
|
||||
or a number followed by a vendor name ("3acme"). The section name is
|
||||
used in the <tt>.TH</tt> directive in the man page:</p>
|
||||
|
||||
<pre>
|
||||
.TH mylibrary 3acme "My Title" ...
|
||||
</pre>
|
||||
|
||||
<p>The default section name for man page output is "3". There is no
|
||||
default section name for HTML output.</p>
|
||||
|
||||
<p>Finally, the <tt>--intro filename</tt> option specifies a file to
|
||||
embed after the title and section but before the generated
|
||||
documentation. For HTML documentation, the file must consist of
|
||||
valid HTML without the usual <tt>DOCTYPE</tt>, <tt>html</tt>, and
|
||||
<tt>body</tt> elements. For man page documentation, the file must
|
||||
consist of valid <tt>nroff(1)</tt> text.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,9 +1,11 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='REFERENCE'>C - Library Reference</a></h1>
|
||||
<h1 align='right'><a name='REFERENCE'><img src="C.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="C"></a>Library
|
||||
Reference</h1>
|
||||
|
||||
<embed src='reference.html'/>
|
||||
<embed src='reference.html'>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,7 +1,8 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='RELNOTES'>B - Release Notes</a></h1>
|
||||
<h1 align='right'><a name='RELNOTES'><img src="B.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="B"></a>Release Notes</h1>
|
||||
|
||||
<h2 _hd_omit_toc>Changes in Mini-XML 2.3</h2>
|
||||
|
||||
|
201
doc/schema.html
Normal file
@ -0,0 +1,201 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h1 align='right'><a name='SCHEMA'><img src="D.gif" align="right"
|
||||
hspace="10" width="100" height="100" alt="D"></a>XML Schema</h1>
|
||||
|
||||
<p>This appendix provides the XML schema that is used for the XML
|
||||
files produced by <tt>mxmldoc</tt>. This schema is available on-line
|
||||
at:</p>
|
||||
|
||||
<pre>
|
||||
http://www.easysw.com/~mike/mxmldoc.xsd
|
||||
</pre>
|
||||
|
||||
<h2 _hd_omit_toc>mxmldoc.xsd</h2>
|
||||
|
||||
<pre><small>
|
||||
<?xml version="1.0"?>
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation xml:lang="en">
|
||||
Mini-XML 2.3 documentation schema for mxmldoc output.
|
||||
Copyright 2003-2007 by Michael Sweet.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<!-- basic element definitions -->
|
||||
<xsd:element name="argument" type="argumentType"/>
|
||||
<xsd:element name="class" type="classType"/>
|
||||
<xsd:element name="constant" type="constantType"/>
|
||||
<xsd:element name="description" type="xsd:string"/>
|
||||
<xsd:element name="enumeration" type="enumerationType"/>
|
||||
<xsd:element name="function" type="functionType"/>
|
||||
<xsd:element name="mxmldoc" type="mxmldocType"/>
|
||||
<xsd:element name="namespace" type="namespaceType"/>
|
||||
<xsd:element name="returnvalue" type="returnvalueType"/>
|
||||
<xsd:element name="seealso" type="identifierList"/>
|
||||
<xsd:element name="struct" type="structType"/>
|
||||
<xsd:element name="typedef" type="typedefType"/>
|
||||
<xsd:element name="type" type="xsd:string"/>
|
||||
<xsd:element name="union" type="unionType"/>
|
||||
<xsd:element name="variable" type="variableType"/>
|
||||
|
||||
<!-- descriptions of complex elements -->
|
||||
<xsd:complexType name="argumentType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="default" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
<xsd:attribute name="direction" type="direction" use="optional"
|
||||
default="I"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="classType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="class"/>
|
||||
<xsd:element ref="enumeration"/>
|
||||
<xsd:element ref="function"/>
|
||||
<xsd:element ref="struct"/>
|
||||
<xsd:element ref="typedef"/>
|
||||
<xsd:element ref="union"/>
|
||||
<xsd:element ref="variable"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
<xsd:attribute name="parent" type="xsd:string" use="optional"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="constantType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="enumerationType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="constant" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="functionType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="returnvalue" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="argument" minOccurs="1" maxOccurs="unbounded"/>
|
||||
<xsd:element ref="seealso" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
<xsd:attribute name="scope" type="scope" use="optional"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="mxmldocType">
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="class"/>
|
||||
<xsd:element ref="enumeration"/>
|
||||
<xsd:element ref="function"/>
|
||||
<xsd:element ref="namespace"/>
|
||||
<xsd:element ref="struct"/>
|
||||
<xsd:element ref="typedef"/>
|
||||
<xsd:element ref="union"/>
|
||||
<xsd:element ref="variable"/>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="namespaceType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="class"/>
|
||||
<xsd:element ref="enumeration"/>
|
||||
<xsd:element ref="function"/>
|
||||
<xsd:element ref="struct"/>
|
||||
<xsd:element ref="typedef"/>
|
||||
<xsd:element ref="union"/>
|
||||
<xsd:element ref="variable"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="returnvalueType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="structType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xsd:element ref="variable"/>
|
||||
<xsd:element ref="function"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="typedefType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="unionType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="variableType">
|
||||
<xsd:sequence>
|
||||
<xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="identifier" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<!-- data types -->
|
||||
<xsd:simpleType name="direction">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="I"/>
|
||||
<xsd:enumeration value="O"/>
|
||||
<xsd:enumeration value="IO"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="identifier">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[a-zA-Z_(.]([a-zA-Z_(.,)* 0-9])*"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="identifierList">
|
||||
<xsd:list itemType="identifier"/>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="scope">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value=""/>
|
||||
<xsd:enumeration value="private"/>
|
||||
<xsd:enumeration value="protected"/>
|
||||
<xsd:enumeration value="public"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:schema>
|
||||
</small></pre>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -136,11 +136,13 @@ else
|
||||
|
||||
<h1>Documentation</h1>
|
||||
|
||||
<p>You can view the Mini-XML documentation in a number of
|
||||
formats on-line:</p>
|
||||
<p>You can view the Mini-XML documentation in a single HTML file or in
|
||||
multiple files with comments on-line:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href='mxml.html'>HTML in one file (140k)</a></li>
|
||||
|
||||
<li><a href='documentation.php/toc.html'>HTML in
|
||||
separate files with Comments</a>
|
||||
|
||||
@ -150,43 +152,35 @@ formats on-line:</p>
|
||||
href='documentation.php/Introduction.html'>Introduction</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/1BuildingInstallingandPackagingMiniXML.html'>1
|
||||
- Building, Installing, and Packaging
|
||||
Mini-XML</a></li>
|
||||
href='documentation.php/BuildingInstallingandPackagingMiniXML.html'>Building,
|
||||
Installing, and Packaging Mini-XML</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/2GettingStartedwithMiniXML.html'>2
|
||||
- Getting Started with Mini-XML</a></li>
|
||||
href='documentation.php/GettingStartedwithMiniXML.html'>Getting
|
||||
Started with Mini-XML</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/3MoreMiniXMLProgrammingTechniques.html'>3
|
||||
- More Mini-XML Programming Techniques</a></li>
|
||||
href='documentation.php/MoreMiniXMLProgrammingTechniques.html'>More
|
||||
Mini-XML Programming Techniques</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/4UsingthemxmldocUtility.html'>4
|
||||
- Using the mxmldoc Utility</a></li>
|
||||
href='documentation.php/UsingthemxmldocUtility.html'>Using
|
||||
the mxmldoc Utility</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/AGNULibraryGeneralPublicLicense.html'>A
|
||||
- GNU Library General Public License</a></li>
|
||||
href='documentation.php/MiniXMLLicense.html'>Mini-XML
|
||||
License</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/BReleaseNotes.html'>B -
|
||||
Release Notes</a></li>
|
||||
href='documentation.php/ReleaseNotes.html'>Release
|
||||
Notes</a></li>
|
||||
|
||||
<li><a
|
||||
href='documentation.php/CLibraryReference.html'>C
|
||||
- Library Reference</a></li>
|
||||
href='documentation.php/LibraryReference.html'>Library
|
||||
Reference</a></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
<li><a href='mxml.html'>HTML in one file (140k)</a></li>
|
||||
|
||||
<li><a href='mxml.pdf'>PDF (108 pages, 202k)</a></li>
|
||||
|
||||
<li><a href='mxml.ps.gz'>PostScript (108 pages, gzip'd,
|
||||
61k)</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
|
BIN
www/favicon.ico
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 35 KiB |
@ -13,16 +13,16 @@ html_header();
|
||||
|
||||
print("<h1 align='center'>Mini-XML Home Page</h1>");
|
||||
|
||||
print("<p><table width='100%' height='100%' border='0' cellpadding='0' "
|
||||
."cellspacing='0'>\n"
|
||||
print("<table width='100%' style='height: 100%' border='0' cellpadding='0' "
|
||||
."cellspacing='0' summary=''>\n"
|
||||
."<tr><td valign='top' width='30%'>");
|
||||
|
||||
html_start_table(array("Quick Info"), "100%", "100%");
|
||||
html_start_table(array("Quick Info"), "100%");
|
||||
html_start_row();
|
||||
print("<td>"
|
||||
."<p align='center'>"
|
||||
."Stable Release: <a href='software.php?2.2.2'>v2.2.2</a></p>"
|
||||
."<small><p>Mini-XML is a small XML parsing library that you can use to "
|
||||
."Stable Release: <a href='software.php?2.3'>v2.3</a></p>"
|
||||
."<p>Mini-XML is a small XML parsing library that you can use to "
|
||||
."read XML and XML-like data files in your application without "
|
||||
."requiring large non-standard libraries. Mini-XML only requires "
|
||||
."an ANSI C compatible compiler (GCC works, as do most vendors' "
|
||||
@ -41,24 +41,11 @@ print("<td>"
|
||||
."<li>Functions for creating, indexing, and managing trees of data.</li>\n"
|
||||
."<li>\"Find\" and \"walk\" functions for easily locating and "
|
||||
."navigating trees of data.</li>\n"
|
||||
."</ul></small>\n"
|
||||
."</ul>\n"
|
||||
."</td>");
|
||||
html_end_row();
|
||||
html_end_table();
|
||||
|
||||
$poll = get_recent_poll();
|
||||
if ($poll > 0)
|
||||
{
|
||||
html_start_table(array("Current Poll [ <a href='poll.php'>"
|
||||
."Show All</a> ]"));
|
||||
html_start_row();
|
||||
print("<td>");
|
||||
show_poll($poll);
|
||||
print("</td>");
|
||||
html_end_row();
|
||||
html_end_table();
|
||||
}
|
||||
|
||||
print("</td><td> </td>"
|
||||
."<td valign='top' width='70%'>"
|
||||
."<h2>Recent Articles [ <a href='articles.php'>Show All</a>"
|
||||
@ -95,7 +82,7 @@ else
|
||||
db_free($result);
|
||||
|
||||
print("</td></tr>\n"
|
||||
."</table></p>\n");
|
||||
."</table>\n");
|
||||
|
||||
html_footer();
|
||||
|
||||
|
@ -87,16 +87,16 @@ html_header($title = "", // I - Additional document title
|
||||
$html_title = "";
|
||||
|
||||
print(" <title>$html_title Mini-XML</title>\n"
|
||||
." <meta http-equiv='Pragma' content='no-cache'/>\n"
|
||||
." <meta http-equiv='Pragma' content='no-cache'>\n"
|
||||
." <meta http-equiv='Content-Type' content='text/html; "
|
||||
."charset=iso-8859-1'/>\n"
|
||||
." <link rel='stylesheet' type='text/css' href='${path}style.css'/>\n"
|
||||
."charset=iso-8859-1'>\n"
|
||||
." <link rel='stylesheet' type='text/css' href='${path}style.css'>\n"
|
||||
." <link rel='shortcut icon' href='${path}favicon.ico' "
|
||||
."type='image/x-icon'/>\n");
|
||||
."type='image/x-icon'>\n");
|
||||
|
||||
// If refresh URL is specified, add the META tag...
|
||||
if ($refresh != "")
|
||||
print(" <meta http-equiv='refresh' content='3; $refresh'/>\n");
|
||||
print(" <meta http-equiv='refresh' content='3; $refresh'>\n");
|
||||
|
||||
// Search engine keywords...
|
||||
reset($html_keywords);
|
||||
@ -107,19 +107,19 @@ html_header($title = "", // I - Additional document title
|
||||
while (list($key, $val) = each($html_keywords))
|
||||
print(",$val");
|
||||
|
||||
print("'/>\n");
|
||||
print("'>\n");
|
||||
|
||||
print("</head>\n"
|
||||
."<body>\n");
|
||||
|
||||
// Standard navigation stuff...
|
||||
print("<p><table width='100%' height='100%' border='0' cellspacing='0' "
|
||||
."cellpadding='0'>\n"
|
||||
."<tr class='header' height='40'>"
|
||||
print("<table width='100%' style='height: 100%' border='0' cellspacing='0' "
|
||||
."cellpadding='0' summary=''>\n"
|
||||
."<tr class='header' style='height: 40'>"
|
||||
."<td valign='top'><img src='${path}images/top-left.gif' width='15' "
|
||||
."height='15' alt=''/></td>"
|
||||
."<td><img src='${path}images/logo.jpg' width='32' height='32' "
|
||||
."alt='Mini-XML' align='middle'/> </td>"
|
||||
."height='15' alt=''></td>"
|
||||
."<td><img src='${path}images/logo.gif' width='32' height='32' "
|
||||
."alt='Mini-XML' align='middle'> </td>"
|
||||
."<td width='100%'>[ <a href='${path}index.php'>Home</a> | "
|
||||
."<a href='${path}articles.php'>Articles</a> | "
|
||||
."<a href='${path}str.php'>Bugs & Features</a> | "
|
||||
@ -136,13 +136,13 @@ html_header($title = "", // I - Additional document title
|
||||
|
||||
print(" ]</td>"
|
||||
."<td valign='top'><img src='${path}images/top-right.gif' width='15' "
|
||||
."height='15' alt=''/></td>"
|
||||
."height='15' alt=''></td>"
|
||||
."</tr>\n");
|
||||
|
||||
print("<tr class='page' height='100%'><td></td>"
|
||||
print("<tr class='page' style='height: 100%'><td></td>"
|
||||
."<td colspan='3' valign='top'>"
|
||||
."<table width='100%' height='100%' border='0' cellpadding='5' "
|
||||
."cellspacing='0'><tr><td valign='top'>");
|
||||
."<table width='100%' style='height: 100%' border='0' cellpadding='5' "
|
||||
."cellspacing='0' summary=''><tr><td valign='top'>");
|
||||
}
|
||||
|
||||
|
||||
@ -157,18 +157,18 @@ html_footer($path = "") // I - Relative path to root
|
||||
print("<tr class='page'><td colspan='5'> </td></tr>\n");
|
||||
print("<tr class='header'>"
|
||||
."<td valign='bottom'><img src='${path}images/bottom-left.gif' "
|
||||
."width='15' height='15' alt=''/></td>"
|
||||
."<td colspan='3'><small> <br />"
|
||||
."Copyright 2003-2005 by Michael Sweet. This library is free "
|
||||
."width='15' height='15' alt=''></td>"
|
||||
."<td colspan='3'><small> <br>"
|
||||
."Copyright 2003-2007 by Michael Sweet. This library is free "
|
||||
."software; you can redistribute it and/or modify it "
|
||||
."under the terms of the GNU Library General Public "
|
||||
."License as published by the Free Software Foundation; "
|
||||
."either version 2 of the License, or (at your option) "
|
||||
."any later version.<br /> </small></td>"
|
||||
."any later version.<br> </small></td>"
|
||||
."<td valign='bottom'><img src='${path}images/bottom-right.gif' "
|
||||
."width='15' height='15' alt=''/></td>"
|
||||
."width='15' height='15' alt=''></td>"
|
||||
."</tr>\n");
|
||||
print("</table></p>\n");
|
||||
print("</table>\n");
|
||||
print("</body>\n"
|
||||
."</html>\n");
|
||||
}
|
||||
@ -249,15 +249,15 @@ html_start_table($headings, // I - Array of heading strings
|
||||
global $html_row, $html_cols;
|
||||
|
||||
|
||||
print("<p><table");
|
||||
print("<br><table");
|
||||
if ($width != "")
|
||||
print(" width='$width'");
|
||||
if ($height != "")
|
||||
print(" height='$height'");
|
||||
print(" border='0' cellpadding='0' cellspacing='0'>"
|
||||
print(" style='height: $height'");
|
||||
print(" border='0' cellpadding='0' cellspacing='0' summary=''>"
|
||||
."<tr class='header'><th align='left' valign='top'>"
|
||||
."<img src='images/hdr-top-left.gif' width='16' height='16' "
|
||||
."alt=''/></th>");
|
||||
."alt=''></th>");
|
||||
|
||||
$html_row = 0;
|
||||
$html_cols = count($headings);
|
||||
@ -315,7 +315,7 @@ html_start_table($headings, // I - Array of heading strings
|
||||
|
||||
print("<th align='right' valign='top'>"
|
||||
."<img src='images/hdr-top-right.gif' "
|
||||
."width='16' height='16' alt=''/></th></tr>\n");
|
||||
."width='16' height='16' alt=''></th></tr>\n");
|
||||
}
|
||||
|
||||
|
||||
@ -330,11 +330,11 @@ html_end_table()
|
||||
|
||||
print("<tr class='header'><th align='left' valign='bottom'>"
|
||||
."<img src='images/hdr-bottom-left.gif' width='16' height='16' "
|
||||
."alt=''/></th>"
|
||||
."alt=''></th>"
|
||||
."<th colspan='$html_cols'> </th>"
|
||||
."<th align='right' valign='bottom'><img src='images/hdr-bottom-right.gif' "
|
||||
."width='16' height='16' alt=''/></th></tr>\n"
|
||||
."</table></p>\n");
|
||||
."width='16' height='16' alt=''></th></tr>\n"
|
||||
."</table>\n");
|
||||
}
|
||||
|
||||
|
||||
@ -365,7 +365,7 @@ html_end_row()
|
||||
|
||||
$html_row = 1 - $html_row;
|
||||
|
||||
print("</td><td> </td></tr>\n");
|
||||
print("<td> </td></tr>\n");
|
||||
}
|
||||
|
||||
|
||||
|