HTML 4.01 strict HTML
Visit Sourceforge.net



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 History

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.

Thanks

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.


Feedback

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.


Copyright

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.