Dr. Tom's Guide to XML
Purpose of DocumentTo provide a glimpse into the concepts in XML and provide links to useful resources such as tutorials, tools, resource sites and IMS XML bindings.
What is XML?
A book's information model.
When we describe how to package all of the data contained in an information model in a particular coding system we are defining a binding. A binding is a well-defined way of writing down an information model with data in it so that you can send it to someone else. The recipient can understand what you have sent. By analogy, an architect uses standard symbols and conventions when making a house plan. A binding for a structure must allow you to define and recreate the structure with the data in it.
The information models in the IMS specifications are structures of structures. Each main part may be comprised of several sub-parts. The IMS specification binds the information models in a technical language, in this case, W3C's XML 1.0 (the World Wide Web Consortium, http://www.w3.org/XML/), that is a "textualized serialization of structured information". In human language this says you can take something apart, send it through a narrow pipe one piece at a time, and put it back together at the other end. By analogy, many things are packaged in pieces with "some assembly required", such as children's swing sets. If you have ever struggled with the instruction set for such a thing as a swing set, you know that it takes a bit of care to get it right the first time. But press on;, XML is not really that difficult.
A language lets you express ideas. XML is a universal data structure language. It allows you to create your own specific language so that you can communicate within your community. As the IMS information models define the ideas to be conveyed, the XML binding provides a dictionary and grammar for expressing the ideas in a consistent manner.
When you put your information, such as meta-data or learner information, into an IMS XML binding, you are creating an instance of the IMS binding of the information model of the particular specification. IMS will use XML-Schema for its primary control documents.
Here's what XML looks like:
<general> <title> <langstring> Sniffy The Virtual Rat </langstring> </title> <catalogentry> <catalogue> ISBN </catalogue> <entry> <langstring> 0-534-26702-5 </langstring> </entry> </catalogentry> <language>en-US</language> <description> <langstring lang="en"> A computer program that enables students to explore the principles of shaping and partial reinforcement in operant conditioning, using a "virtual rat" named Sniffy. Each student learns by doing-conditioning his or her own rat-and experiences many benefits of animal experimentation but none of the drawbacks associated with using live animals. </langstring> </description> </general>
Now that doesn't look so bad, does it? You can basically read it like an outline. XML is an outline form in which the pieces, or elements, have been defined. The data values fit into the lowest level pieces. It's like a table of contents for a book with defined levels such as Chapter, Section, and Topic. The book may have other parts such as Index, Table of Contents, Introduction and so forth. Not every book uses every part. Remember these simple concepts as you explore XML more deeply. This simple outline model is the core.
To start with, you might might want to look at the actual W3C standard for XML. It's not pretty stuff, as it's rather technical. That's why many people prefer to use tutorials and books. You should have the standard to fall back on, however.
There are numerous protocol technologies that rely on XML. Many of these are standards or drafts.You may hear them referred to in techie conversations. If you don't want to feel left out, you can find a listing of some of the more significant ones at:
Here are two good XML tutorials:
If you want an introductory book that I find quite readable, although a bit out of date, try:
There are simply too many XML software tools for me to list them all. Undoubtedly I have left out some good ones, and included some you may feel to be clunkers. These things are a matter of personal taste, so try several. Many that are not free have a free demonstration version. Many of these tools will validate an XML instance file. This is a good thing.
For listings of more XML editors and other tools, take a look at:
There are many XML resource sites, some of which point to other resource sites, so you can browse on forever. Here are some starting points:
XML is a web-community resource, therefore, much software has been developed that is open sourced.
You probably came to this document to learn about XML because IMS uses XML as its current binding. IMS also uses XML-Schema as its primary XML control document language. Here are the relevant IMS specification documents:
IMS has adopted XML-Schema as its primary XML Control document type. Here are some resources:
Some IMS bindings use parts of other IMS XML bindings. For example, the Content Packaging specification uses the IMS Meta-Data. The IMS specifications may also be extended. Both inclusion and extension use namespaces in the XML bindings.
That's it. Go ahead, dig into XML. Not only is it a useful standard, it's a useful way to think about information. If you have any comments, please send them to me.
Many of the terms in this guide are defined in the Glossary.