Lisp's syntax can be used to express the structure of SGML/XML-based documents very concisely:
<doc> <heading>Foo</heading> <para>this is a paragraph</para> </doc>
Becomes
Because Lisp is also a programming language it is possible to mingle Lisp code and SGML/XML markup in Lisp syntax to programmatically generate documents.
In order to do this `right' for XML you need to deal with
issues of Unicode, case, namespaces and so on.
But almost all documents don't need to worry about this complexity. This code
provides a simple way to mix HTML markup with Lisp code. It does
not enforce anything except the matching of tags, so it knows
nothing about document types or anything like that. In fact the
only thing you need to tell it is which elements have empty
content models, so it generates <br>
rather than
<br></br>
.