
SPECIAL:

The XM-format does look not unlike XML, but it is much simpler
as it does not allow arbitrary attributes in the markups. The
variant in use in the c2x-package here does *require* markups to 
be in pairs and the markup-name in uppercase-only followed by an
optional digit-sequence. The optional digit sequence is used
to distinguish instantiations of the same type.

The XM-format can be easily converted into CSS-HTML by
converting a markup'd text like
<SOMETEXT11>somtxt</SOMETEXT11>
into css-html of the form
<span class="SOMETEXT" id=11>somtxt</span>
and the <style>-tag in the html-header should contain (or reference)
the relevant stylesheet-information, e.g.
<style>
.SOMETEXT { font-weight: bold ; font-size: smaller; color: blue; }
</style>
Obviously it could even reversed.

The XM-format is almost simple to parse with perl,
to catch simple nonempty non-nested text use
   (<MARK>) ((?:.(?!</?<MARK>))*.) (<MARK>)     :sx yield $1.$2.$3
and to catch a specific possibly-empty tag in full you would use
   <(MARK\d*)(?=>)  (?:.(?!<\1>))*.  <\1>       :sx yield $&
or <(MARK\d*)>      (?:.(?!<\1>))*.? <\1>       :feasible in most cases
and more variations of these.

GENERAL:

Generally there could be other variants of the XM-format
with the least characteristic that markups may not contain
any start-stop-angles [<>] in use for the markup itself and
the stop-angle must be on the same line as the starting angle.
If you need the angles inside the markup, use the iso-replacements
for it, i.e. &lt; and &gt; just alongside &amp; and possibly &quot;.
The markup-leader must be strictly perl-\w [A-Za-z0-9_] and
the start-marker and end-marker must have the very same leaderstring.
<SOMETEXT>somtxt</SOMETEXT> is valid
<SOMETEXT myinfo of the day>somtxt</SOMETEXT > is valid 
<SOMETEXT myinfo of the day>somtxt</SOMETEXT> is valid
<SOMETEXT:hello>somtxt</SOMETEXT > is valid

The reasoning for the invention of the XM-format is the
use of simple perl-like regex-machines to parse XM-texts,
and at the same time, the XM-text can be usually parsed
and transformed by XML-tools.

Guido Draheim, AD-2000-09-07, Berlin.EU.Sol-3

update:
there was an urgent need to for a further specification of
attributes, since the xmtab format cannot retain any attributes
in the record-markups or field-markups. Still one does often
need additional attributes that should not be shown to the user,
just think of id=xx. The result: Each attribute is to be enclosed
in angles - i mean, one markup per attribute!. The html-expander
will then see these markups and add them to the previous markup.
That's it.



