Abstract: XML is a framework for defining data languages, particularly tree-shaped data.
What do you do with a data language?
- Construction: you create data.
- Validation: you describe the valid types of data in the language and perform static analysis of data to test for conformance.
- Serialization: you write the data in some convenient representation format, and read data back in from that serialized format.
- Queries: given a set of data, you mine it for some subset of information.
- Transformation: given data in one language, you transform it into data in another language.
With a little taste and some fluency with standard tools of language specification, these authors have managed to describe data manipulation languages that are as powerful as their mainstream counterparts, with specs a fraction the size of the monstrosities produced by the W3C.