User:Dantman/Skinning system/Monobook template/Less pointless xml

The thought here is to give up on being something that can be parsed with a xml/html library and go all out with our own syntax making it only based on the xml it's around rather than dependent on it's syntax.

Here instead of having things like separate  elements and   attributes for the same thing we only have the attribute and instead support a sort of null element. A  starting tag is really a null element with the same mw:if="" as a div. These null elements can be ended with the first mw:* used like, just a end mw like   or a null end element.

Likewise  is shortened to. Technically the pattern would mean a mw:msg="foo" attribute is permitted though if we do follow that we should probably try to discourage use of it, as an attribute that completely replaces the contents of the block doesn't make as much sense as one that makes the element conditionally omit-able or repeats the contents.

I did end up with things like  ($.header means the 'header' key in the current context, eg: the header in the current section of a sidebar)