The Building Blocks of Missions

eXtensible Markup Language or XML provides for a software and hardware independent way to store and transmit data. Additionally, XML is a language that is designed for coming up with specialized markup languages. For example, one could come up with a language for genealogy, and define tags like <mother>, <father>, <son>, and <daughter>. As a result of this ease of creating new languages, XML has been used in hundreds of document and markup language formats including MathML for specifying mathematical and scientific content, XHTML for extending HTML, the popular backbone language of the Internet, and Atom and RSS for delivering updates on regularly changing content.

Though XML is generally weak syntactically, there is a specification which should be followed for clarity and functionality. A thorough yet brief introduction to the key terminology is given in the XML Wikipedia page . Given below is an even briefer view on what will be important, especially in the context of Project Malmö.

Now, the last point about the processor and application is what leads us to XSD and JAXB, the next things to get an understanding of Missions in Project Malmö.

Rules for the Building Blocks

As described in the previous section, XML can be used to come up with new markup languages. However, there is a question of how one does this and in particular of how the syntax is defined.

XML Schema Definitions or XSD formally describe elements in an XML document. Its purpose is to verify each piece of item content in an XML document, i.e., to parse an XML document using various Schemas (rules).

Without further ado, let's now take a look at the XSD files for Project Malmö. Within the Project Malmö root folder, look for the Schemas folder. In there you will find (as of this tutorial's writing at least), 5 files with a .xsd extension. These are namely: Mission, MissionEnded, MissionHandlers, MissionInit and Types.

Feel free to go through the files and get an understanding of the structure. The general format should be quite intuitive as XML is designed to be human readable while still having a well-defined syntax like that of many programming languages.

To highlight a few points about the files and to direct your attention to some interesting properties of XSD, given below are somethings you can try/have a read through with code snippets as appropriate for illustration purposes: