XML started strong and has grown quite rapidly. It has proven itself a very valuable technology, but it can be an intimidating one, when one considers all the moving parts that fall under the term "XML". In this series of articles, I provide a summary of what I see as the most important XML technologies, and discuss how they each fit into the greater scope of things in the XML world. I also recommend tutorials and other useful resources for evaluating and learning to use each technology.
All the technologies I present here are standards, although that word is itself a bit slippery. Standards come in all forms, and multiple standards often compete in the same space. I follow the practical approach of defining a standard as any specification that is significantly adopted by a diversity of vendors, or is recommended by a respectable, vendor-neutral organization.
In the first article in this series, I focused on core XML technologies. (See the sidebar in that article for an overview of the various standards development bodies and how specifications are categorized.) In my second article, I covered standards relating to XML processing by developers. In the third, I presented a selection of the most important XML applications (less precisely known as vocabularies). This final article provides a detailed cross-reference of all the standards covered in this series. I think the sum encompasses all of the most important XML standards.
The cross-reference is in the form of a table where rows represent standards, sorted in alphabetical order. Each row is color coded based on the article where the main coverage appeared:
|Yellow rows relate to Core XML standards, Part 1|
|Green rows relate to XML processing standards, Part 2|
|Blue rows relate to XML applications, Part 3|
The link from the first column leads to the relevant home or specification page, and I give a very brief synopsis in the second. The third mentions the organization or consortium that develops or maintains the specification; some are "Community" indicating that they come from small groups or ad-hoc interest groups. The fourth column cross references to the article in which the main coverage of the standard was provided, and to other related standards within this article. The final column gives recommended external links to relevant introductions, tutorials, articles, references, general information sites, and more.
|Canonical XML ("c14n")||Standard method for generating a physical representation of an XML document, called the canonical form, that accounts for the variations allowed in XML syntax without change in meaning.||W3C|
|Cascading Style Sheets (CSS)||System for applying presentation style to markup. It is best known for its use in styling HTML Web pages, but especially since the release of CSS Level 2, it is very well suited to presenting XML documents on the Web and on other media.||W3C|
|Document Object Model (DOM)||Object model for XML documents that can be used for direct access to parts of an XML document. In DOM, the document is modeled as a tree, where each component of the XML syntax (such as an element or text content) is represented by a node.||W3C|
|Docbook||XML (and SGML) application for authoring books and documentation, especially of a more technical nature.||OASIS|
|EXSLT||Set of XSLT extensions, elements, and functions defined in an implementation-agnostic way, covering the most commonly needed extensions, such as date processing, regular expressions, and mathematical operations.||Community|
|Mathematical Markup Language (MathML) 2.0||XML application for expressing mathematical and scientific content.||W3C|
|Namespaces in XML||Mechanism for universal naming of elements and attributes in XML documents.||W3C|
|Resource Description Framework (RDF)||Model for describing collections of formalized statements about a Web resource. A metadata system for the Web.||W3C|
|Resource Directory Description Language (RDDL)||Format based on XHTML for packaging information on a namespace.||Community|
|RELAX NG||Grammar-based XML schema language -- used to define and limit XML vocabularies.||OASIS|
|Schematron||Rules-based XML schema language--used to define and limit XML vocabularies.||Community|
|Simple API for XML (SAX)||Event-driven XML API that defines a stream of events specifying XML structure as handed from the parser to specialized handler code.||Community|
|SOAP||Protocol for using XML to communicate between systems that are connected using lower-level Internet protocols.||W3C|
|SQL/XML||XML-related extensions to the SQL database query language.||ISO|
|Scalable Vector Graphics (SVG) 1.1||Application for describing two-dimensional vector graphics.||W3C|
|Synchronized Multimedia Integration Language (SMIL 2.0)||Application for simple authoring of rich media or multimedia (audio/visual) presentations.||W3C|
|Stylesheet Associations||The standard way to link an XML document to its stylesheet, especially for XSLT or CSS.||W3C|
|Text Encoding Initiative (TEI)||XML (and SGML) application for authoring texts, especially suitable for the humanities.||Community|
|Uniform Resource Identifiers (URIs)||Extension of the familiar URLs from use in Web browsers and the like. All URLs are URIs, but URIs also add Uniform Resource Names (URNs), which are a way to identify Web resources by name rather than location.||IETF|
|Unicode||Generic framework for expressing links in XML documents, to complete its placement in hypertext systems such as the Web.||ISO|
|Voice Extensible Markup Language (VoiceXML)||XML application for creating audio, speech, and telephony applications.||W3C|
|W3C XML Schema (WXS)||Grammar-based XML schema language--used to define and limit XML vocabularies.||W3C|
|XML Database API (XAPI)||API for XML databases, covering storage, retrieval, modification, and querying of data in an XML database.||Community|
|XForms 1.0||Specification of Web forms for XML data processing, to be used with a wide variety of platforms through a variety of media while separating purpose from presentation.||W3C|
|XHTML 1.0||Web presentation language based on HTML but in well-formed XML, with developments encouraging separation of content from presentation.||W3C|
|XML Inclusions (XInclude) 1.0||System for merging XML documents, similar to built-in XML external entities, but with added features.||W3C|
|XML Linking Language (XLink) 1.0||Generic framework for expressing links in XML documents, to complete its placement in hypertext systems such as the Web.||W3C|
|XML||Markup language based on SGML, including strict syntax rules and a language for defining structural constraints -- Document Type Definition (DTD).||W3C|
|XML Catalogs||Instructions on how an XML processor resolves XML entity identifiers into actual data.||OASIS|
|XML Base||Means of associating XML elements with URIs in order to more precisely specify how relative URIs are resolved in relevant XML processing actions.||W3C|
|XML Information Set (Infoset)||Abstract way of describing an XML document as a series of objects, called information items, with specialized properties incorporating aspects of XML documents defined in XML 1.0, XML Namespaces, and XML Base.||W3C|
|XML Remote Procedure Calls (XML-RPC)||Very simple protocol for using XML to communicate over HTTP.||Community|
|XML Path Language (XPath) 1.0||Syntax and data model for addressing parts of an XML document, including some features of a general-purpose expression language.||W3C|
|XML Topic Maps (XTM)||Graph-like model for organizing information with an XML syntax based on XLink.||ISO|
|XPointer Framework||Language for referring to fragments of an XML document.||W3C|
|XQuery 1.0: An XML Query Language||Specification for querying XML data sources -- documents and databases.||W3C|
|Extensible Stylesheet Language Formatting Objects (XSL-FO)||XML application for presentation, which can be used by any user agent to render content to the precise specifications given by the developer.||W3C|
|Extensible Stylesheet Language Transformations (XSLT) 1.0||Language for describing transforms from an input XML document to an output tree (XML, HTML, or text), used for sophisticated presentation of XML documents or for transforms from one XML format to another.||W3C|
|XUpdate||Instruction language for modification of XML documents.||Community|
Throughout this series of articles, I had to make hard choices on what to cover in the available space. I was simply not able to include some information. I focused on the most popular and most broadly adopted standards across a diversity of interests. Again, once you are familiar with the basics of XML technologies it's up to you to find other standards that align with your specific needs. The IBM developerWorks XML zone is always your main resource for the truly wide world of XML specifications.
- Read The XML Bible, 2nd Edition, by Elliotte Rusty Harold (John Wiley & Sons, 2001), if you need to gain as solid a foundation in XML as possible, but are only willing to buy one book. Five chapters are available freely online covering XSLT, XSL-FO, XLink, XPointer, and WXS.
- Visit the Web sites of the most significant organizations where XML standards are developed:
- W3C (World Wide Web Consortium)
- OASIS (Organization for the Advancement of Structured Information Standards)
- The ISO (International Organization for Standards), especially through the project ISO/IEC 19757 - Document Schema Definition Languages (DSDL)
- Simon St. Laurent's "An Outsider's Guide to the W3C" is a FAQ that clarifies many aspects of the organization that brought you HTML and XML.
- Look up nearly any aspect of XML technology in Robin Cover's The Cover Pages, an XML resource guide of staggering comprehensiveness.
- Visit the xmlhack news site for XML developers, which Uche Ogbuji helps to edit.
- Read the first installment of this series on XML standards, which focuses on what Uche Ogbuji considers to be the core XML technologies (developerWorks, January 2004). In the second installment of this series on XML standards, the author focuses on XML processing technologies. (developerWorks, February 2004). In Part 3 of this series on XML standards, Uche looks at the most important XML vocabularies. (developerWorks, February 2004).
- Find more XML resources on the developerWorks XML zone, including Uche Ogbuji's Thinking XML column.
- Browse for books on these and other technical topics.
- Learn how you can become an IBM Certified Developer in XML 1.1 and related technologies.
Uche Ogbuji is a consultant and co-founder of Fourthought Inc., a software vendor and consultancy specializing in XML solutions for enterprise knowledge management. Fourthought develops 4Suite, an open source platform for XML, RDF, and knowledge management applications. Mr. Ogbuji is also a lead developer of the Versa RDF query language. He is a computer engineer and writer born in Nigeria, living and working in Boulder, Colorado, USA. You can contact Mr. Ogbuji at firstname.lastname@example.org.