XML for <SCRIPT> started off as an "experimental code doodle" from Micheal Houghton. It allowed read-only access
to a DOM tree representing an XML string.
While looking for a JavaScript parser during the Summer of 2000, I ran across XML for <SCRIPT>
and used it for a large web-based application that I was developing. During the development of that application, I was impressed
with how useful the library actually was. My next web application was a custom XML-based content management system.
Since the back end employed XML as its data source, it was an easy decision to use XML for <SCRIPT> on the client side as well.
After the successful implementation of the content management system, I decided to volunteer to maintain XML for <SCRIPT>. Michael
was gracious enough to allow it, and I set forth to merge my DOM manipulation code into his tree and build a web site to support the project.
In early Summer 2001, I released XML for <SCRIPT> 1.0. Since then, thousands of people have downloaded the project. Many
have emailed me with suggestions and compliments. I have exchanged greetings with hundreds of people from every walk of life.
I've also received patches and code contributions that have extended XML for <SCRIPT>
far beyond what I ever thought it could be. These contributions have demonstrated
to me how special Free and Open Source Software can be. It also means
XML for <SCRIPT> is not just my project; it is truly a project maintained
and extended by a collaborative group of people from all over the world.
I can't thank the following people enough for their efforts in making XML
for <SCRIPT> everything that it is today.
-
Micheal Houghton
-
Original (Classic) DOM Parser
-
Scott Severtson
-
Sax Parser
-
Sax Parser Test Suite
-
Initial W3C DOM Parser work
-
Jennifer Sims
-
Site Design and Layout (2.0 and beyond)
-
Raymond Irving
-
Classic DOM tagPath
-
Sax Parser Samples
-
xmlEscape function inspiration
-
James S. Elkins
-
XML Recordset Wrapper add-on
-
Jon van Noort
-
W3C DOM Parser
-
W3C DOM Parser Test Suites
-
ASP Server-Side Proxy
-
Original XPath Contributed Add-on work
-
Brandon Zehm
-
PHP Server-Side Proxy
-
mod_perl Server-Side Proxy
-
Server-Side Proxy Design Assistance
-
Brent Brown
-
David Martz
-
Many hours of W3C Documentation review
Lastly, one of the biggest contributors to this project has been my wonderful wife, Kim. Not only did she
help out with some of the nasty regular expressions in the mod_perl proxy, but she has also granted me the time
needed to bring XML for <SCRIPT> to you. Thank you Kim, I love you.
The following is a detailed version history for XML for <SCRIPT>.
Version 0.1
Initial version
Version 0.2
Significant code changes - switched to a cleaner one-pass parser.
Version 0.21
Bug fix release. Resolves an issue with attributes named 'length', due to the Array/Object
duality in JavaScript. Adds a new accessor method on XMLNode, getAttributeNames(), to
return a list of attribute names (Direct access to the attributes array property is discouraged)
Version 0.22
Bug fix release. Fixes problems with the content of CDATA and comment sections,
and addresses string processing issues.
Version 1.0
New maintainer (djoham[at]yahoo[dot]com). Lots of new DOM manipulation functions. In addition, a new
test suite has been added to the distribution as well as a new sample application, new
documentation and a new web site design.
Version 1.1
Support for Konqueror 2.2 added (by rewriting the convert functions)
and a new stripped down version of xml.js
(tinyxml.js) added to the distribution to increase download speeds on slow
connections.
Version 2.0
A SAX parser, test suite and sample application is added to the project as well as a simple API
for storing XML data in cookies and helping in the escaping out of XML into valid HTML.
As a result, the .js files are renamed to more appropriately describe their function. In addition, a new web site
design is introduced that makes the distribution look considerably more professional and easier to read.
Version 2.1
DOM tagPath searching is added allowing JavaScript programmers to query the DOM
in a manner much like XPath. A sample application demonstrating tagPath searching
can be found in the
"Sample Code (Parsers)" -> "Classic DOM" section of the website.
This feature is also fully documented in the
"Documentation" -> "Classic DOM" section of the website.
Loading of XML Data from any domain on the web is added via the xmlIOProxyLoadData
functions and server-side proxies. More information about this feature can be found
in the
"Sample Code (Tools)" -> "Server-Side Proxies" section of the web site.
This feature is also fully documented in the
"Documentation" -> "Server-Side Proxies"
section of the website.
The XML persistence via cookies feature of XML for <SCRIPT> 2.0 is extended with
the addition of the xmlIOListSavedDataNames function. This function is useful for
building dialogs that allow users to choose which data stream that they would like
to open. It also can can be used by developers to ensure that a data stream name
is not already in use before saving. A sample application demonstrating this feature
can be found in the
"Sample Code (Tools)" -> "Saving XML" section of the web site.
This feature is also fully documented in the
"Documentation" -> "Tools" section of the website.
A section of the website devoted to user contributed code has been added.
These contributions have not yet been fully documented or tested and are not
part of the core distribution of XML for <SCRIPT>. However, following
the Free Software philosophy of "release early-release often", they are
provided as-is so the greater community may take advantage of them as
quickly as possible.
Support for Apple's Safari browser has been added.
Support for Opera 7 has been added
Support for Internet Explorer 5.2 for Macintosh OS X has been added. IE 5.2 for
OS X had problems loading the pop-up windows that contained the sample code
and the test suites. For some reason, on these windows, code similar to the
following would fail: <img src="./../images/image.png" />. Taking out the
"./" and leaving the src attribute equal to "../images/image.png" seemed to
fix the problem. This problem was only seen on the website for XML for <SCRIPT>.
The parser and tool code ran just fine.
Version 3.0
A standards-compliant W3C DOM Parser is added to the distribution. This DOM Parser complies with
the W3C Level 1 and Level 2 standards.
XML for <SCRIPT> 3.0's new DOM Parser comes complete with
a new sample application
as well as
three new test suites
and
extensive documentation.
XML for <SCRIPT> now has over a MegaByte of documentation!
A .NET Server-Side proxy has been added
An ASP Server-Side proxy has been added
The xmlIO functions have been extended to allow for XML loading from the current domain
without the need of a Server-Side proxy. A sample application demonstrating this feature
can be found in the
"Sample Code (Tools)" -> "Load Local XML Data" section of the web site.
This feature is also fully documented in the
"Documentation" -> "Tools" section of the website.
This feature can also be used to load XML off of the local file system for developers
creating applications that run from the client's computer and do not use a web server.
A new site layout (still based off of Jennifer Sims' concept) has been introduced. This
layout adds space for all of the documentation required for XML for <SCRIPT> 3.0's
feature set and allows for further expansion in the future. It also allows for direct links
to all pages.
A mailing list has been made available for users, developers and anyone else interested
in XML for <SCRIPT> to exchange ideas, questions and/or code. For more information
about the mailing lists see the documentation in the
Mailing Lists section
of the website.
A new Contributed Add-on has been created. The new "LinkChecker" Add-on allows developers
to check their sites for broken links simply by providing the address of the home page of
the web site. This Contributed Add-on is fully documented in the
Contributed Add-ons -> Link Checker
section of the website.
Version 3.1
Originally submitted by Jon Van Noort, an XPath Contributed Add-on is added on top of the XML for <SCRIPT>
W3C Processor. This XPath processor supports many of the common XPath expressions and
is documented in the
Contributed Add-ons -> XPath
section of the website.
NOTE: While providing support for what should be the
majority of the functionality needed for the most common uses of XPath, please
keep in mind that the XPath Contributed Add-on is not fully compliant to the
W3C XPath specificication and has known limitations. Please read the documentation
and ensure any XPath expressions you intend to use are supported before using the
XPath Contributed Add-on.
XML for <SCRIPT> version 3.1
fixed a number of bugs
that were found in version 3.0.
I would like to personally thank Michael Houghton <mike@idle.org>, the original author of XML
for <SCRIPT>. Without his original work, this parser would never have come into being.
If you have any comments, suggestions, modifications, complaints, etc., please contact me
(David Joham) by email: djoham[at]yahoo[dot]com. If you're reporting a bug, it would be useful if you
could provide the smallest chunk of XML that demonstrates the problem.
XML for <SCRIPT> is Copyright 2000, 2001, 2002, 2003, 2004 by its contributors.
All trademarks are the property of their respective owners.