An XML Primer

A very simple XML file (which also happens to be an edit mode) looks like so:

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<MODE>
    <PROPS>
        <PROPERTY NAME="commentStart" VALUE="/*" />
        <PROPERTY NAME="commentEnd" VALUE="*/" />
    </PROPS>

    <RULES>
        <SPAN TYPE="COMMENT1">
            <BEGIN>/*</BEGIN>
            <END>*/</END>
        </SPAN>
    </RULES>
</MODE>

Note that each opening tag must have a corresponding closing tag. If there is nothing between the opening and closing tags, for example <TAG></TAG>, the shorthand notation <TAG /> may be used. An example of this shorthand can be seen in the <PROPERTY> tags above.

XML is case sensitive. Span or span is not the same as SPAN.

To insert a special character such as < or > literally in XML (for example, inside an attribute value), you must write it as an entity. An entity consists of the character's symbolic name enclosed with “&” and “;”. The most frequently used entities are:

For example, the following will cause a syntax error:

<SEQ TYPE="OPERATOR">&</SEQ>

Instead, you must write:

<SEQ TYPE="OPERATOR">&amp;</SEQ>

Now that the basics of XML have been covered, the rest of this section will cover each construct in detail.