Bringing specialist documents to the World Wide Web

Extensible Markup Language (XML) emerged as content on the World Wide Web became increasingly complex. Hypertext Markup Language (HTML) suited common webpage structures, but could not prescribe specialized tags for every industry in advance. Publishers and software developers needed to exchange material with its own structure and allow software from different vendors to read it.

XML's designers started from Standard Generalized Markup Language (SGML), retaining features such as extensible structure, validation and human readability while reducing the burden of implementation. The 1996 Working Draft already identified ease of network transmission, ease of writing processing programs, and minimizing optional features as objectives. The aim was a set of rules that could readily be implemented in common, rather than an ever-growing collection of tags specific to one browser.

References: [2] [1]

Cross-institutional collaboration and formal release

The World Wide Web Consortium (W3C) organized the work in 1996 under the chairmanship of Jon Bosak of Sun Microsystems. Participants included structured-document specialists and several software companies. The draft of 14 November 1996 was edited by Tim Bray and C. M. Sperberg-McQueen of the University of Illinois at Chicago. The editors of the final 1998 text also included Jean Paoli of Microsoft.

XML 1.0 became a W3C Recommendation on 10 February 1998. Working Drafts, Proposed Recommendations and Recommendations represent different levels of stability: drafts remain open to change, whereas a Recommendation signifies review and endorsement for widespread adoption. The year 1998 therefore identifies the finalization and release of the 1.0 specification. The earlier SGML tradition, formation of the working group and initial drafts should not all be shifted into that year.

References: [1] [2]

Tags describe structure; programs interpret purpose

A simple illustrative example is “<book><title>History of Bridges</title></book>”. Here book denotes the outer element, title denotes the title inside it, and the words “History of Bridges” are the content. XML itself does not specify how book must be displayed, nor does it define it as an item sold by a particular bookshop. Such uses depend on application agreements between the parties exchanging data. Extensibility means being able to define a vocabulary appropriate to the material.

To avoid ambiguity in reading, XML requires elements to be correctly nested, start and end names to match, and names to be case-sensitive. Unlike some shorthand forms permitted in SGML, XML does not accept omitted markup boundaries or arbitrary omission of attribute names, and attribute values must be quoted. The resulting notation can seem repetitive, but readers do not have to rely on complex contextual guesses to infer the document's intended structure.

References: [1] [3]

Well-formedness does not mean validity

XML 1.0 distinguishes well-formedness from validity. The former means compliance with basic syntax, such as having a single root element and correct nesting; the latter also requires compliance with constraints specified in a Document Type Definition (DTD). A title element may be syntactically correct yet fail to satisfy the child-element sequence required for a particular type of book record.

This distinction gives general-purpose readers and specific applications separate responsibilities. The processor first reports characters and structure, while the application decides how to store, display or use them. The specification also requires processors to accept UTF-8 and UTF-16 encodings, providing a common basis for exchanging different scripts. Passing a DTD check, however, does not prove that a book title, price or date is true in the real world. Syntactic validation and fact-checking remain different activities.

References: [1] [3]

How early tools implemented the specification

On 5 April 1998, James Clark announced on the XML Developers' List that his C-language parser had been renamed from xmltok to Expat and that a new version had been released. The announcement explained that the parser was being used to add XML support to Netscape Navigator 5 and Perl. This records the release of a particular implementation, rather than implying that all browsers already offered the same functions.

W3C's own technical publishing also became an application. ArborText's design report for XMLspec version 2.0 established a DTD for specification text, paragraphs, cross-references and document metadata. One source file could serve outputs including HTML, RTF and PostScript. This illustrates XML's practical division of labour: structure is stored consistently, and processing tools then generate documents for different purposes.

References: [4] [5]

The role and limits of an open format

At its release, XML addressed needs for industry-specific markup, vendor-neutral data exchange, collaborative writing and publishing across multiple media. It separated document structure from the private representation of a single software product, allowing recipients to process data using public rules. Yet if two parties understand the meaning of a tag differently, successful reading of a file does not establish accurate exchange of business information.

XML 1.0 did not itself handle screen layout, database retrieval or the design of industry vocabularies. The development of namespaces, transformations and other supporting technologies must be considered separately, rather than retroactively attributing all their functions to the first release. XML's early significance lay in providing a shared document syntax and boundaries for processing. Parsers, publishing workflows and collaboration on standards made that common format a usable foundation.

References: [1] [5]