You are here: Home » Help » Authoring » XML Languages

XML Languages

(Up to 'Authoring')

As an author you will work with one or more XML languages to develop and organize your content. You do not need to be an expert in these languages in order to create and publish your work - we do our best to make it easy for you through the use of our editing tools and utilities - but it's always helpful to understand what's happening under the hood. If you are interested in learning more about these languages, please see the resources linked below.

  • What is XML?
  • Content Languages
    • CNXML (the primary authoring language)
    • MathML (for creating mathematical expressions)
    • BibTeXML (for creating bibliographical references
    • QML (for creating interactive questions)
  • Structural Languages
    • CollXML (for structuring collections, textbooks, etc.)
    • mdml (for creating metadata within modules and collections)

What is XML?

XML - or eXtensible Markup Language - is a set of rules for creating electronic documents that can be written in virtually any language and used on virtually any computer system. The idea is to create simple, straightforward documents that can be easily shared and interpreted by a variety of applications across the internet.

While most HTML or word processing documents tend to emphasize what the content should look like (for exmaple, <b>important text</b>), the purpose of an XML document is to describe what the content actually means (<emphasis>important text</emphasis>).

Why do we make such a big deal about meaning vs. presentation? The short version is that while it might seem a little awkward at first, creating documents around meaning makes them much more flexible and powerful. For example, suppose you had a document containing a quotation. For a web page, you might choose to use a italicized typeface to show that this text is somehow special. But what would happen if I wanted to take that same document and make it into an .mp3 audio file, or create a appendix in my book that automatically indexed all of the quotations I used? In this case, italics doesn't help me much. But if I tell the computer that this is a <quote>, then I can leave it to the software to determine what to do with it based on what it IS, not what I think it should look like.

All XML documents are required to follow a common set of rules - for example, every opening tag (<para>) must have a corresponding closing tag (</para>), and tags must be closed in the correct order. Language specifications can be developed in order to create new, specialized XML languages designed for specific purposes, such as those described on this page.


Content Languages

The following languages can be used to create content in a module:

CNXML - Connexions Markup Language

The Connexions Markup Language (CNXML) is the primary authoring language used for creating and editing modules. All modules are created as CNXML documents, with the option to include additional languages such as MathML or BibTeXML.

The current version of CNXML is version 0.7, released in September 2009. Modules created using CNXML 0.5 or 0.6 can be automatically updated to this version (you will be presented this option when you open an outdated module in the module editor).

Tutorials

Several tutorials are provided to help get you started authoring in CNXML:

In addition to the links above, there are several additional resources for new authors in the Authoring Help area. If you can't find the answer to your question or would like additional information, you can always feel free to contact technical support.

CNXML Schema

Developers and others interested in working with CNXML documents may be interested in the following CNXML schemas:



MathML - Mathematical Markup Language

MathML is a W3C-standard XML markup language for creating and representing mathematical expressions. In addition to providing a way for browsers to display complex mathematical expressions that cannot be expressed in HTML, readers can also copy and paste your equations into other MathML-enabled applications, allowing them to evaluate expressions, graph results, and so on. We strongly recommends the use of MathML whenever you are dealing with mathematical content.

There are two styles of MathML, both of which are supported:

  • Presentation MathML allows the author complete control over the way an expression is displayed. Presentation MathML is typically easier to work with, but is generally less flexible when working with external applications.
  • Content MathML describes the mathematical value of an expression. Content MathML allows your readers the greatest flexibility for reuse of your content, but can be more limited with regards to controlling the display of expressions and symbols.

We recommend that you consider using Content MathML due to its flexibility and emphasis on semantics, and we have provided a free Content MathML editor that you can use to generate the markup for your math expressions and equations. Your content can use either Presentation MathML, Content MathML, or a combination of the two.

In order to view MathML in your browser, you may need to install third-party fonts or plug-ins. Please see our browser support page for more information on configuring your browser to use MathML.


NOTE: When using MathML content inside of a module, use the m: prefix.

Tutorials and Editors

The following resources may be useful to authors working with MathML content:

Schemas

Developers and others interested in working with CNXML + MathML documents may be interested in the following MathML schemas:

* The DTD version of the MathML schema is not used with current versions of CNXML, and is provided for historical purposes only.



BibTeXML - BibTeX Markup Language

BibTeXML is an XML expression of BibTeX, the reference notation used within LaTeX modules. You can use the BibTeXML entries to create an optional <reference> section at the end of your CNXML module.


NOTE: When using BibTeXML content inside of a module, use the bib: prefix.

Tutorials

The following resources may be useful to authors working with BibTeXML content:

Schemas

Developers and others interested in working with CNXML + BibTeXML documents may be interested in the following BibTeXML schemas:

* The DTD version of the BibTeXML schema is is not used with current versions of CNXML, and is provided for historical purposes only.



QML - Question Markup Language

QML is a language designed to present interactive questions for online learning modules. Like MathML, you can use QML content within your CNXML documents. Note that while QML provides an opportunity to provide readers with "checkpoint"-style questions and self assessment, answers to these are not scored, recorded, or reported in any way and cannot be used to track student progress through a course.


NOTE: When using QML content inside of a module, use the q: prefix.

Tutorials

The following resources may be useful to authors working with QML content:

  • QML Tutorial, which describes several QML features and their use.
  • QML Examples, which contains examples of QML interactions used within a module.
Schemas

Developers and others interested in working with CNXML + QML documents may be interested in the following QML schemas:

* The DTD version of the QML schema is is not used with current versions of CNXML, and is provided for historical purposes only.



Structural Languages

The following languages are used to describe structures within modules and collections. These languages are not used by authors working within the environment, and these resources are provided only for those interested in third-party development.

CollXML - Collection Markup Language

The CollXML language is used to define the structure of collections within the system. CollXML documents are currently READ ONLY, with authors using the collection composer interface to create and edit collection structures rather than editing the CollXML directly. As a result, authors are not requried to edit or be familiar with the CollXML language.

Tutorials

There are currently no tutorials for editing CollXML content. Use the collection composer interface to edit collections. At this time, CollXML documents are provided for external development purposes only.

Schemas

Developers and others interested in working with CollXML may be interested in the following CollXML schemas:



mdml - Metadata Modeling Language

The mdml language is used to encode metadata for modules and collections. Changes made to the mdml markup in a CNXML or CollXML document will be ignored by the system; any such changes must be made directly in the module editor or collection composer interfaces. As a result, authors are not required to edit or be familiar with the mdml language.


NOTE: The mdml elements in the read-only metadata section use the mdml: prefix.

Tutorials

There are no tutorials for editing mdml content. Use the module editor and collection composer interfaces to edit content metadata.

Schemas

Developers and others interested in working with documents containing mdml may be interested in the following mdml schemas:



(
Up to 'Authoring')
My Account