NetBeans: Working with XML, Part 1

In part one in this series of book excerpts from NetBeans: The Definitive Guide, learn how to work with XML within the NetBeans framework by installing XML support and working with XML editors.

Installing XML Support

NetBeans provides extensive support for developing with XML.[1] But it isn't bundled with NetBeans 3.3.2, so you need to get it from the Update Center. Go to Tools menuUpdate Center to launch the Update Center Wizard. Check the NetBeans Update Center. You will find several modules under the XML node, CSS Support through XML Tree Editor (see Figure 1). Install them all. After the IDE restarts, look at Help menuHelp SetsXML Support for complete instructions on using all the features. In this chapter we'll mention the high points and then build some examples.

Figure 1: Installing modules for XML support

Overview

We'll spend the bulk of this chapter delving into the XML support available in NetBeans. Before getting into detail, though, you should get an idea of what is available and how it all fits together. You'll then be ready to dive into specific topics.

NetBeans provides a variety of templates to get you started on creating the following XML documents:

Plain XML

XML with DTD included or referenced

DTD alone

Cascading Style Sheet (CSS)

Extensible Style Sheet (XSL)

OASIS Specification XML entity catalog

You can also mount existing XML catalogs that meet other specifications, but only the OASIS specification is explicitly supported for creating new catalogs.

Browsing and Editing

Once you've used a template to create a new XML-based document or mounted an existing document, you will want to browse and edit it. If the XML is well formed, you can open the document's nodes and browse it in the Explorer. NetBeans also provides both a text editor and a tree editor for modifying XML files or for closely examinining their contents. The tree editor gives a node view just like the Explorer view, and specialized property editors that change to match the object type of the currently selected node. Context menus help you keep XML source well formed and consistent with DTD during editing through the
Check XML and Validate XML actions, both of which will be explained in later sections.

Generating Documentation

After working hard to create a DTD, you probably want to document it so others can share its value. It's as easy as generating a Javadoc for Java source. Right-click, select Generate Documentation, and it's done. You get an XHTML document that describes the content of the DTD, which you may augment with text describing the business meaning of the XML elements and attributes.

Accessing with Java

Of course, you'll want to access your XML documents with Java to take full advantage of XML's power. The first step is as easy as generating documentation. Right-click the DTD and select Generate DOM Tree Scanner or SAX Document Handler Wizard to generate source for Java classes to access the XML. Use a DOM Tree Scanner to modify XML documents, and use a lighter-weight SAX Document Handler if you only need to read the documents. We'll take a closer look at this throughout the rest of this chapter.

Of course, it's impossible for any set of development tools to keep completely up to date with advancing technologies. But NetBeans with its highly modular architecture does a remarkable job of bringing out new features quickly. If you want to speed up the process, learn how to build NetBeans modules from this book and start participating in the open source community.

XML Editors

Let's create an XML document with a DTD. We need a work area, so first create a new Java package named XMLWork. Right-click the package in the Explorer, select NewXML and DTDXML with DTD to launch the New Wizard, and create a new XML document from a template. Name it Inventory and then click Finish. The document appears as a node in the Explorer and in a tree editor view of the Source Editor. Open the nodes in both the Explorer and the Source Editor, and you will see that both views are identical. When the top-level node is open, the name Inventory appears three times, first as the name of the entire document, next as DOCTYPE root element name in the DTD, and last as a top-level element name in the XML data (see Figure 2). Right-click the top-level node and select Edit to access the same information as plain text.

Figure 2: The XML tree editor and text editor

Any change made in the tree view is immediately applied to the text view. You can see this by clicking back and forth between the tree view and text view tabs at the bottom of the Source Editor. Let's undock the text view to make it easier to watch. Right-click the text view tab, select Dock View IntoNew Single Frame, and you can see both views at the same time.

We need to add a few elements and attributes to make our document interesting. Our Inventory document will describe Kits, which contain Parts; Suppliers, which produce the Parts; and Parts, which have Size and Color. Everything will have a Description.

Right-click (in either the Explorer or the Source Editor tree view) the Inventory element node, which is the last node named Inventory. Select from the context menu Add Element. Name it Kit, click OK, and notice that a new element is added inside the top-level Inventory element. Did you see all the choices when the context menu for Add was open? You could add anything from Attribute to Text, everything you need for complete XML data editing. So let's add an attribute. Right-click Inventory again; this time select Add Attribute. Name it Description, and give it the value Kit Inventory. It's often easier to add new attributes while creating an element. Just click the Add button while the Element wizard is open, instead of going directly to the OK button, and the little Add Attribute wizard will open. You can also get to the Add Attribute wizard from the specialized property editor that appears in the right panel of the tree editor whenever an element is selected in the left panel. To add some text to the Part element, right-click, select Add Text and then fill in Part A in Kit.

Continue using the tree view to add elements and attributes (as shown in Figure 3) until the text view of your XML document matches Example 1 (except for insignificant blank lines). You can copy and paste in the tree editor. We want all the Part elements to have the same Description, Part A. Once you've created the first Part A Description, you can just copy and paste into the other Part elements. Of course, you could simply paste Example 1 directly into the text editor. But the purpose of this exercise is to gain experience with the tree editor. With large, complex XML documents the tree editor is much easier to use because it automatically keeps the syntax correct. Moving nodes to restructure the data with copy, cut, and paste operations is quick and accurate.