Extensible Markup Language (XML)


Extensible Markup Language (XML) is a flexible way to create common information formats and to share the formats and data between applications and on the internet.

XML is, essentially, a platform-independent means of structuring information.

An XML document is a tree of elements. An element may have a set of attributes , in the form of key-value pairs, and may contain other elements, text, or a mixture thereof.

An element may refer to other elements via identifier attributes or other types via type attributes, thereby allowing arbitrary graph structures to be represented.

An XML document need not follow any rules beyond the well-formedness criteria laid out in the XML 1.0 specification. To exchange documents in a meaningful way, however, requires that their structure and content be described and constrained so that the various parties involved will interpret them correctly and consistently. This can be accomplished through the use of a schema.

Mapping between XML elements and data structures is inherently flawed:

  • an XML element is an order-dependent collection of anonymous values,
  • while a data structure is an order-independent collection of named values.

See json for a textual representation more suitable to data structures.


  • XML file. An XML file contains data and metadata. An XML file can reference:
    • a Document Type Definition file (DTD)
    • or an XML schema definition (XSD) for validation.
  • DTD file. A DTD file defines the element types, attributes, and entities in an XML file. A DTD file provides some constraints on the XML file structure but a DTD file does not contain any data.
  • XML schema. An XML schema defines elements, attributes, and type definitions. Schemas contain simple and complex types. A simple type is an XML element or attribute that contains text. A complex type is an XML element that contains other elements and attributes.


XML Operations Language
transformation XSLT
format XSL or XSL-FO
navigation XPath

Documentation / Reference

Task Runner