XML Resources

11. Specifications

11.1. eXtensible Markup Language 1.0 Specification (Third edition - W3C Recommendation 4 February 2004)


The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML.


Web site https://www.w3.org/TR/2004/REC-xml-20040204/REC-xml-20040204-review.html.

11.2. The Annotated eXtensible Markup Language 1.0 Specification


The official XML 1.0 specification, with detailed explanatory and historical annotations by one of its editors, Tim Bray.


Web site https://www.xml.com/axml/axml.html

11.3. The Extensible Stylesheet Language Family (XSL)


XSL is a family of recommendations for defining XML document transformation and presentation. It consists of 2 major transformation languages:

  • XSL Transformations (XSLT): a language for transforming XML to other structured formats (XML, HTML, plain text)
  • XSL Formatting Objects (XSL-FO): an XML vocabulary for specifying formatting semantics that can be interpreted to produce common layout formats (PDF, PostScript,...)

Both come in various generations.

  • XSL Transformations (XSLT), Version 1.0 (W3C Recommendation, 16 November 1999): now commonly supported by most XSLT processing software. Although rather limited compared to its successor, it guarantees the most stable and widespread option for XML transformation.
  • XSL Transformations (XSLT), Version 2.0 (W3C Recommendation, 23 January 2007): with its many extensions to the previous version and support of the XPath 2 standard, it practically functions as a different (and much more powerful) language for XML transformations. This version of the standard is still marginally implemented in XSLT processors (with Saxon as notable exception).
  • Extensible Stylesheet Language (XSL), Version 1.0 (W3C Recommendation, 15 October 2001): this specification defines an XML grammar expressing formatting objects, that can be interpreted by XSL-FO processors to different layout formats (PDF, PostScript,...).
  • Extensible Stylesheet Language (XSL), Version 1.1 (W3C Recommendation, 05 December 2006): this version of the standard adds minor new features.

The The Extensible Stylesheet Language Family (XSL) webpage https://www.w3.org/Style/XSL/ contains links to the different (versions of the) eXtensible Stylesheet standards:

W3C Candidate Recommendations:

11.4. XML Path Language (XPath)


XPath is a language for addressing parts of an XML document, designed to be used by various other XML-related standards, such as XSLT, XSL-FO, XQuery, XPointer. Parallel with development of those standards, various generations of the XPath specification exist:

  • XML Path Language (XPath), Version 1.0 (W3C Recommendation, 16 November 1999): in support of its primary purpose (to address parts of an XML document), XPath also provides basic facilities for manipulation of strings, numbers and booleans.
  • XML Path Language (XPath), Version 2.0 (W3C Recommendation, 23 January 2007): XPath 2.0 is a superset of XPath 1.0, with the added capability to support a richer set of data types, and to take advantage of the type information that becomes available when documents are validated using XML Schema. To support richer type sets, XPath 2.0 offers a greatly-expanded set of functions and operators.

The The Extensible Stylesheet Language Family (XSL) webpage https://www.w3.org/Style/XSL/ contains links to the different (versions of the) XPath standards:

11.5. XML Query Language (XQuery)


XQuery is a query language for XML structures that provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents. As an extension to XPath Version 2.0 in the form of a functional programming language, it enables powerful manipulation capacities to XML document collections. XQuery is defined as XQuery 1.0: An XML Query Language (W3C Recommendation, 23 January 2007)


The W3C XML Query workgroup webpage https://www.w3.org/XML/Query/ contains links to various surrounding documents and specifications. The most important one is the XQuery 1.0 W3C Recommendation: https://www.w3.org/TR/xquery/.

11.6. XHTML 1.0 Specification: The Extensible HyperText Markup Language (W3C Recommendation 26 January 2000).


This specification defines XHTML 1.0, a reformulation of HTML 4 as an XML 1.0 application, and three DTDs corresponding to the ones defined by HTML 4. The semantics of the elements and their attributes are defined in the W3C Recommendation for HTML 4. These semantics provide the foundation for future extensibility of XHTML. Compatibility with existing HTML user agents is possible by following a small set of guidelines.


Web site https://www.w3.org/TR/xhtml1/.

11.7. HTML 4.01 Specification (W3C Recommendation 24 December 1999).


This specification defines the HyperText Markup Language (HTML), the publishing language of the World Wide Web. This specification defines HTML 4.01, which is a subversion of HTML 4. In addition to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. HTML 4 also takes great strides towards the internationalization of documents, with the goal of making the Web truly World Wide.

HTML 4 is an SGML application conforming to International Standard ISO 8879 — Standard Generalized Markup Language [ISO8879].


Web site https://www.w3.org/TR/html4/.

11.8. CSS2 Specification (W3C recommendation 12 May 1998).


This specification defines Cascading Style Sheets, level 2 (CSS2). CSS2 is a style sheet language that allows authors and users to attach style (e.g., fonts, spacing, and aural cues) to structured documents (e.g., HTML documents and XML applications). By separating the presentation style of documents from the content of documents, CSS2 simplifies Web authoring and site maintenance.

CSS2 builds on CSS1 (see and, with very few exceptions, all valid CSS1 style sheets are valid CSS2 style sheets. CSS2 supports media-specific style sheets so that authors may tailor the presentation of their documents to visual browsers, aural devices, printers, braille devices, handheld devices, etc. This specification also supports content positioning, downloadable fonts, table layout, features for internationalization, automatic counters and numbering, and some properties related to user interface.


Web site https://www.w3.org/TR/REC-CSS2/.