RXML
Web pages in general is made up of text mixed with HTML tags, sent
over the Internet from a web server to a browser such as Netscape or
Internet Explorer. The browser uses the HTML tags to show the page in
all its glory to the web-surfing user. There are a lot of different
browsers and versions of browser in daily use, and so it is obvious
that the set of HTML tags must be rather fixed and agreed upon by
all. Despite this, Roxen Challenger offers its own tags, called RXML
tags, to extend the sometimes quite limited power of HTML, and it even
allows users to define their own tags. How is this possible?
Macro expansion
The answer is that the pages are not sent to the browser as you have
written them. Rather, the pages are processed by Roxen Challenger and
every instance of an RXML tag is substituted by its HTML
equivalent. For instance, the <tablify> tag, which takes a
list of things and turn them into a rather neat table, is substituted
by a rather complicated expression using the ordinary HTML tag
<table>. The <gtext> tag takes text and renders it
as an image with selectable fonts, colors, shading, stippling and
other graphical effects. When Challenger reaches a <gtext>
tag, it generates the necessary image and substitutes an ordinary HTML
<img> tag with a link to the newly generated image.
The same happens with tags defined by the user. Whenever a
user-defined tag is encountered, it is substituted with the contents
of its definition. This in turn may contain other RXML tags, which is
then expanded into their definition, and so on, until it is only
ordinary HTML tags left.
So, the RXML tags never reach the browsers. Instead, the server
expands every RXML tag in the document to HTML before sending the, by
now completely understandable, page to the requesting browser.
|