Development Tools

For many of us development tools are more than just a way of life—they represent an absolute necessity. Even for those of us who often prefer a good text editor and the command line, high-end development tools usually help accelerate our application creation and ease our learning curve, especially for tag-based technologies like XML. These IDEs get us started quickly and allow us to reach our goals faster.

Over the next few pages we are going to and cover some of the more popular development tools on the market today. Because Windows and UNIX-based systems, such as Linux, often represent the majority of application-development environments, we will focus on applications that run on these operating systems. For any Mac OS users out there, especially OS X users, we will even have a few for you.

Schema and DTD Tools

The first type of tools we are going to look at are XML DTD and Schema (as in XML Schema) creation tools. Back in 1998 and even in early 1999, these types of tools basically did not exist. Most schemas were created using a text editor, like Notepad, and validated using command-line applications. Today, however, IDEs exist that provide advanced features, such as real-time validation and error reporting, which lay the foundation for our XML solutions.

In this section of the appendix we are going to share some details about XML Authority and XML Spy—two leading schema development editors.

XML Authority

XML Authority (), which was developed by a company called Extensibility (later purchased by TIBCO), was one of the first schema-development environments created for XML. Its simple and easy-to-use interface, shown in Figure B-1, allowed developers to quickly and easily create schemas and verify them in realtime. While it supplied a means by which you could create, modify, and delete elements and attributes, it also provided a visual representation of your model, the ability to insert comments easily, and direct source modification for those of us who need to touch the code directly at times.

Figure B-1 TIBCO Extensibility's XML Authority product.

One of the best features of the XML Authority product, besides its UI, is its support for multiple dialects. For instance, you can open an XML DTD and, with the common Save As... menu option, save the equivalent XML Schema, SOX, SGML, Microsoft BizTalk-compatible, and other representations. It performs the transformation from one language to another.

Table B-1 displays the supported dialects of the software as of version 6.1. In this table we have included the name of the dialect, a description, and a quick example of how their outputs vary for a simple element definition. The example shown later will be based on the following XML DTD definition.

Table B-1 Dialects Supported in XML Authority
Dialect Description Example

BizTalk
Compatible

An XML-based design framework for implementing schemas and a set of XML tags used in messages sent between applications
().

<ElementType name = "example" content = "textOnly" model = "closed"/>

DCD

A structural schema facility for specifying rules covering the structure and content of XML documents
().

<ElementDef Type = "example" Content = "Closed" Model = "Data"/>

DDML

The Document Definition Markup Language encodes the logical, as opposed to the physical, content of DTDs ().

<ElementDecl Name = "examle"><Model>
<PCData/
></Model>
</ElementDecl>

SGML

The Standard Generalized Markup Language, which laid the foundation for both HTML and XML ( - search for ISO 8879:1986).

<!ELEMENT example (#PCDATA)>

RELAX

The Regular Language description
for XML is used for describing
XML-based languages
().

<elementRule role = "example" type = "string"/><tag name = "example"/>

Schema Adjunct

An XML-based language developed by TIBCO Extensibility and used to associate domain-specific data with schemas and their instances
().

Not Applicable

SOX version 2

The Schema for Object-Oriented XML for defining the syntactic structure and partial semantics of XML document types ().

<elementtype name = "examle"><model>
<string/
></model>
</elementtype>

XDR

XML Data Reduced, which is a dialect based on a subset of XML-Data ().

<ElementType name = "example" content = "textOnly" model = "closed"/>

XML DTDs

The XML 1.0 language ().

<!ELEMENT example (#PCDATA)>

XML Schema

XSD is the recently released standard from the W3C that is essentially the next generation of schema description ().

<element name = "example" type = "string"/>

<!ELEMENT example (#PCDATA)>
You will notice that some of these examples look the same, which should provide some insight into how some of these dialects are closely related and even based on one another.

Exporting different dialects is not the only feature of the XML Authority application. It also has the ability to import a variety of different data sources and build an XML representation out of them. This includes objects like COM, Java, and ODBC. Table B-2 contains a list of the types of data it can import along with a description.

For most of these items you can choose to import the data as elements or attributes in the resulting schema. For instance, if you're importing data from a database through ODBC, you can select to have the database column names as either child elements of the table name or attributes.
Table B-2 Import Data Sources for XML Authority
Type Description

COBOL
Copybook

Allows you to import COBOL copybooks, where the COBOL data declarations will be represented as XML elements.

COM

Allows you to import COM objects.

Internal Subset

If information on the schema has been included as an internal subset of an instance document, you import this information.

Java class

Allows you to import a Java class and store the properties as elements or attributes.

LDAP

Allows you to import an LDAP (Lightweight Directory Access Protocol) directory structure.

ODBC

Allows you to connect to a database via ODBC and import the tables available on that source. It does not create the overall database hierarchy with this information—only that of a particular table.

SGML

Allows you to import an SGML DTD for conversion to an XML schema.

Text

Allows you to import the column headers of a tab-delimited text file. Once you have defined your model after these headers, you can create instance documents with the column values.

XML Document

A well-formed XML document.

These are just a few of the features of XML Authority, which provides a lot of flexibility for those of you transitioning from one type of data to another. In addition to these features, this application also allows you to export the visual representation of your schemas in GIF format, provides auto-complete features while typing, has a simple interface for element and attribute lists, and even communicates directly with its XML repository server, XML Canon/Developer, which we will discuss later.

If you want more information on XML Authority visit . The application is currently sold as part of a suite (XML Turbo) with two other applications. Because of the direction TIBCO appears to be taking with their software products, we are unsure how long this deal will last. So if you are interested in this application, we recommend you purchase it soon. It might only be available as part of a larger suite in the near future.

XML Authority is available on Windows, Unix, and Mac OS platforms. Note that earlier versions are available only on Mac OS 9 and earlier because of limitations in its support for Java. MacOS X users, however, will be able to use the most recent versions.

XML Spy

Another popular XML development tool is XML Spy (), shown in Figure B-2. This tool allows you to create and validate even more types of XML documents and schemas than XML Authority, as seen in Table B-3, as well as manage entire projects that can be checked in to and out of Microsoft's Visual SourceSafe. The one drawback is that it only runs on Windows systems, so dedicated Mac OS and Unix-based users will need to look for another solution.

Figure B-2 The XML Spy editor.
XML Spy allows you to edit HTML and ASP files, but they are not XML based. Additionally, you can add other types of documents to create or edit within the preferences.
Table B-3 Spy-Supported Formats
File Extension Description

.biz

BizTalk

.cml

Chemical Markup Language

.dcd

Document Content Description

.dtd

Document Type Definition

.ent

Entity Sets

.math and .mml

Mathematical Markup Language

.mtx

MetaStream XML

.rdf

Resource Description Framework

.smil

Synchronized Multimedia Integration Language (SMIL)

.svg

Scalable Vector Graphics

.wml

Wireless Markup Language

.xdr

XML-Data Reduced

.xhtml

Extensible Hypertext Markup Language

.xml

XML Document

.xsd

XML Schema

.xsl

XSL Stylesheet

.xslt

XSL Transform

If you take the time to step through the tutorial provided with the applications or available on the Web site, you will find XML Spy to be an easy-to-use, yet incredibly flexible and complete tool. Features like autocomplete and autosuggest, the ability to visually edit your schemas or edit the XML source directly, and being able to create HTML- or Microsoft Word-formatted documentation (see Figure B-3), makes it one of the most complete and inexpensive tools available today.

Figure B-3 An XML Spy documentation generation feature.

Document Editors

Once a schema has been developed, the next step is to create instance documents of the schema. This helps us verify that our schemas reflect the data models we want them to represent. The truest test is to apply real data to a model that is supposed to organize and describe that data. If you find extra data that is not described, or descriptions for data that doesn't exist, or even improper definitions, these instance documents will expose the inefficiencies and allow you to correct them.

XML Notepad and BizTalk Editor

Microsoft XML Notepad () was one of the first applications developed to create and edit XML instance documents. Although it has not been updated for some time, it allows you to edit and create well-formed XML documents. Its simple interface makes it easy to use for beginners or programmers trying to create XML documents quickly. Figure B-4 displays the XML Notepad.

Figure B-4 XML Notepad.

Now that the Microsoft BizTalk Server, which we will discuss later, has been released, you should use the Microsoft BizTalk Editor instead of XML Notepad. As you can see from Figure B-5, the applications have some similarities, and XML Notepad obviously laid the foundation for the BizTalk Editor application. We discussed the BizTalk Server and the other applications within this solution suite in Chapter 15, so check there if you have questions. For the moment, if you do not have the BizTalk Server, XML Notepad is still a good tool for starting out.

Figure B-5 The BizTalk Editor.

XML Instance

XML Instance, seen in Figure B-6, is TIBCO Extensibility's XML document instance editor. Some of the benefits of this application include its ability to arrange the attribute fields so they are on one line (look at Manager, Degree, and Programmer for an example) and that it provides real-time validation of the documents against the governing schema, which you can set if the document does not already specify one. XML Instance also allows you to save documents to a URL or directly to XML Canon, TIBCO Extensibility's XML repository server.

Figure B-6 The XML Instance XML document editor.

While this tool provides some easy-to-use features, it has some limitations as of the writing of this book. For instance, it allows you to quickly insert attributes, elements, comments, and so forth by clicking the appropriate icon on the Insert bar between the document and error pane, but this bar can, as of version 2.1, only support the display of eight items.

We also found that if you need to change something in your schema file, you have to reassign that schema to the document in XML Instance to update the validation. Doing so will also lose any expanded or collapsed items. This is not a problem for small documents, but can be annoying for longer ones.

XML Instance runs on Windows, Unix, and Mac OS systems. Like XML Authority, current versions for the Mac OS run on OS X only.

Komodo

ActiveState Komodo, which is nearing the release of version 1.2, is an IDE created by ActiveState (). ActiveState is the company that worked with Microsoft to provide a Win32 port of the popular programming language Perl. The application, shown in Figure B-7 debugging an XSLT document, allows you to textually edit XML and XSLT documents and data models.

Figure B-7 A Komodo IDE debugging an XSLT document.

It has some useful features but does not provide the robust environment that the other editors have. While the visual representations and document-generation features look like "nice to haves" on the other applications, not having them in Komodo exposes the need for them. Komodo runs on Windows and Linux systems, which is a plus, and because it is built on top of an open source application, ActiveState's ability to offer it on other systems is natural.

If you are programming in Perl, Python, PHP, or XSLT along with XML, Komodo provides some useful debugging features for these languages.