Lists Home |
Date Index |
Rick Marshall wrote:
> this may sound crazy, but every proposal i've seen so far to make xml
> quicker/faster seems to rely on getting rid of the end tag.
> either binary run length coded formats, or traditional binary number
> encodings etc; or more standard termination chars }, ), NUL, etc. anyone
> want to propose a syntax with ; as a terminator ? or did i miss that
> here's the valuable trick. the end tag must identifiably match the start
> tag, and it must be validated that the end tags occur in the correct
> order, and the content must be unambiguously NOT an end tag.
> any takers?
I did it with indentation, a la Python.
The double colons are used so that single ones can be used in Qnames.
Any line that does not begin with a word:: is a continuation of PCDATA
content from a previous line (there is a comment indicator, too). "@",
of course, signals an attribute name.
The apparent weakness of this simpleminded verson is that it does not
know about namespaces, just Qnames, but that is OK because we just want
to spit out real, angle-bracketed xml using the same QNames.
A similar parser lets you turn indented lists into xml - once you can
pick up the indent level when there is a jump of several levels of
un-indent, you are set to parse lots of similar formats.
I've looked at or tried a number of compact syntaxes, but this is the
only one I come back to.