ceXML - an XML vocabulary for building and civil engineering: Master thesis | ||
---|---|---|
Prev | Chapter 7. Prototype implementation | Next |
This section takes care of the user interface and proves in a visible way the multi-lingual capabilities.
A CGI script (again, python) named treeview.cgi was used to generate a the Internet page showing a tree structure on the left-hand side and the characteristics of the selected object on the right-hand side. The source of this script is included in the section called treeview.cgi in Appendix D, the only CGI script I'll include. The output nicely resembles the look of GEN. Multi-linguality is not a problem, as Figure 7-1 and Figure 7-2 show.
The view is constructed by taking the filled message vocabulary (cexml.xml) and by processing it with propagate.xslt, rejoin.xslt, language-.xslt and builtobjecttree.xslt. This last one (not included in the listings) formats the resulting propagated, rejoined and pruned-of-all-but-one-language tree into below screen-shots.
The catalogs are transformed into viewable pages by a more elaborate approach. First a catalog is transformed using view_to_cexml.xslt, which transforms the catalog (which is in view format) back into a format which complies to cexml_message.dtd. This file is, as it has been generated from a view, uni-lingual. The resulting builtobjects are included in the filled message vocabulary cexml.xml by means of a Sed command. Those builtobjects have been marked by an attribute mode="view" After that, propagate and rejoin are, again, used to fill those builtobjects, after which strip.xslt is called to strip out all builtobjects, except those marked with mode="view". The propagation and rejoining have added the missing language, so that the result is, again, multi-lingual.
A CGI script is used to view the file generated above, calling language-.xslt to end with only the language of choice. Figure 7-3 shows the Dutch catalog in English and Figure 7-4 shows both catalogs combined in English.
Dealing with multiple languages is not a problem, even in visual user interfaces using common browser technology. The chosen model enables an easy generation of a GEN-like interface.