String tags are container tags that process their contents somehow.
Examples are the <sort> tag that sorts its contents and the
<tablify> tag that creates good looking tables from tab
separated text files.
The contents of an RXML container tag may contain other RXML tags.
However, this is not as simple as it may seem since the outer tag is,
by default, handled first. The following example will try to explain
what happens.
Our example contains an <obox> tag enclosing
a <smallcaps> tag.
{obox}
{smallcaps}Hello World{/smallcaps}
{/obox}
Which will result in:
Hello World
The first thing that will happen is that the RXML parser handles
the <obox> tag, which creates some HTML table code to draw a
box around its contents. The result from the first pass will be
something like:
{generated HTML table code}
{smallcaps}Hello World{/smallcaps}
{/generated HTML table code}
This result will then be parsed another time by the RXML parser,
which will then run the <smallcaps> tag.
That the outer tag is handled first is usually not a problem, but
in some special cases it will cause a problem. It is, therefore,
possible to give the preparse attribute to all RXML
container tags. This will cause the RXML parser to parse the contents
of the tag before parsing the actual tag.
Below follows an example where the preparse attribute
makes a huge difference.