thoughts | THEDEN

Demystifying XML (an attempt)

A Primer

Some things you should know about XML

In 1996, Jon Bosak, Tim Bray, C. M. Sperberg-McQueen, James Clark, and several others began work on a “lite” version of SGML that retained most of SGML’s power while trimming a lot of the features that had proven redundant, too complicated to implement, confusing to end users, or simply not useful over the previous 20 years of experience with SGML. The result, in February of 1998, was XML 1.0, and it was an immediate success. Many developers who knew they needed a structural markup language but hadn’t been able to bring themselves to accept SGML’s complexity adopted XML whole-heartedly. It was used in domains ranging from legal court filings to hog farming.1

Oh how things have changed…

Let’s go through some important XML-related specifications

XML namespaces

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
       for the "x" element and contents -->
</x>

then tags will be <edi:foo><edit:foo>

XML Schemas

XSLT (eXtensible Stylesheet Language Transformations)

Basically used to transform XML documents into other types of documents—such as HTML, plaintext, XSL Formatting Objects (XSL-FO) which is often used to generate pdf files.

A popular and open source toolkit is Libxml2 (inlcuded in webkit, MacOS, many linux distros)

Worth noting that XLST is turing complete2

XML Path Language (XPath)


  1. https://docstore.mik.ua/orelly/xml/xmlnut/ch01_04.htm [return]
  2. https://www.researchgate.net/publication/228560924_A_proof_of_the_Turing-completeness_of_XSLT_and_XQuery [return]

Written August 2018.

← Running Linux games on MacOS with Docker