Dr. Tom's Guide to XML

Photo of Dr. Tom wearing a hat.
Thomas D. Wason, Ph.D. (aka Dr. Tom)
http://www.tomwason.com [Home]
wason@mindspring.com



One of the Dr. Tom Guides

Purpose of Document

To provide a glimpse into the concepts in XML and provide links to useful resources such as tutorials, tools, resource sites and IMS XML bindings.

Document Information

Title Dr. Tom's Guide to XML
Author(s) Thomas D. Wason with helpful suggestions from Caroline Oldershaw
Version Date 07 November 2000 Current version 1.11
Copyright Copyright © 2000 IMS Global Learning Consortium, Inc.
Used by permission.

Contents

  1. What is XML?
  2. The XML Standard
  3. XML Tutorials
  4. XML Tools
  5. XML Resource Sites
  6. The IMS XML Bindings

What is XML?

XML is a system for writing things down. In the case of IMS, we want to write down information according to an "information model". So, what is an information model? Actually, you use them all of them time. An information model is a definition of how you are going to record information in an organized manner. For example, if you write a textbook, you will have a title page, a table of contents, an introduction, the actual subject contents and an index in that order. Some parts often have parts within them. The contents of the book may have multiple chapters, and each chapter may have multiple sections, This is the basic information model of a textbook. You may have other stuff in there too such as a bibliography or foreword. If you follow a standard style guide such as The Chicago Manual of Style: The Essential Guide for Writers, Editors, and Publishers (14th ed. 1993, The University of Chicago Press ISBN: 0-226-10389-7 ), it will define where those pieces should go in the structure of a book. An information model is essentially a style guide for information. It provides an organization with labels for each of the parts.

Structure of a book

A book's information model.

An actual book is an instance of the information model. It contains real data, such as an actual title of "Sniffy the Virtual Rat", a table of contents and so forth.

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.

You have decided that you need to learn more about XML. I am going to point you to some useful resources such as tutorials and tools that are quite good--and many of these resources are free!

The XML Standard

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.

Extensible Markup Language (XML):
http://www.w3.org/XML/
The XML standard in many translations:
http://www.w3.org/XML/#trans

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:

XML Tutorials

Here are two good XML tutorials:

Meeting Tomorrow (Thanks to Rose Daus for suggesting this site):
http://www.meetingtomorrow.com/cms-category/learning-xml
IBM:
http://www-4.ibm.com/software/developer/education/xmlintro/

If you want an introductory book that I find quite readable, although a bit out of date, try:

   XML: A Primer
   by Simon St. Laurent
   1998 MIS:Press
   ISBN 1-55828-592-X

XML Tools

XML is most easily created using an XML editor that will link in the control documents (e.g., DTD, XML-Schema) provided by IMS. I thought it would be useful if you had a listing of some of the more common tools. Neither IMS nor I are endorsing any of the following tools. Often in this document I've included only the link, as the link name provides enough information for you to see if you want to explore further.

Microsoft XML Notepad Link:
http://msdn.microsoft.com/xml/notepad/intro.asp
(free)
Xeena (IBM):
http://www.alphaworks.ibm.com/tech/xeena
XML Pro v2.0:
http://www.vervet.com/
XML Authority:
http://www.extensibility.com/
XML Spy:
http://www.xmlspy.com/
XMLwriter v1.0:
http://www.xmlwriter.net/
Visual XML:
http://www.pierlou.com/visxml/
You can view XML with Internet Explorer 5.0 or greater:
http://www.microsoft.com/windows/IE/, which includes an XSL (XML Style Language) style sheet.
 

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:

W3C list of XML Software:
http://www.w3.org/XML/#software
Guide to XML Editors:
http://www.xml.com/pub/Guide/XML_Editors
List of editors:
http://www.xmlsoftware.com/editors/
XML Resources:
http://www.xmlsoftware.com/
The Whirlwind Guide to SGML & XML Tools and Vendors:
http://www.infotek.no/sgmltool/guide.htm

XML Resource Sites

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:

The W3C XML site:
http://www.w3.org/XML/
The XML standard in many translations:
http://www.w3.org/XML/#trans
James Clark's XML resources page:
http://www.jclark.com/xml/
The Cover Pages by Robin Cover:
http://xml.coverpages.org/
W3C XML Activities:
http://www.w3.org/XML/Activity
W3C XML FAQ:
http://www.ucc.ie/xml/
XML.org is "The XML Industry Portal":
http://www.xml.org/
XML.com features a mix of information and services for the XML community.
http://www.xml.com/pub
Guide to XML related tutorials:
http://www.xml.com/pub/Guide/Tutorials
The XML Magazine Index of Issues:
http://www.gca.org/whats_xml/whats_xml_xmlfiles.htm
IBM's XML developers site:
http://www.ibm.com/developer/xml/
Microsoft's XML developers site:
http://msdn.microsoft.com/xml/XSLGuide/default.asp

XML is a web-community resource, therefore, much software has been developed that is open sourced.

Open Source software site: http://www.opensource.org/

The IMS XML Bindings

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 XML Bindings:
http://www.imsglobal.org/xml/index.html
IMS Specifications:
specifications.html

IMS has adopted XML-Schema as its primary XML Control document type. Here are some resources:

W3C XML-Schema Draft:
http://www.w3.org/XML/Schema.html
Robin Cover's XML-Schema Resource Page:
http://www.oasis-open.org/cover/schemas.html
W3C XML-Schema Validator:
http://www.w3.org/2000/06/webdata/xsv
Oracle Java XML-Schema Parser:
http://technet.oracle.com/tech/xml/schema_java/index.htm

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.

XML Namespaces:
http://www.w3.org/TR/REC-xml-names/
James Clark has written a commentary on the use of namespaces:
http://www.jclark.com/xml/xmlns.htm
 
 

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.
 

Author:
Thomas D. Wason, Ph.D. (a.k.a. Dr. Tom)
http://www.tomwason.com
wason@mindspring.com
+1 919.602.6370

Go to Top
http://www.tomwason.com