seXml: a very dirty little dialect
I was viewing the source code of a website (as you do) and happened upon some of this guff:
<!-- InstanceEndEditable -->
A little more scanning showed me:
<!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
And I soon learned that the ".dwt"
file extension indicates use of a "Dream Weaver Template". Probably a common practice, given the popularity of Dream Weaver.
Interesting, because the format used is identical to a dirty little sub-language I invented one dirty weekend, called 'seXml'.
Ahh seXml!
I'd invented it, fallen in love with it and forgotten it, all in the space of a few hours, in about 2003.
The idea of seXml, (the 'special embeddable, eXtensible markup language') was that it would differ from XML in three chief ways.
Firstly, by default, elements would begin with '<!--
' instead of '<
' and end with ' --!>
' instead of '>
'.
Secondly, a document doesn't need to have a root element. If no root element is detected, then the body of the document would be embedded inside <!-- seXml --><!-- /seXml -->
tags before further parsing.
Third, some very liberal rules allow you to embed a message anywhere in the document that defines different strings to use instead of '<!--
' and ' --!>
'. For example you might way elements to start with '/***
' and end with ' ***/
' so that you can turn a valid C++ document into a valid seXml document.
You can even en-Mesh a valid seXml document in and around a valid XML document. Hence, seXml can be a nice way of documenting XML.
The original idea for seXml was for content editing purposes (as seen in the dream weaver templates). But I soon saw that it could be used to en-mesh meaninful data inside practically any languages.
Because of its strong XML lineage, a seXml parser is really just a pre-parser for XML. You could write your own seXml parser in an afternoon, if only there was a complete spec written for it.
Okay this concludes a week of xml esoterica. An older idea on similar lines, was XPL, but the W3C failed to recognise that one too. Oh well.