SoftQuad's XMetal 1.2
Robert J. Boeri
EMedia, March 2000
Copyright © Online Inc.
You have no doubt heard the buzz about XML, that it is taking the Web, computing, and publishing worlds by storm. Yet you probably have not yet heard a great deal about how ordinary mortals can actually code XML. With SoftQuad's release of XMetaL version 1.2, XML word processing could easily go mainstream in much the same way Web development has gone over the last few years (thanks in part to tools like SoftQuad's own HoTMetaL.)
SoftQuad's XMetal 1.2
synopsis: A structured authoring tool for creating HTML, XML, or SGML documents using any DTD, XMetaL provides an excellent combination of power and value. XMetaL combines the ease of a word processor with the ability to create disciplined, valid XML. Coming from a company like SoftQuad, with solid SGML and HTML credentials, XMetaL is likely to be one of the winners in the XML content-creation arena.
SoftQuad Software Corporation Inc.
161 Eglinton Avenue East, Suite 400
Toronto, ON, Canada M40 1J5
200 West Franklin Street, Suite 250
Chapel Hill, NC 27516
XMetaL combines the ease of a word processor with the ability to create disciplined, valid XML. You can also use XMetaL to produce SGML and HTML documents (SGML is the foundation of these standards). However, SoftQuad's choice of the name XMetaL suggests its biggest use will be in the XML arena, and that is where this review will concentrate. If you know you want to learn more about XMetaL, but are still a little confused about the larger issues of a commitment to XML publishing, see this month's INFORMATION INSIDER (p. 60) for a little context.
what you need and what you get
I used a typical installation, which recommends installing Internet Explorer version 5 (or at minimum some of its components) as well as Microsoft's Database Access Components (version 2.5). Copies of both IE5 and MDAC are available on the installation CD-ROM. My installations (on several test machines) all went smoothly. Minimum system requirements are Windows 95/98/NT 4.0, a 133mHz or faster processor, and 32MB available RAM.
To begin using XMetaL, you must supply it with a Document Type Definition (DTD). In essence, this is a file explaining which tags (elements, attributes, and entities) are available when you create or edit a document. When you supply a DTD to XMetaL, it is as though XMetaL undergoes a personality change. Suddenly you see the specific elements (like "note"), attributes (like "critical"), and entities (like company boilerplate that you want to define once but use repeatedly) in a pick-list for entry into your document. To help you learn XMetaL, SoftQuad supplies a "Journalist" DTD. Initially skeptical that anything could be so easy, I took that DTD, simplified it, and then modified it using a modeling tool called "XML Authority" from Extensibility. My modified DTD was designed for creating encyclopedia articles. I then plugged my DTD into XMetaL, and took an Encyclopedia Britannica piece about irises and converted it to XML.
If you are familiar with SoftQuad's Web development product, HoTMetaL, you've already got an advantage in understanding XMetaL; XMetaL's look and feel is much like HoTMetaL's. However, HoTMetaL is only for HTML content; XMetaL lets you author with any DTD, including those for HTML.
As with HoTMetaL, XMetaL provides three levels of detail and power through three document views. This spectrum goes from most powerful (and complex) to easiest (and least detailed) views: Plain Text (like what you see when you "View Source" in Internet Explorer), Tags-On, and Normal. Additionally, XMetaL provides a Page Preview showing how your document will look with a particular set of styles.
It is important to remember that XML deals with the content and structure of documents; unlike HTML in a browser, there are no presumed styles. This separation of form and content lets you create XML content once and deliver many different views or versions of that content. Beginners will usually start with the Normal view, and after getting comfortable, will switch between that and the other views as needed. Adding elements in Normal view is akin to working with word processor styles; inserting elements in the Tags-On view provides a more structural mode of authoring. I found that using the Tags-On or Plain Text views were not always optional; and in the Normal view, it isn't always clear precisely where your insertion point is (and thus you may not find appropriate elements available for use, since you are not at the precise point where a particular element is valid).
If any XML authoring tool is to succeed on the average user's desktop, it must make building documents as much like a drag-and-drop operation as possible. XMetaL's answer is good: Let users create a resource window for commonly used graphics or other resources.
Valid XML documents must satisfy the rules in your DTD completely, but XMetaL lets you turn rules-checking on and off temporarily (version 1.2 requires you to build a macro to do this). Although you must use care when turning off rules- checking (you might create a massively invalid document), this flexibility is necessary when you need to rearrange large sections of an XML document. Sooner or later though--and the sooner the better---you will need to validate your document and then turn rules-checking back on.
form follows function
It is one thing to build richly structured XML documents; it is quite another to view them with special fonts, headers, footers, and other style elements. Furthermore, XML has a bevy of style standards, two of which (recently released) allow manipulation of XML documents (XPath) and transformation facilities (XSLT). How does XMetaL deal with these style standards?
XMetaL allows you to define styles and apply them to your XML documents by supporting cascading style sheets, levels 1 and 2 (CSS1 and CSS2). XMetaL's support for these standards isn't complete, but is more than adequate. Fundamental CSS1 styles (such as font family) are directly specifiable, available via a GUI interface. If you want to use advanced CSS2 features such as page footers, you must edit style rules in text mode. XMetaL 1.2 provides an XSL transformation tool to show how you can use a related XSL standard, XSL Transformations (XSLT), to convert documents marked up with the sample Journalist DTD into HTML. Converting documents that use other DTDs is an exercise best left to the programmer, but it is still an impressive capability in a tool of this price range.
Note that even though CSS1 and CSS2 are World Wide Web Consortium (W3C) released recommendations, Web browser support for these standards (as for HTML 4 itself) is still not complete. Thus, although you can develop visual renditions of your XML documents in XMetaL's page preview mode, you will still need to check them against XML Aware viewers (e.g., Enigma's Insight or DynaText, or an upcoming XML Aware Internet browser). Getting the look-and-feel right is difficult; XMetaL has the fundamental bases covered and is poised to provide better coverage when appropriate.
XMetaL does not yet support XML's work-in-progress standard eXtensible Style Language (XSL), although it likely will when the W3C releases the XSL standard. Apart from the necessarily work-in-progress support for styles, I'd like it if XMetaL took more of an enterprise approach by providing better ways of importing legacy content such as styled Word or WordPerfect documents, and a built-in facility for building, viewing, and maintaining DTDs.
If you're able to start from scratch, you can create all documents using XMetaL as an ordinary word processor and XML authoring system. However, most of us have legacy word processor documents, and getting those documents into XMetaL is more difficult and largely a copy-paste operation.
SoftQuad's HoTMetaL provides some aids for importing word processor and other office files, and it seems only natural that XMetaL would provide a similar facility. For example, tables are among the most difficult constructs in any document, and any automation is welcome indeed. XMetaL does have an ODBC import system that you can use after some programming. Happily, my tests showed that you can also copy tables from Word or WordPerfect to Excel, then select the row-cell area representing the table, and paste it directly into XMetaL provided your DTD accepts HTML 4 tables at the insertion point. This alone is a real time-saver. Likewise, I found copying pie fonts (like degree symbols) from existing documents into XML documents as entities worked flawlessly.
I also found myself wanting to see a hierarchical view of table elements to get a sense of which ones depended on which others. And DTDs (like database schemas) necessarily evolve. During this review, I found myself modifying my test DTDs. Bundling a product like XML Authority into XMetaL would be an easy--and natural--enhancement.
Overall, XMetaL provides an excellent combination of power and value. Coming from a company like SoftQuad, with solid SGML and HTML credentials, XMetaL is likely to be one of the winners in the XML content-creation arena.
XML Authority brings two important things to the process of XML authoring--the ability to build and manage Document Type Definitions or DTDs (which is an essential part of using XMetaL), and the graphical view you get of the DTD. I used XML Authority, a $99.95 tool from www.extensibility.com, to help put XMetaL through its paces. XML Authority lets you create a document model (what it calls a schema) defining each of the elements (tags), attributes of those elements, and entities in your model. After you build your model, you can save the result as a DTD, or in one of many other emerging formats such as the XML Schema Definition Language, Microsoft's BizTalk, and others.
Features and Benefits of XMetal
- Built-in support for lists
Lets you identify which kind of lists your elements represent; easy one-click changes from numbered to bulleted lists, or from lists to paragraphs (and vice-versa)
- Built-in spell checker and thesaurus
Adds important and common word processor function to an XML authoring tool
- Customizable toolbars, menus, and editing behavior
Lets developers roll out XMetaL consistently to large groups by specifying document templates with specific DTDs, running scripts when certain elements are inserted, and specifying elements to follow other elements; also has built-in JScript and VBScript scripting engines
- Entities and special characters
Lets you reuse common document objects like text or multimedia files (such as graphics, sound, or video), special characters (like copyright symbols), or other XML/SGML files (like boilerplate)
- Resource manager
Provides a separate pane as a source for commonly used items, including code fragments, images, etc.
- Defines and designates CSS1 or CSS2 styles
Although lacking full support for either CSS1 or CSS2, provides an easy way to define one or more visual renditions of your document
- Workspace management
Lets you work the way you are most comfortable, with reusable window layouts
- CALS and HTML 4.0 table support
Makes it easy to insert complex tables using either of these two popular table models--simply designate one or the other table model as part of your DTD
- Database Import Wizard
Lets you import database and spreadsheet data to your XML document
Robert J. Boeri (email@example.com) is co-columnist of Information Insider. Boeri is an Information Systems Publishing Consultant at a New England Commercial Property-Casualty Insurance company.
Comments? Email us at firstname.lastname@example.org.