Commit 8f4d8706 authored by Michael Sweet's avatar Michael Sweet

Remove old web site files.

parent 37a03874
RewriteEngine Off
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Order deny,allow
Allow from none
This diff is collapsed.
#!/bin/sh
if test -f mxml.db; then
rm -f mxml.db.old
mv mxml.db mxml.db.old
fi
sqlite mxml.db <mxml.sql
chmod 775 .
chmod 664 mxml.db
chgrp apache . mxml.db
--
-- "$Id: mxml.sql,v 1.7 2004/05/21 03:59:17 mike Exp $"
--
-- Database schema for the Mini-XML web pages.
--
-- This SQL file is specifically for use with the SQLite database
-- engine, but is probably portable to other databases like MySQL
-- and Postgresql.
--
-- Revision History:
--
-- M. Sweet 05/17/2004 Initial revision.
-- M. Sweet 05/19/2004 Added link, poll, and vote tables.
-- M. Sweet 05/20/2004 Changes for MySQL
--
-- Schema for table 'article'
--
-- This table lists the available articles for each application.
-- Articles correspond roughly to FAQs, HOWTOs, and news announcements,
-- and they can be searched.
--
CREATE TABLE article (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Article number
is_published INTEGER, -- 0 = private, 1 = public
title VARCHAR(255), -- Title of article
abstract VARCHAR(255), -- Plain text abstract of article
contents TEXT, -- Contents of article
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255), -- User that created the article
modify_date INTEGER, -- Time/date of last change
modify_user VARCHAR(255) -- User that made the last change
);
--
-- Schema for table 'carboncopy'
--
-- This table tracks users that want to be notified when a resource is
-- modified. Resources are tracked by filename/URL...
--
-- This is used to notify users whenever a STR or article is updated.
--
CREATE TABLE carboncopy (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Carbon copy ID
url VARCHAR(255), -- File or URL
email VARCHAR(255) -- Email address
);
--
-- Schema for table 'comment'
--
-- This table tracks comments that are added to a page on the web site.
-- Comments are associated with a specific URL, so you can make comments
-- on any page on the site...
--
CREATE TABLE comment (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Comment ID number
parent_id INTEGER, -- Parent comment ID number (reply-to)
status INTEGER, -- Moderation status, 0 = dead to 5 = great
url VARCHAR(255), -- File/link this comment applies to
contents text, -- Comment message
create_date INTEGER, -- Date the comment was posted
create_user VARCHAR(255) -- Author name/email
);
--
-- Table structure for table 'link'
--
-- This table lists links to external applications, web pages, etc.
-- Basically, we end up providing a hierachical, searchable link list,
-- complete with comments from users...
--
CREATE TABLE link (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Link ID number
parent_id INTEGER, -- Parent link ID or 0 for top-level
is_category INTEGER, -- 0 = listing, 1 = category
is_published INTEGER, -- 0 = private, 1 = public
name VARCHAR(255), -- Link name
version VARCHAR(255), -- Current version number string
license VARCHAR(255), -- Current license
author VARCHAR(255), -- Current author
email VARCHAR(255), -- Public email address
homepage_url VARCHAR(255), -- Home page
download_url VARCHAR(255), -- Download page
description TEXT, -- Description of link
rating_total INTEGER, -- Total of all ratings
rating_count INTEGER, -- Number of ratings
homepage_visits INTEGER, -- Number of clicks to the home page
download_visits INTEGER, -- Number of clicks to the download page
create_date INTEGER, -- Creation time/date
create_user VARCHAR(255), -- User that created the link
modify_date INTEGER, -- Last time/date changed
modify_user VARCHAR(255) -- User that made the last change
);
--
-- Table structure for table 'poll'
--
-- This table provides a very simple single question, multiple choice poll
-- interface for the main page. Used successfully for a couple years now
-- on the CUPS and FLTK sites, the main twist is the new poll_type field
-- to control whether it is pick-one or pick-many poll.
--
CREATE TABLE poll (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Poll ID number
is_published INTEGER, -- 0 = private, 1 = public
poll_type INTEGER, -- 0 = pick one, 1 = pick many
question VARCHAR(255), -- Question plain text
answer0 VARCHAR(255), -- Answer #1 plain text
count0 INTEGER, -- Number of votes for #1
answer1 VARCHAR(255), -- Answer #2 plain text
count1 INTEGER, -- Number of votes for #2
answer2 VARCHAR(255), -- Answer #3 plain text
count2 INTEGER, -- Number of votes for #3
answer3 VARCHAR(255), -- Answer #4 plain text
count3 INTEGER, -- Number of votes for #4
answer4 VARCHAR(255), -- Answer #5 plain text
count4 INTEGER, -- Number of votes for #5
answer5 VARCHAR(255), -- Answer #6 plain text
count5 INTEGER, -- Number of votes for #6
answer6 VARCHAR(255), -- Answer #7 plain text
count6 INTEGER, -- Number of votes for #7
answer7 VARCHAR(255), -- Answer #8 plain text
count7 INTEGER, -- Number of votes for #8
answer8 VARCHAR(255), -- Answer #9 plain text
count8 INTEGER, -- Number of votes for #9
answer9 VARCHAR(255), -- Answer #10 plain text
count9 INTEGER, -- Number of votes for #10
votes INTEGER, -- Total votes
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255), -- User that created the poll
modify_date INTEGER, -- Time/date of last change
modify_user VARCHAR(255) -- User that made the last change
);
--
-- Schema for table 'str'
--
-- This table stores software trouble reports.
--
CREATE TABLE str (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- STR number
master_id INTEGER, -- "Duplicate of" number
is_published INTEGER, -- 0 = private, 1 = public
status INTEGER, -- 1 = closed/resolved,
-- 2 = closed/unresolved,
-- 3 = active, 4 = pending, 5 = new
priority INTEGER, -- 1 = rfe, 2 = low, 3 = moderate,
-- 4 = high, 5 = critical
scope INTEGER, -- 1 = unit, 2 = function, 3 = software
summary text, -- Plain text summary
subsystem VARCHAR(255), -- Subsystem name
str_version VARCHAR(16), -- Software version for STR
fix_version VARCHAR(16), -- Software version for fix
manager_email VARCHAR(255), -- Manager of STR
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255), -- User that created the STR
modify_date INTEGER, -- Time/date of last change
modify_user VARCHAR(255) -- User that made the last change
);
--
-- Schema for table 'strfile'
--
-- This table tracks the files that are attached to a STR.
--
CREATE TABLE strfile (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- File ID
str_id INTEGER, -- STR number
is_published INTEGER, -- 0 = private, 1 = public
filename VARCHAR(255), -- Name of file
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255) -- User that posted the file
);
--
-- Schema for table 'strtext'
--
-- This table tracks the text messages that are attached to a STR.
--
CREATE TABLE strtext (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- Text ID
str_id INTEGER, -- STR number
is_published INTEGER, -- 0 = private, 1 = public
contents TEXT, -- Text message
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255) -- User that posted the text
);
--
-- Schema for table 'users'
--
-- This table lists the users that work on Mini-XML. Various pages use
-- this table when doing login/logout stuff and when listing the available
-- users to assign stuff to.
--
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTO_INCREMENT,-- ID
is_published INTEGER, -- 0 = private, 1 = public
name VARCHAR(255), -- Login name
email VARCHAR(255), -- Name/email address
hash CHAR(32), -- MD5 hash of name:password
level INTEGER, -- 0 = normal user, 100 = admin user
create_date INTEGER, -- Time/date of creation
create_user VARCHAR(255), -- User that created the user
modify_date INTEGER, -- Time/date of last change
modify_user VARCHAR(255) -- User that made the last change
);
--
-- Table structure for table 'vote'
--
-- This table is used to track ratings, poll votes, etc. that are made on
-- the links and poll pages.
--
CREATE TABLE vote (
type_id_ip VARCHAR(255) PRIMARY KEY -- type_id_ip
);
--
-- End of "$Id: mxml.sql,v 1.7 2004/05/21 03:59:17 mike Exp $".
--
76f2ae49bf0f5745d5cb5d9507774dc9 2.7 mxml/2.7/mxml-2.7.tar.gz
68977789ae64985dddbd1a1a1652642e 2.6 mxml/2.6/mxml-2.6.tar.gz
f706377fba630b39fa02fd63642b17e5 2.5 mxml/2.5/mxml-2.5.tar.gz
9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Mini-XML Programmers Manual, Version 2.7</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2011">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
<LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html">
<STYLE TYPE="text/css"><!--
BODY { font-family: sans-serif }
H1 { font-family: sans-serif }
H2 { font-family: sans-serif }
H3 { font-family: sans-serif }
H4 { font-family: sans-serif }
H5 { font-family: sans-serif }
H6 { font-family: sans-serif }
SUB { font-size: smaller }
SUP { font-size: smaller }
PRE { font-family: monospace }
A { text-decoration: none }
--></STYLE>
</HEAD>
<BODY>
<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
<BR>
<BR><B><A HREF="intro.html#INTRO">Introduction</A></B>
<UL>
<LI><A HREF="intro.html#1_1">Organization of This Document</A></LI>
<LI><A HREF="intro.html#1_2">Notation Conventions</A></LI>
<LI><A HREF="intro.html#1_3">Abbreviations</A></LI>
<LI><A HREF="intro.html#1_4">Other References</A></LI>
<LI><A HREF="intro.html#1_5">Legal Stuff</A></LI>
</UL>
<B><A HREF="install.html#INSTALL">Building, Installing, and Packaging
Mini-XML</A></B>
<UL>
<LI><A HREF="install.html#2_1">Compiling Mini-XML</A>
<UL>
<LI><A HREF="install.html#2_1_1">Compiling with Visual C++</A></LI>
<LI><A HREF="install.html#2_1_2">Compiling with Command-Line Tools</A></LI>
</UL>
</LI>
<LI><A HREF="install.html#2_2">Installing Mini-XML</A></LI>
<LI><A HREF="install.html#2_3">Creating Mini-XML Packages</A></LI>
</UL>
<B><A HREF="basics.html#BASICS">Getting Started with Mini-XML</A></B>
<UL>
<LI><A HREF="basics.html#3_1">The Basics</A></LI>
<LI><A HREF="basics.html#3_2">Nodes</A>
<UL>
<LI><A HREF="basics.html#3_2_1">CDATA Nodes</A></LI>
<LI><A HREF="basics.html#3_2_2">Custom Nodes</A></LI>
<LI><A HREF="basics.html#3_2_3">Comment Nodes</A></LI>
<LI><A HREF="basics.html#3_2_4">Element Nodes</A></LI>
<LI><A HREF="basics.html#3_2_5">Integer Nodes</A></LI>
<LI><A HREF="basics.html#3_2_6">Opaque Nodes</A></LI>
<LI><A HREF="basics.html#3_2_7">Text Nodes</A></LI>
<LI><A HREF="basics.html#3_2_8">Processing Instruction Nodes</A></LI>
<LI><A HREF="basics.html#3_2_9">Real Number Nodes</A></LI>
<LI><A HREF="basics.html#3_2_10">XML Declaration Nodes</A></LI>
</UL>
</LI>
<LI><A HREF="basics.html#3_3">Creating XML Documents</A></LI>
<LI><A HREF="basics.html#3_4">Loading XML</A></LI>
<LI><A HREF="basics.html#3_5">Saving XML</A>
<UL>
<LI><A HREF="basics.html#3_5_1">Controlling Line Wrapping</A></LI>
</UL>
</LI>
<LI><A HREF="basics.html#3_6">Memory Management</A></LI>
<LI><A HREF="basics.html#3_7">Finding and Iterating Nodes</A></LI>
<LI><A HREF="basics.html#3_8">Finding Specific Nodes</A></LI>
</UL>
<B><A HREF="advanced.html#ADVANCED">More Mini-XML Programming Techniques</A>
</B>
<UL>
<LI><A HREF="advanced.html#LOAD_CALLBACKS">Load Callbacks</A></LI>
<LI><A HREF="advanced.html#SAVE_CALLBACKS">Save Callbacks</A></LI>
<LI><A HREF="advanced.html#4_3">Custom Data Types</A></LI>
<LI><A HREF="advanced.html#4_4">Changing Node Values</A></LI>
<LI><A HREF="advanced.html#4_5">Formatted Text</A></LI>
<LI><A HREF="advanced.html#4_6">Indexing</A></LI>
<LI><A HREF="advanced.html#4_7">SAX (Stream) Loading of Documents</A></LI>
</UL>
<B><A HREF="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A></B>
<UL>
<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_3">Titles, Sections, and Introductions</A></LI>
</UL>
<B><A HREF="license.html#LICENSE">Mini-XML License</A></B>
<BR>
<BR><B><A HREF="relnotes.html#RELNOTES">Release Notes</A></B>
<UL></UL>
<B><A HREF="reference.html#REFERENCE">Library Reference</A></B>
<UL>
<LI><A HREF="reference.html#8_1">Contents</A></LI>
<LI><A HREF="reference.html#FUNCTIONS">Functions</A>
<UL>
<LI><A HREF="reference.html#mxmlAdd">mxmlAdd</A></LI>
<LI><A HREF="reference.html#mxmlDelete">mxmlDelete</A></LI>
<LI><A HREF="reference.html#8_2_3">mxmlElementDeleteAttr</A></LI>
<LI><A HREF="reference.html#mxmlElementGetAttr">mxmlElementGetAttr</A></LI>
<LI><A HREF="reference.html#mxmlElementSetAttr">mxmlElementSetAttr</A></LI>
<LI><A HREF="reference.html#8_2_6">mxmlElementSetAttrf</A></LI>
<LI><A HREF="reference.html#mxmlEntityAddCallback">mxmlEntityAddCallback</A>
</LI>
<LI><A HREF="reference.html#mxmlEntityGetName">mxmlEntityGetName</A></LI>
<LI><A HREF="reference.html#mxmlEntityGetValue">mxmlEntityGetValue</A></LI>
<LI><A HREF="reference.html#mxmlEntityRemoveCallback">
mxmlEntityRemoveCallback</A></LI>
<LI><A HREF="reference.html#mxmlFindElement">mxmlFindElement</A></LI>
<LI><A HREF="reference.html#8_2_12">mxmlFindPath</A></LI>
<LI><A HREF="reference.html#8_2_13">mxmlGetCDATA</A></LI>
<LI><A HREF="reference.html#8_2_14">mxmlGetCustom</A></LI>
<LI><A HREF="reference.html#8_2_15">mxmlGetElement</A></LI>
<LI><A HREF="reference.html#8_2_16">mxmlGetFirstChild</A></LI>
<LI><A HREF="reference.html#8_2_17">mxmlGetInteger</A></LI>
<LI><A HREF="reference.html#8_2_18">mxmlGetLastChild</A></LI>
<LI><A HREF="reference.html#mxmlGetNextSibling">mxmlGetNextSibling</A></LI>
<LI><A HREF="reference.html#8_2_20">mxmlGetOpaque</A></LI>
<LI><A HREF="reference.html#8_2_21">mxmlGetParent</A></LI>
<LI><A HREF="reference.html#8_2_22">mxmlGetPrevSibling</A></LI>
<LI><A HREF="reference.html#8_2_23">mxmlGetReal</A></LI>
<LI><A HREF="reference.html#8_2_24">mxmlGetRefCount</A></LI>
<LI><A HREF="reference.html#8_2_25">mxmlGetText</A></LI>
<LI><A HREF="reference.html#8_2_26">mxmlGetType</A></LI>
<LI><A HREF="reference.html#8_2_27">mxmlGetUserData</A></LI>
<LI><A HREF="reference.html#mxmlIndexDelete">mxmlIndexDelete</A></LI>
<LI><A HREF="reference.html#mxmlIndexEnum">mxmlIndexEnum</A></LI>
<LI><A HREF="reference.html#mxmlIndexFind">mxmlIndexFind</A></LI>
<LI><A HREF="reference.html#8_2_31">mxmlIndexGetCount</A></LI>
<LI><A HREF="reference.html#mxmlIndexNew">mxmlIndexNew</A></LI>
<LI><A HREF="reference.html#mxmlIndexReset">mxmlIndexReset</A></LI>
<LI><A HREF="reference.html#mxmlLoadFd">mxmlLoadFd</A></LI>
<LI><A HREF="reference.html#mxmlLoadFile">mxmlLoadFile</A></LI>
<LI><A HREF="reference.html#mxmlLoadString">mxmlLoadString</A></LI>
<LI><A HREF="reference.html#8_2_37">mxmlNewCDATA</A></LI>
<LI><A HREF="reference.html#8_2_38">mxmlNewCustom</A></LI>
<LI><A HREF="reference.html#mxmlNewElement">mxmlNewElement</A></LI>
<LI><A HREF="reference.html#mxmlNewInteger">mxmlNewInteger</A></LI>
<LI><A HREF="reference.html#mxmlNewOpaque">mxmlNewOpaque</A></LI>
<LI><A HREF="reference.html#mxmlNewReal">mxmlNewReal</A></LI>
<LI><A HREF="reference.html#mxmlNewText">mxmlNewText</A></LI>
<LI><A HREF="reference.html#mxmlNewTextf">mxmlNewTextf</A></LI>
<LI><A HREF="reference.html#8_2_45">mxmlNewXML</A></LI>
<LI><A HREF="reference.html#8_2_46">mxmlRelease</A></LI>
<LI><A HREF="reference.html#mxmlRemove">mxmlRemove</A></LI>
<LI><A HREF="reference.html#8_2_48">mxmlRetain</A></LI>
<LI><A HREF="reference.html#8_2_49">mxmlSAXLoadFd</A></LI>
<LI><A HREF="reference.html#8_2_50">mxmlSAXLoadFile</A></LI>
<LI><A HREF="reference.html#8_2_51">mxmlSAXLoadString</A></LI>
<LI><A HREF="reference.html#mxmlSaveAllocString">mxmlSaveAllocString</A></LI>
<LI><A HREF="reference.html#mxmlSaveFd">mxmlSaveFd</A></LI>
<LI><A HREF="reference.html#mxmlSaveFile">mxmlSaveFile</A></LI>
<LI><A HREF="reference.html#mxmlSaveString">mxmlSaveString</A></LI>
<LI><A HREF="reference.html#8_2_56">mxmlSetCDATA</A></LI>
<LI><A HREF="reference.html#8_2_57">mxmlSetCustom</A></LI>
<LI><A HREF="reference.html#mxmlSetCustomHandlers">mxmlSetCustomHandlers</A>
</LI>
<LI><A HREF="reference.html#mxmlSetElement">mxmlSetElement</A></LI>
<LI><A HREF="reference.html#mxmlSetErrorCallback">mxmlSetErrorCallback</A>
</LI>
<LI><A HREF="reference.html#mxmlSetInteger">mxmlSetInteger</A></LI>
<LI><A HREF="reference.html#mxmlSetOpaque">mxmlSetOpaque</A></LI>
<LI><A HREF="reference.html#mxmlSetReal">mxmlSetReal</A></LI>
<LI><A HREF="reference.html#mxmlSetText">mxmlSetText</A></LI>
<LI><A HREF="reference.html#mxmlSetTextf">mxmlSetTextf</A></LI>
<LI><A HREF="reference.html#8_2_66">mxmlSetUserData</A></LI>
<LI><A HREF="reference.html#8_2_67">mxmlSetWrapMargin</A></LI>
<LI><A HREF="reference.html#mxmlWalkNext">mxmlWalkNext</A></LI>
<LI><A HREF="reference.html#mxmlWalkPrev">mxmlWalkPrev</A></LI>
</UL>
</LI>
<LI><A HREF="reference.html#TYPES">Data Types</A>
<UL>
<LI><A HREF="reference.html#mxml_custom_destroy_cb_t">
mxml_custom_destroy_cb_t</A></LI>
<LI><A HREF="reference.html#mxml_custom_load_cb_t">mxml_custom_load_cb_t</A>
</LI>
<LI><A HREF="reference.html#mxml_custom_save_cb_t">mxml_custom_save_cb_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_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_node_t">mxml_node_t</A></LI>
<LI><A HREF="reference.html#mxml_save_cb_t">mxml_save_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_type_t">mxml_type_t</A></LI>
</UL>
</LI>
<LI><A HREF="reference.html#ENUMERATIONS">Constants</A>
<UL>
<LI><A HREF="reference.html#mxml_sax_event_e">mxml_sax_event_e</A></LI>
<LI><A HREF="reference.html#mxml_type_e">mxml_type_e</A></LI>
</UL>
</LI>
</UL>
<B><A HREF="schema.html#SCHEMA">XML Schema</A></B>
<UL></UL>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Mini-XML Programmers Manual, Version 2.7</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2011">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
<LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html">
<LINK REL="Prev" HREF="intro.html">
<LINK REL="Next" HREF="basics.html">
<STYLE TYPE="text/css"><!--
BODY { font-family: sans-serif }
H1 { font-family: sans-serif }
H2 { font-family: sans-serif }
H3 { font-family: sans-serif }
H4 { font-family: sans-serif }
H5 { font-family: sans-serif }
H6 { font-family: sans-serif }
SUB { font-size: smaller }
SUP { font-size: smaller }
PRE { font-family: monospace }
A { text-decoration: none }
--></STYLE>
</HEAD>
<BODY>
<A HREF="index.html">Contents</A>
<A HREF="intro.html">Previous</A>
<A HREF="basics.html">Next</A>
<HR NOSHADE>
<H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100"
hspace="10" src="1.gif" width="100"></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 ANSI/ISO-C
compatible compiler to build Mini-XML - GCC works, as do most vendors'
C compilers. If you are building Mini-XML on Windows, we recommend
using the Visual C++ environment with the supplied solution file. For
other operating systems, you'll need a POSIX-compatible shell and <TT>
make</TT> program in addition to the C compiler.</P>
<H2><A NAME="2_1">Compiling Mini-XML</A></H2>
<P>Mini-XML comes with both an autoconf-based configure script and a
Visual C++ solution that can be used to compile the library and
associated tools.</P>
<H3><A NAME="2_1_1">Compiling with Visual C++</A></H3>
<P>Open the<VAR> mxml.sln</VAR> solution in the<VAR> vcnet</VAR> folder.
Choose the desired build configuration, &quot;Debug&quot; (the default) or
&quot;Release&quot;, and then choose<VAR> Build Solution</VAR> from the<VAR>
Build</VAR> menu.</P>
<H3><A NAME="2_1_2">Compiling with Command-Line Tools</A></H3>
<P>Type the following command to configure the Mini-XML source code for
your system:</P>
<PRE>
<KBD>./configure ENTER</KBD>
</PRE>
<P>The default install prefix is<VAR> /usr/local</VAR>, which can be
overridden using the <KBD>--prefix</KBD> option:</P>
<PRE>
<KBD>./configure --prefix=/foo ENTER</KBD>
</PRE>
<P>Other configure options can be found using the <KBD>--help</KBD>
option:</P>
<PRE>
<KBD>./configure --help ENTER</KBD>
</PRE>
<P>Once you have configured the software, use the <TT>make(1)</TT>
program to do the build and run the test program to verify that things
are working, as follows:</P>
<PRE>
<KBD>make ENTER</KBD>
</PRE>
<H2><A NAME="2_2">Installing Mini-XML</A></H2>
<P>If you are using Visual C++, copy the<VAR> mxml.lib</VAR> and and<VAR>
mxml.h</VAR> files to the Visual C++<VAR> lib</VAR> and<VAR> include<VAR>
directories, respectively.</VAR></VAR></P>
<P>Otherwise, use the <TT>make</TT> command with the <KBD>install</KBD>
target to install Mini-XML in the configured directories:</P>
<PRE>
<KBD>make install ENTER</KBD>
</PRE>
<H2><A NAME="2_3">Creating Mini-XML Packages</A></H2>
<P>Mini-XML includes two files that can be used to create binary
packages. The first file is<VAR> mxml.spec</VAR> which is used by the <TT>
rpmbuild(8)</TT> software to create Red Hat Package Manager (&quot;RPM&quot;)
packages which are commonly used on Linux. Since <TT>rpmbuild</TT>
wants to compile the software on its own, you can provide it with the
Mini-XML tar file to build the package:</P>
<PRE>
<KBD>rpmbuild -ta mxml-<I>version</I>.tar.gz ENTER</KBD>
</PRE>
<P>The second file is<VAR> mxml.list</VAR> which is used by the <TT>
epm(1)</TT> program to create software packages in a variety of formats.
The <TT>epm</TT> program is available from the following URL:</P>
<PRE>
<A href="http://www.epmhome.org/">http://www.epmhome.org/</A>
</PRE>
<P>Use the <TT>make</TT> command with the <KBD>epm</KBD> target to
create portable and native packages for your system:</P>
<PRE>
<KBD>make epm ENTER</KBD>
</PRE>
<P>The packages are stored in a subdirectory named<VAR> dist</VAR> for
your convenience. The portable packages utilize scripts and tar files
to install the software on the target system. After extracting the
package archive, use the<VAR> mxml.install</VAR> script to install the
software.</P>
<P>The native packages will be in the local OS's native format: RPM for
Red Hat Linux, DPKG for Debian Linux, PKG for Solaris, and so forth.
Use the corresponding commands to install the native packages.</P>
<HR NOSHADE>
<A HREF="index.html">Contents</A>
<A HREF="intro.html">Previous</A>
<A HREF="basics.html">Next</A>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Mini-XML Programmers Manual, Version 2.7</TITLE>
<META NAME="author" CONTENT="Michael R. Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2011">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
<LINK REL="Start" HREF="index.html">
<LINK REL="Contents" HREF="index.html">
<LINK REL="Next" HREF="install.html">
<STYLE TYPE="text/css"><!--
BODY { font-family: sans-serif }
H1 { font-family: sans-serif }
H2 { font-family: sans-serif }
H3 { font-family: sans-serif }
H4 { font-family: sans-serif }
H5 { font-family: sans-serif }
H6 { font-family: sans-serif }
SUB { font-size: smaller }
SUP { font-size: smaller }
PRE { font-family: monospace }
A { text-decoration: none }
--></STYLE>
</HEAD>
<BODY>
<A HREF="index.html">Contents</A>
<A HREF="install.html">Next</A>
<HR NOSHADE>
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
hspace="10" src="0.gif" width="100"></A>Introduction</H1>
<P>This programmers manual describes Mini-XML version 2.7, 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>
<BLOCKQUOTE><EM>It's bad enough that we require libxml2, but rolling our
own XML parser is a bit more than we can handle.</EM></BLOCKQUOTE>
<P>I then replied with:</P>
<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 code: 696.
Robert promptly integrated Mini-XML into Gutenprint and removed
libxml2.</P>
<P>Thanks to lots of feedback and support from various developers,
Mini-XML has evolved since then to provide a more complete XML
implementation and now stands at a whopping 3,965 lines of code,
compared to 103,893 lines of code for libxml2 version 2.6.9.</P>
<P>Aside from Gutenprint, Mini-XML is used for the following
projects/software applications:</P>
<UL>
<LI><A href="http://www.cups.org/">CUPS</A></LI>
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
</UL>
<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
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>
<P>This manual is organized into the following chapters and appendices:</P>
<UL>
<LI>Chapter 1, &quot;<A href="install.html#INSTALL">Building, Installing, and
Packaging Mini-XML</A>&quot;, provides compilation, installation, and
packaging instructions for Mini-XML.</LI>
<LI>Chapter 2, &quot;<A href="basics.html#BASICS">Getting Started with
Mini-XML</A>&quot;, shows how to use the Mini-XML library in your programs.</LI>
<LI>Chapter 3, &quot;<A href="advanced.html#ADVANCED">More Mini-XML
Programming Techniques</A>&quot;, shows additional ways to use the Mini-XML
library.</LI>
<LI>Chapter 4, &quot;<A href="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A>