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 people all over the world.
I've also received patches and code contributions. Scott Severtson created the SAX parser and test suite included with XML for
<SCRIPT> version 2.0. He also created the W3C DOM parser in the add-ons section of the distribution.
Raymond Irving contributed the DOM tagPath capability as well as the SAX parser examples and came up with the
why-didn't-I-think-of-that-idea for the xmlEscape functions. James S. Elkins contributed the
XML Recordset Wrapper add-on.
XML for <SCRIPT>'s server-side proxies were truly a colaborative effort. Not only did
Brandon Zehm contribute the PHP and mod_perl proxies, he was instrumental in the design of the
proxy system from the beginning.
A great deal of thanks is also due to Jennifer Sims, who redesigned the
website around XML for <SCRIPT> to make it look wonderful and considerably more professional than
the one I originally crafted.
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.
Thanks to everyone who's contributed so far!
What's in the future? Well, at this point, XML for <SCRIPT>
is rather mature as far as I'm concerned. I would very much like to get the W3C DOM
parser add-on integrated into the core XML for <SCRIPT> distribution, but this will
have to be accomplished by a user contribution since I'm busy with other projects and
the current DOM parser suits my needs well enough. I promise that if someone gets the
parser to a functional state, I'll do all of the documentation and the test suite.
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@yahoo.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
objects 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 CSS Selectors. More information about tagPath searching can be
found on the "DOM" tab in the "Sample Code (Parsers)"
section of the website. This feature is also fully documented on the "DOM" tab in the "Documentation" 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
on the "Load XML" tab in the
"Sample Code (Tools)" section of the web site.
This feature is also fully documented on the "Tools" tab in the "Documentation"
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. More information about this feature can be found
on the "Save XML" tab in the
"Sample Code (Tools)" section of the web site.
This feature is also fully documented on the "Tools" tab in the "Documentation"
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. More information about this feature can be found
on the "General" tab in the "Contributed Add-ons"
section of the web site.
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.
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 Michael Houghton,
Scott Severtson, Brandon Zehm, David Joham. All trademarks are
the property of their respective owners.