DOM Tutorials
Tutorials about Document Object Model-related software and specifications.
DTD Tutorials
Tutorials explaining how to write a DTD.
Example Files
Example files for learning and testing purposes.
Mozilla Tutorials
Tutorials covering the Mozilla open source browser and code base.
P2P Tutorials
Tutorials coveriing the use of XML in P2P (peer-to-peer) applications.
RDF Tutorials
Tutorials about RDF (Resource Description Framework).
Resource Sites
XML Resource Sites containing links to other software and tutorials.
RSS Tutorials
Tutorials explaining how to create RSS files and develop RSS software.
SAX Tutorials
Tutorials Covering SAX (the Simple API for XML).
SAX vs. DOM
White papers comparing the SAX (Simple API for XML) event model for accessing XML documents with the DOM's (Document Object Model) tree-like approach.
Schema Tutorials
Tutorials explaining how to create and use schema languages to validate XML documents.
Introducing E4X
By Kurt Cagle
Kurt Cagle introduces us to E4X, an XML library for JavaScript, and argues that XML and JSON are both indispensable parts of the web app developer's toolkit. [Nov. 30, 2007]
jQuery and XML
By Uche Ogbuji
Uche Ogbuji returns with a new Agile Web column to explain how to use jQuery to process XML in JavaScript web applications. [Oct. 15, 2007]
Extended XQuery for SOA
By Dino Fancellu, Edmund Gimzewski
Web service orchestration is an important part of web services and service oriented architecture. Gimzewski and Fancellu argue that XQuery is especially well-suited as an implementation language for service orchestrator components. [Sep. 14, 2007]
Introducing OpenSearch
By Uche Ogbuji
Uche Ogbuji's Agile Web column returns with an introduction to OpenSearch, an Atom-friendly format for describing and discovering search engines and query endpoints on the Web in a RESTful way. [Jul. 24, 2007]
Introducing RDFa, Part Two
By Bob DuCharme
In this second part of a two-part series, Bob DuCharme concludes his introduction of RDFa--a new, XHTML-friendly standard syntax for RDF metadata that allows you to embed RDF metadata into the Web in a novel way. [Apr. 4, 2007]
Introducing RDFa
By Bob DuCharme
In this first part of a two-part series, Bob DuCharme introduces us to RDFa, a new, XHTML-friendly standard syntax for RDF metadata that allows you to embed RDF metadata into the Web in a novel way. [Feb. 14, 2007]
What's New in Prototype 1.5?
By Scott Raymond
Scott Raymond, author of Ajax on Rails, gives us a comprehensive look at what's new in one of the fundamental Javascript libraries, Prototype. [Jan. 24, 2007]
Making XML in a Rails App
By Deepak Vohra
Deepak Vohra shows us how to generate XML in a database-backed Rails app using XML Builder. [Jan. 17, 2007]
Introducing OpenLaszlo
By Sreekumar Parameswaran Pillai
This week, Sreekumar Pillai begins a two-part series on OpenLaszlo, a zero-install platform for rich web applications. In this first part, Pillai introduces the OpenLaszlo Hello World app. [Oct. 11, 2006]
Introducing WSGI: Python's Secret Web Weapon
By James Gardner
James Gardner introduces WSGI, the new Python standard for building reusable web-framework components, which just may turn out to be Python's secret web weapon. [Sep. 27, 2006]
Google Web Toolkit
By Bruce Perry
Bruce Perry's latest piece introduces GWT, the Google Web Toolkit, which is a kind of Java to Ajax compiler. It's a very interesting new development in the world of very interactive web apps. [Jul. 12, 2006]
Scaling Up with XQuery, Part 2
By Bob DuCharme
In Part 2 of this article, Bob DuCharme covers the eXist and Berkeley DB XML implementations of XQuery, showing us how to use them to query a large XML data collection. [Jun. 21, 2006]
Scaling Up with XQuery, Part 1
By Bob DuCharme
In Part 1 of this two-part article, Bob DuCharme shows us how to use three popular XQuery implementations to access and query large XML document collections, which is, as he says, "where the real fun begins." [Jun. 14, 2006]
Object-oriented JavaScript
By Greg Brown
Greg Brown explains how to use basic object-oriented techniques to build more robust AJAX applications. [Jun. 7, 2006]
Converting Between XML and JSON
By Stefan Goessner
Stefan Goessner shows us how to convert between XML and JSON, offering a pragmatic approach to data sharing and conversion between two very popular data formats. [May. 31, 2006]
ExplorerCanvas: Interactive Web Apps
By Dave Hoover
Dave Hoover returns with an update about canvas-powered web apps, adding interactivity to the method he described in his Supertrain article. [May. 10, 2006]
An AJAX Caching Strategy
By Bruce Perry
Bruce Perry returns with another
AJAX hack; this time he shows us how to use HTTP caching to support an AJAX-enabled web client. [May. 3, 2006]
Prototype: Easing AJAX's Pain
By Bruce Perry
Bruce Perry introduces us to Prototype, a JavaScript library that makes AJAX development faster and easier. [Apr. 5, 2006]
Hacking the XML in Your TiVo
By Bob DuCharme
Bob DuCharme's latest article shows us how to query a networked TiVo for XML using a REST interface over HTTP. Bob then shows us how to use Atom to syndicate our TV habits and integrate them with our weblogs via the "TiVoRoll." [Feb. 15, 2006]
Doing HTTP Caching Right: Introducing httplib2
By Joe Gregorio
In the latest installment of Joe Gregorio's The Restful Web column Joe goes a bit nuts, presenting httplib2, a Python HTTP client library written with the goal of doing caching in HTTP right. [Feb. 1, 2006]
Tuning AJAX
By Dave Johnson
AJAX is all the rage and it's being used for non-trivial applications. But do you know what's fast and what's slow in AJAX? Get ready to tune your AJAX apps. [Nov. 30, 2005]
Introducing SPARQL: Querying the Semantic Web
By Leigh Dodds
Leigh Dodds presents the first of a multipart tutorial on SPARQL, a query language for RDF and the Semantic Web, which may also play a role in Web 2.0 apps and services. [Nov. 16, 2005]
REXML: Processing XML in Ruby
By Koen Vervloesem
Ruby web apps, including those built with Rails, don't always use XML to represent data. But sometimes you just don't have a choice. Koen Vervloesem shows us how to process XML in Ruby using Ruby Electric XML (REXML). [Nov. 9, 2005]
A Bright, Shiny Service: Sparklines
By Joe Gregorio
Joe Gregorio describes how to implement a sparklines web service and web application, and also provides Python and Javascript code for both. Very Web 2.0! [Jun. 22, 2005]
Introducing SKOS
By Peter Mikhalenko
Peter Mikhalenko introduces SKOS, a W3C standard for using RDF to represent thesauri, taxonomies, and other information space structures. [Jun. 22, 2005]
More Unicode Secrets
By Uche Ogbuji
In this month's Python and XML column, Uche Ogbuji continues his discussion of Unicode secrets with regard to XML processing in Python, especially BOMs and stream objects. [Jun. 15, 2005]
Just Use Media Types?
By Joe Gregorio
In his latest Restful Web column, Joe Gregorio implements a set of Python functions for doing the right thing--analyzing, parsing, and matching--with HTTP request media types. [Jun. 8, 2005]
Making Old Things New Again
By Uche Ogbuji
In his latest Python and XML column, Uche Ogbuji examines some of the new XML document creation features in Amara and 4Suite. [Apr. 20, 2005]
Hacking Oscar!
By Howard Katz
In this first part of a two-part series, Howard Katz, XQuery guru to the stars, uses XQuery to build a database of trivia related to the Academy Awards. [Mar. 23, 2005]
Models with Character
By Micah Dubinko
Micah Dubinko tallies up the score in the new W3C specification, called "charmod" colloquially, about the use of Unicode in XML applications. [Mar. 9, 2005]
Show Me the Code
By Joe Gregorio
Joe Gregorio returns with another Restful Web column, taking up the issue of designing a REST protocol for your application. [Mar. 2, 2005]
Getting Started with XQuery
By Bob DuCharme
Bob DuCharme, our intrepid XSLT explorer, turns his attentions to XQuery, the new programming language for XML. [Mar. 2, 2005]
Sarissa to the Rescue
By Emmanouil Batsis
Want to build very dynamic web interfaces like Google? Then you'll need to manage cross-browser XML compatability issues. And you'll need Sarissa. [Feb. 23, 2005]
Very Dynamic Web Interfaces
By Drew McLellan
Drew McLellan explains how to use XMLHTTPRequest and Javascript to create web applications with very dynamic, smooth interfaces. [Feb. 9, 2005]
Introducing Comega
By Dare Obasanjo
Dare Obasanjo explains some of the ways in which Cω--a new language from Microsoft Research--makes XML processing easier and more natural. [Jan. 12, 2005]
Fun with Amazon's Simple Queue Service
By Jason Levitt
Jason Levitt offers a detailed introduction to Amazon's Simple Queue Service (SQS), as well as a sample chat room application using client-side Javascript and Amazon's SQS. [Jan. 5, 2005]
Mapping and Markup, Part 2
By John E. Simpson
In the final part of his XML Tourist column's exploration of GML, John E. Simpson introduces us to the component schema parts as well as to some GML software. [Dec. 29, 2004]
XML Namespace Processing in Apache
By Nick Kew
Nick Kew introduces the Apache XML Namespace API for use in building mix-and-match XML Namespace-aware applications for the Web in Apache. [Dec. 15, 2004]
XSLT Web Service Clients
By Bob DuCharme
Bob DuCharme shows how easily XSLT processors can retrieve and use data from RESTful web services. [Dec. 1, 2004]
How to Create a REST Protocol
By Joe Gregorio
In his first installment of XML.com's new column, The Restful Web, Joe Gregorio, one of the people behind Atom, explains how to use REST to create an application protocol in four easy steps. [Dec. 1, 2004]
Location, Location, Location
By Uche Ogbuji
Uche Ogbuji's Python and XML column this month describes some techniques for determing node or parse event locations, expressed in XPath, when parsing XML with DOM or SAX. [Nov. 24, 2004]
Hacking iTunes
By Niel Bornstein
Niel Bornstein, Mono and C# hacker extraordinaire, returns with a look at Apple's iTunes service and XML vocabulary, connecting iTunes to Google and Amazon. [Nov. 3, 2004]
Extensibility, XML Vocabularies, and XML Schema
By David Orchard
David Orchard returns to the issue of extending and v ersioning XML vocabularies, adding new information about language questions and the relationship between versioning and extensibility. [Oct. 27, 2004]
Automated Tree Drawing: XSLT and SVG
By Jirka Kosek
Jirka Kosek describes a technique for creating graphics of tree structures from a simple textual syntax using SVG and XSLT. [Sep. 8, 2004]
XML on the Web Has Failed
By Mark Pilgrim
In Mark Pilgrim's latest Dive into XML column he argues that most XML on the Web has failed utterly, miserably, completely. [Jul. 21, 2004]
XKMS Messages in Detail
By Rich Salz
In Rich Salz's latest column he examines the structure of XKMS messages in greater detail. [Apr. 7, 2004]
Normalizing Syndicated Feed Content
By Mark Pilgrim
In Mark Pilgrim's latest Dive Into XML column he dives into the deep waters to explain how to normalize the content of syndicated feeds. [Apr. 7, 2004]
Building Dictionaries With SAX
By Uche Ogbuji
In Uche Ogbuji's latest Python and XML column he describes an optimization technique for speeding up Python XML applications by using SAX to build specialized Python dictionaries. [Jan. 14, 2004]
Trees, Temporarily
By Bob DuCharme
In his latest Transforming XML column Bob DuCharme explains XSLT 2.0's Temporary Trees, and then he demonstrates how to use them. [Dec. 3, 2003]
Overriding Concerns
By John E. Simpson
In his latest XML Q&A column John E. Simpson answers a question about merging XML files with XSLT. [Nov. 26, 2003]
More Gems From the Mines
By Uche Ogbuji
In his latest Python and XML column Uche Ogbuji presents new gems from the archives of the main Python-XML mailing list, again focusing on XML output. [Nov. 12, 2003]
The Atom API
By Mark Pilgrim
In his latest Dive into XML column Mark Pilgrim explains the basic operations of the Atom API, with special reference to the precedent APIs. [Oct. 15, 2003]
New and Improved String Handling
By Bob DuCharme
In this month's Transforming XML column Bob DuCharme explains some of the new and improved string handling functions -- for concatenation, search, and replace -- in XSLT/XPath 2.0. [Aug. 6, 2003]
Comments in a "No comment" World
By John E. Simpson
In this month's XML Q&A column, John E. Simpson examines two issues related to documentation of, and comments in, XML documents and schemas. [Jul. 30, 2003]
Finding IDs
By John E. Simpson
In this month's XML Q&A column, John E. Simpson answers questions about XPath, XSLT, and ID attributes, as well as updates last month's column about the XML Resume Library. [Jun. 25, 2003]
XML Data Bindings in Python
By Uche Ogbuji
In the latest Python and XML column Uche Ogbuji considers Python data bindings for XML, including generateDS, a script which builds Python bindings from a WXS instance. [Jun. 11, 2003]
Using libxml in Python
By Uche Ogbuji
In Uche Ogbuji's latest Python and XML column he introduces libxml, a popular and well-designed low-level XML library, paying particular attention to its Python bindings. [May. 14, 2003]
Gems From the Archives
By Uche Ogbuji
In this month's Python and XML column Uche Ogbuji hunts for treasures in the archives of the Python XML SIG, locating interesting tidbits for producing and displaying XML. [Apr. 9, 2003]
Conditional Execution
By Bob DuCharme
In Bob DuCharme's latest Transforming XML column, he explains how to use xsl:if and xsl:choose for conditional execution in XSLT transformations. [Apr. 2, 2003]
Using SAX for Proper XML Output
By Uche Ogbuji
In his latest Python and XML column, Uche Ogbuji explains how to use SAX to generate proper XML output from Python programs. [Mar. 12, 2003]
Generating DOM Magic
By Uche Ogbuji
In the first Python and XML column of the new year, Uche Ogbuji describes how to use Python generators in DOM processing. [Jan. 8, 2003]
Proper XML Output in Python
By Uche Ogbuji
In his latest Python and XML column, Uche Ogbuji explores the intricacies of creating proper XML output in Python, including character set and encoding issues. [Nov. 13, 2002]
Automatic Numbering, Part 1
By Bob DuCharme
In this month's Transforming XML column Bob Ducharme explains the use of xsl:number in handling numbers in XSLT stylesheets. [Nov. 6, 2002]
A Tour of 4Suite
By Uche Ogbuji
In this installment of Python and XML, Uche Ogbuji provides a tour of the core XML processing facilities of 4Suite. [Oct. 16, 2002]
Introducing PyXML
By Uche Ogbuji
In the second Python and XML column, Uche Ogbuji introduces PyXML, the add-on XML library which builds upon Python's core XML support. [Sep. 25, 2002]
Finding the First, Last, Biggest, Smallest
By Bob DuCharme
In this month's Transforming XML column, Bob DuCharme explains how to do without a query language using XPath expressions, XSLT predicates, and last month's sorting tricks, he explains how to find the first, last, biggest and smallest nodes. [Aug. 7, 2002]
Sorting in XSLT
By Bob DuCharme
In this month's Transforming XML column, Bob DuCharme explains the various uses of xsl:sort, including sort ordering, multiple keys, and reversing the sort. [Jul. 3, 2002]
Pull Parsing in C# and Java
By Niel Bornstein
Niel Bornstein demonstrates the .NET C# XML "pull parser" from
Microsoft, and then ports the program to use on of the several pull
parsers available for Java, comparing the two languages. [May. 22, 2002]
Building XML-RPC Clients in C
By Joe Johnston
In this article, Eric Kidd's XML-RPC
C library is used to build a simple, yet powerful debugging client.
Special care is taken to bring programmers with rusty C-hacking skills up to speed. [Oct. 31, 2001]
Valid Frustrations
By John E. Simpson
John Simpson talks about some of the limits of DTD content models, suggesting an interesting XSLT-based alternative. [Sep. 26, 2001]
Nobody Asked Me, But...
By John E. Simpson
John Simpson asks and answers the questions no one ever asks about XML, uncovering some interesting tidbits. [Aug. 29, 2001]
Preview: O'Reilly XTech 2001 Conference on XML
By Edd Dumbill
O'Reilly's XTech 2001 will be held from July 23-27 in San Diego, California. The conference chair, Edd Dumbill, previews this essential meeting for XML developers. [Jun. 20, 2001]
XSLT Surgery
By John E. Simpson
This month our question and answer columns covers XSLT issues, from using multiple languages to styling third party content. [Apr. 25, 2001]
Answering the Namespace Riddle
By Leigh Dodds
Dodds introduces RDDL, the Resource Directory Description Language, the result of a recent project conducted by the XML developer community to make XML namespaces easier to use. [Feb. 28, 2001]
XSLT, Comments and Processing Instructions
By Bob DuCharme
XSLT isn't just for transforming elements and attributes. In this month's Transforming XML column we show how to create and transform processing instructions and comments too. [Sep. 13, 2000]
The Making of the DocBook DTD
By Dale Dougherty
The DocBook DTD grew out of the Davenport Group, and many of the people who contributed to this DTD for computer documentation have gone on to take leading roles in XML development.
[Oct. 20, 1999]
Using XML for Object Persistence
By Ralf Westphal
In this tutorial on object persistence and XML, Ralf Westphal explains object persistence and details some of the issues involved in maintaining an object's data, hierarchy, and structure. He then shows how to create your own XML data format for serializing objects. [Sep. 8, 1999]
What Is a Schema
By Norman Walsh
In the context of XML, a
schema describes a model for a whole class of documents. [Jul. 1, 1999]
Validity
By Norman Walsh
What does it mean for a document to be valid? [Jul. 1, 1999]
Syntax
By Norman Walsh
What does an XML schema look like, then? [Jul. 1, 1999]
DTDs
By Norman Walsh
Aren't DTDs the Schema for XML? [Jul. 1, 1999]
Getting Started with XML Programming, Part II
By Norman Walsh
Norman Walsh looks at how to program to use the DOM as programming-language-independent interface to documents. He
shows how to interact with the DOM using Java. [May. 5, 1999]
P3P: An Emerging Privacy Standard
By Lisa Rein
The W3C has released the latest draft of a privacy protocol that should let agents work smoothly between browsers and web sites, in accordance with the user's preferences. Also, Microsoft and Trust-E have developed a wizard to help site owners create privacy guidelines. [May. 5, 1999]
Understanding XSL
By Norman Walsh
In part 3 of this tour of XSL, Norm looks at the XSL features needed to write a simple style sheet, and provides some exercises for continued learning about XSL. [Jan. 19, 1999]
XML Namespaces by Example
By Tim Bray
The hows and whys of XML namespaces explained by a co-author of the specification, XML.com's technical editor Tim Bray. [Jan. 19, 1999]
A Technical Introduction to XML
By Norman Walsh
What is XML? This introduction to XML is geared towards a reader with some HTML or SGML experience, although that experience is not absolutely necessary. This article is an update to A Guide to XML, which originally appeared in the Winter 1997 edition of the World Wide Web Journal.
[Oct. 3, 1998]
What Is XML
By Norman Walsh
Learn the basics of XML in this tutorial, suitable for beginners with XML. [Oct. 3, 1998]
Building the Annotated XML Specification
By Tim Bray
XML.com's technical editor explains the conceptual design and syntactical execution of our popular Annotated XML Specification. [Sep. 12, 1998]
Handling Binary Data in XML Documents
By Lisa Rein
Binary data can present some interesting problems. This article looks at ways to support binary data such as images in XML documents. [Jul. 24, 1998]
An Introduction to XML Linking
An introduction to the features and benefits of the XML Linking Language specification, by its co-editor Eve Maler. This is a RealAudio presentation. [Jun. 10, 1998]
The Annotated XML Specification
By Tim Bray, Jean Paoli, C.M. Sperberg-McQueen
If you want to understand XML, you have to read the specification. However, to really get inside the specification and understand why it says what it does, you need an expert guide. Tim Bray, co-editor of the XML 1.0 specification, shares his knowledge and insights about XML, SGML and the working group behind the specification in this annotated version of the document. [Apr. 15, 1998]
A Guide to XML
By Norman Walsh
If you are looking for a good overview
of XML, with sufficient technical detail,
then this article from the World Wide Web
Journal is a good place to start. [Oct. 2, 1997]
XML: From Bytes to Characters
By Bert Bos
This article defines, in some detail, how text is stored in an XML file. It also describes how an XML file is encoded for transportation over the Internet, and upon arrival, decoded again. [Oct. 2, 1997]