''I'm planning on merging in bits and pieces from other XML-related pages here as I see fit, as part of an attempt at refactoring XmlSucks et al. -- DanielBrockman''
----
XML has no built-in data types, save strings of Unicode characters. This makes it a bit unwieldy in some situations. The usual example compares the following XML (forgive me, but comparing XML to S-expressions is unavoidable)
42
foo
to the following, slightly terser, S-expression (see EssExpressions for more about these brackety beasts):
(42 "foo")
However, this example is somewhat contrived (if not a lot), since in most real-world examples you will not find this kind of abstract list of data. A more realistic version could look like the following:
42
foo
which requires some extensions to the S-expression for it to keep up:
(gizmo
(price 42)
(name "foo"))
Suddenly, the S-expression's ability to represent different data types (integers and strings) is not as important. Indeed, if you were to add a long description of the gizmo, perhaps even with internal markup, you would most likely find the S-expression's syntax for strings starting to get in the way.
''Um... the EssExpression still looks better, takes up less space, you're killing your own argument.''
''[insert example here]''
Conclusions:
* Lack of built-in data types is a huge pain in the ass when representing generic data. '''Examples:''' ''registry-like data warehouses like gconf''
* When you're going to add your own domain-specific type annotations anyway, built-in data types are not really that cool anymore. '''Examples:''' ''configuration files''
* Start/end tags are superior when the bulk of the document is text. '''Examples:''' ''HTML'', ''XSLT'' (in most cases -- this is not as clear-cut), ''Wiki''
''Another unsupported conclusion. There's nothing superior about redundant information... (html (body (span "This is great!"))) is superior to
This sucks! because it has the exact same structure, carries the same information, can't be messed up by misspelling then end tag, and doesn't force me to type redundant information.''
[Really? Now we're back to this question: In the above example, which element does the symbol ')' close? In the example following it, which element does the tag "