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

  • MXML_SAX_DATA - Data (custom, integer, opaque, real, or text) was just read
  • MXML_SAX_DIRECTIVE - A processing directive was just read
  • -
  • MXML_SAX_ELEMENT_CLOSE - An open element was just read ( -<element>)
  • -
  • MXML_SAX_ELEMENT_OPEN - A close element was just read ( +
  • MXML_SAX_ELEMENT_CLOSE - A close element was just read ( </element>)
  • +
  • MXML_SAX_ELEMENT_OPEN - An open element was just read ( +<element>)
  • Elements are released after the close element is processed. All other nodes are released after they are processed. The SAX callback diff --git a/www/docfiles/basics.html b/www/docfiles/basics.html index 1dd05bc..aa0f976 100644 --- a/www/docfiles/basics.html +++ b/www/docfiles/basics.html @@ -1,9 +1,9 @@ -Mini-XML Programmers Manual, Version 2.5 +Mini-XML Programmers Manual, Version 2.6 - + @@ -68,10 +68,10 @@ hspace="10" src="2.gif" width="100">Getting Started with Mini-XML

    Nodes

    Every piece of information in an XML file (elements, text, numbers) is stored in memory in "nodes". Nodes are defined by the -mxml_node_t structure. The type - member defines the node type (element, integer, opaque, real, or - text) which determines which value you want to look at in the -value union.

    +mxml_node_t structure. The +type member defines the node type (element, integer, + opaque, real, or text) which determines which value you want to look at + in the value union.

    diff --git a/www/docfiles/index.html b/www/docfiles/index.html index a605858..0e90a95 100644 --- a/www/docfiles/index.html +++ b/www/docfiles/index.html @@ -1,9 +1,9 @@ -Mini-XML Programmers Manual, Version 2.5 +Mini-XML Programmers Manual, Version 2.6 - + @@ -70,7 +70,12 @@ A { text-decoration: none } Using the mxmldoc Utility @@ -151,6 +156,7 @@ mxml_custom_destroy_cb_t
  • mxml_custom_t
  • mxml_element_t
  • +
  • mxml_entity_cb_t
  • mxml_error_cb_t
  • mxml_index_t
  • mxml_load_cb_t
  • @@ -159,6 +165,7 @@ mxml_custom_destroy_cb_t
  • mxml_sax_cb_t
  • mxml_sax_event_t
  • mxml_text_t
  • +
  • mxml_type_t
  • mxml_value_t
  • diff --git a/www/docfiles/install.html b/www/docfiles/install.html index 615623f..70ac246 100644 --- a/www/docfiles/install.html +++ b/www/docfiles/install.html @@ -1,9 +1,9 @@ -Mini-XML Programmers Manual, Version 2.5 +Mini-XML Programmers Manual, Version 2.6 - + diff --git a/www/docfiles/intro.html b/www/docfiles/intro.html index 59b91a8..a984d66 100644 --- a/www/docfiles/intro.html +++ b/www/docfiles/intro.html @@ -1,9 +1,9 @@ -Mini-XML Programmers Manual, Version 2.5 +Mini-XML Programmers Manual, Version 2.6 - + @@ -28,7 +28,7 @@ A { text-decoration: none }

    0Introduction

    -

    This programmers manual describes Mini-XML version 2.5, a small XML +

    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 your C and C++ applications.

    Mini-XML was initially developed for the @@ -54,12 +54,13 @@ libxml2 library with something substantially smaller and projects/software applications:

    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.

    + +

    Organization of This Document

    This manual is organized into the following chapters and appendices: