We are aware of the fact that redesigning the WarpIN script language is not
something that we should take lightly. Of course, this requires archive creators
to learn the new script language.
However, using an XML-compliant script language has so many advantages that
outweigh this cost that we decided to break compatibility in this respect.
(Note again that WarpIN itself still understands old-style scripts. Only the
specification of the new language itself is incompatible.)
These advantages are:
- Any XML parser can read a WarpIN script, and even if it won't install an
archive then, it can display and validate the script.
For example, you can feed a WarpIN script
into Mozilla (which has a built-in XML parser), and Mozilla will show you the script
and can report errors in the XML syntax. Even better, since the WarpIN DTD is available
in a separate file, Mozilla can even validate the WarpIN script against the WarpIN DTD.
- The old script parser in WarpIN was pretty shaky in certain situations. It
ran into many problems with angle brackets in regular texts, was pretty slow, and
really ugly code as well. To fix these problems, we basically had the choice of
writing a new parser from scratch or switching to an XML parser, which we did.
- The new script parser supports the full XML standard.
It is built on "expat", which has been used in many other projects on many platforms,
for example in Mozilla and perl.
While this document cannot fully describe all features of XML, they should be
supported by expat. For example, you can define internal entities in your WarpIN
script to define script-internal variables and such nice things.
- The new parser generates much better error messages than the old one. In some
situations, the old parser would not recognize a buggy script and still start running
WarpIN, even though the script had syntax problems. The new parser validates the
script against the WarpIN DTD, which makes sure that all elements appear only exactly
where they are allowed and have proper attributes.