home *** CD-ROM | disk | FTP | other *** search
- <?XML version="1.0"?>
- <!-- edited with XML Spy v1.3 - http://www.xmlspy.com-->
- <user_manual>
- <!--This XML version of the user manual has been created from the original Word97 file
- by means of an intermediate conversion to HTML format. An updated version
- (using the XML capabilities of Word2000) will be available in the future.-->
- <info>
- <meta http-equiv="Content-Type" content="text/html;
- charset=windows-1252"/>
- <meta name="Generator" content="Microsoft Word 97"/>
- <meta name="subject" content="XML Spy User Manual"/>
- <meta name="keywords" content="XML, DTD, Editor, Windows,
- Parser"/>
- <meta name="Template" content="E:\Data\Icon\Dot-Files\Dokumentation.dot"/>
- <title>Spy Manual</title>
- </info>
- <manual>
- <div class="c5">
- <p class="c2">
- <img src="shots/splash.gif" width="406" height="337"/>
- </p>
- <p class="c2">Version 1.3</p>
- <h2 class="c3">A powerful - yet simple- tool for structured
- editing of XML and DTD files on the Windows platform.</h2>
- </div>
- <p class="c7">
- <span class="c6">⌐1998-99</span>
- <b>Icon</b>
- <span class="c6">EDV Informations-Systeme GmbH. All rights
- reserved.</span>
- </p>
- <h1 class="c8">Contents</h1>
- <p>
- <b>
- <u>1. Introduction</u>
- </b>
- <a href="#_Toc441258490">*</a>
- </p>
- <p>
- <b>
- <u>2. XML Overview</u>
- </b>
- <a href="#_Toc441258491">*</a>
- </p>
- <p>
- <b>2.1 XML Documents</b>
- <a href="#_Toc441258492">*</a>
- </p>
- <p>
- <b>2.2 XML Tools</b>
- <a href="#_Toc441258493">*</a>
- </p>
- <p>
- <b>
- <u>3. Using XML Spy</u>
- </b>
- <a href="#_Toc441258494">*</a>
- </p>
- <p>
- <b>3.1 Installation</b>
- <a href="#_Toc441258495">*</a>
- </p>
- <p>
- <b>3.2 Opening XML Files</b>
- <a href="#_Toc441258496">*</a>
- </p>
- <p>
- <b>3.3 Viewing XML Files</b>
- <a href="#_Toc441258497">*</a>
- </p>
- <p>
- <span class="c9">3.3.1 Tree View</span>
- <a href="#_Toc441258498">*</a>
- </p>
- <p>
- <span class="c9">3.3.2 Enhanced Grid View</span>
- <a href="#_Toc441258499">*</a>
- </p>
- <p>
- <span class="c9">3.3.3 Navigating</span>
- <a href="#_Toc441258500">*</a>
- </p>
- <p>
- <b>3.4 Editing XML Files</b>
- <a href="#_Toc441258501">*</a>
- </p>
- <p>
- <span class="c9">3.4.1 Modifying items</span>
- <a href="#_Toc441258502">*</a>
- </p>
- <p>
- <span class="c9">3.4.2 Adding items</span>
- <a href="#_Toc441258503">*</a>
- </p>
- <p>
- <span class="c9">3.4.3 Converting items</span>
- <a href="#_Toc441258504">*</a>
- </p>
- <p>
- <span class="c9">3.4.4 Copying items</span>
- <a href="#_Toc441258505">*</a>
- </p>
- <p>
- <span class="c9">3.4.5 Pasting items</span>
- <a href="#_Toc441258506">*</a>
- </p>
- <p>
- <span class="c9">3.4.6 Rearranging</span>
- <a href="#_Toc441258507">*</a>
- </p>
- <p>
- <span class="c9">3.4.7 Finding Text</span>
- <a href="#_Toc441258508">*</a>
- </p>
- <p>
- <span class="c9">3.4.8 Replacing Text</span>
- <a href="#_Toc441258509">*</a>
- </p>
- <p>
- <b>3.5 Printing XML Files</b>
- <a href="#_Toc441258510">*</a>
- </p>
- <p>
- <b>3.6 Editing DTD Files</b>
- <a href="#_Toc441258511">*</a>
- </p>
- <p>
- <b>3.7 Examples</b>
- <a href="#_Toc441258512">*</a>
- </p>
- <p>
- <b>
- <u>4. Reference</u>
- </b>
- <a href="#_Toc441258513">*</a>
- </p>
- <p>
- <b>4.1 Toolbar</b>
- <a href="#_Toc441258514">*</a>
- </p>
- <p>
- <b>4.2 Command Reference</b>
- <a href="#_Toc441258515">*</a>
- </p>
- <p>
- <span class="c9">4.2.1 File Menu</span>
- <a href="#_Toc441258516">*</a>
- </p>
- <p>
- <span class="c9">4.2.2 Edit Menu</span>
- <a href="#_Toc441258517">*</a>
- </p>
- <p>
- <span class="c9">4.2.3 XML Menu</span>
- <a href="#_Toc441258518">*</a>
- </p>
- <p>
- <span class="c9">4.2.4 Item Type Submenu</span>
- <a href="#_Toc441258519">*</a>
- </p>
- <p>
- <span class="c9">4.2.5 View Menu</span>
- <a href="#_Toc441258520">*</a>
- </p>
- <p>
- <span class="c9">4.2.6 Window Menu</span>
- <a href="#_Toc441258521">*</a>
- </p>
- <p>
- <span class="c9">4.2.7 Mouse Menu</span>
- <a href="#_Toc441258522">*</a>
- </p>
- <p>
- <b>
- <u>5. Background Information</u>
- </b>
- <a href="#_Toc441258523">*</a>
- </p>
- <p>
- <b>5.1 Shareware Notice</b>
- <a href="#_Toc441258524">*</a>
- </p>
- <p>
- <b>5.2 About the authors</b>
- <a href="#_Toc441258525">*</a>
- </p>
- <p>
- <b>5.3 XML Parsing</b>
- <a href="#_Toc441258526">*</a>
- </p>
- <p>
- <b>5.4 OS & Memory Requirements</b>
- <a href="#_Toc441258527">*</a>
- </p>
- <p>
- <b>5.5 Unicode Support</b>
- <a href="#_Toc441258528">*</a>
- </p>
- <ol>
- <li class="c11">
- <a name="_Toc441258490"/>
- <span class="c10">Introduction</span>
- </li>
- </ol>
- <div class="c5">
- <p class="c1">With the acceptance of XML as a new standard for data
- distribution and information engineering on the Internet, the need
- for a simple tool to quickly open and edit any XML document arises.
- Just like any common text editor does its job for plain ASCII
- files, such a tool must contain a bunch of simple to use commands
- that allow the user to browse through XML files and modify them as
- needed.</p>
- <p class="c1">
- <img src="shots/mainframe.gif" width="484" height="389"/>
- </p>
- <p class="c1">XML Spy is exactly that kind of tool. With its
- structured approach it allows you to quickly view and edit any XML
- or DTD document on your PC.</p>
- <p class="c1">Unlike the many Java-based XML editors available
- today, XML Spy is written entirely in C++ and is targeted
- specifically at the Windows platform. This results in a series of
- benefits for the PC user:</p>
- </div>
- <div class="c5">
- <ul>
- <li class="c12">it is a lot faster than any Java-based editor</li>
- <li class="c12">it fully exploits the Windows user interface
- possibilities (e.g. drag & drop)</li>
- <li class="c12">it has rich structure views for the screen and many
- printing options</li>
- <li class="c12">it offers unlimited levels of "Undo"</li>
- <li class="c12">it contains detailed find & replace
- capabilities</li>
- </ul>
- </div>
- <div class="c5">
- <p class="c14">
- <span class="c13">XML Spy is shareware: you may
- evaluate the software for a period of up to 20 days free of charge.
- If you find XML Spy useful and would like to continue using the
- program after the evaluation period, you have to register with Icon
- (for further details please refer to the separate</span>
- <u>Shareware Notice</u>
- <span class="c13">at the end of this
- document).</span>
- </p>
- </div>
- <ol>
- <li class="c12">
- <a name="_Toc441258491"/>
- <span class="c10">XML
- Overview</span>
- </li>
- <li>
- <p class="c14">
- <span class="c13">The Extensible Markup Language
- (XML) is a subset of SGML that has been defined by the World Wide
- Web Consortium (W3C) in</span>
- <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a>
- <span class="c13">. Its goal is to
- enable generic SGML to be served, received, and processed on the
- Web in the way that is now possible with HTML. XML has been
- designed for ease of implementation and for interoperability with
- both SGML and HTML.</span>
- </p>
- <ol>
- <li class="c12">
- <a name="_Toc441258492"/>
- <span class="c15">XML
- Documents</span>
- </li>
- <li>
- <p class="c1">XML documents are made up of storage units called
- entities, which contain either parsed or unparsed data. Parsed data
- is made up of characters, some of which form character data, and
- some of which form markup. Markup encodes a description of the
- document's storage layout and logical structure. XML provides a
- mechanism to impose constraints on the storage layout and logical
- structure.</p>
- <p class="c1">A data object is an XML document if it is
- well-formed, as defined in the XML specification. A well-formed XML
- document may in addition be valid if it meets certain further
- constraints. Each XML document has both a logical and a physical
- structure. Physically, the document is composed of units called
- entities. An entity may refer to other entities to cause their
- inclusion in the document. A document begins in a root or document
- entity. Logically, the document is composed of declarations,
- elements, comments, character references, and processing
- instructions, all of which are indicated in the document by
- explicit markup. A document type definition (DTD) may define some
- rules for checking for the validity of XML documents.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258493"/>
- <span class="c15">XML
- Tools</span>
- </li>
- </ol>
- <p class="c1">There are already a couple of tools available on the
- market that allow editing or creation of XML documents. Each one
- uses a slightly different approach and therefore may be suitable
- differently for different tasks.</p>
- <p class="c1">XML Spy is a non-validating XML editor and is focused
- on the structured display and manipulation of an XML or DTD file.
- It checks each document for well-formedness and displays its
- contents in a tree and enhanced grid view.</p>
- <p class="c1">Therefore, XML Spy is also an ideal companion to many
- large-scale commercial XML publishing suites, because it allows
- viewing and low-level editing once the documents have been produced
- by the publishing system.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258494"/>
- <span class="c10">Using
- XML Spy</span>
- </li>
- <li>
- <p class="c1">XML Spy comes with an integrated setup program that
- installs the XML Spy application, documentation, samples, and
- required files. An uninstaller is also included and can be used to
- remove XML Spy from your computer if you do not need the software
- any longer.</p>
- <ol>
- <li class="c12">
- <a name="_Toc441258495"/>
- <span class="c15">Installation</span>
- </li>
- <li>
- <p class="c1">When you run the setup program, you are asked to
- specify an installation directory as well as a program folder in
- your "Start" menu. The setup program will then copy the entire
- software and samples to the designated installation directory and
- register XML Spy to be the default editor for all files with
- extensions "*.xml" and "*.dtd".</p>
- </li>
- <li class="c12">
- <a name="_Toc441258496"/>
- <span class="c15">Opening XML Files</span>
- </li>
- <li>
- <p class="c1">To start XML Spy you can either double-click on any
- XML file or select XML Spy from the program folder on the "Start"
- menu. While XML Spy starts up you'll see a splash screen with the
- program logo followed by a brief shareware reminder message (in the
- unregistered version only).</p>
- <p class="c1">On the "File" menu you will find commands to open a
- file from your computer ("Open...") or directly from the Internet
- ("Open URL...").</p>
- <p class="c1">The "Open..." command brings up the common Windows
- Dialog that allows you to choose a file from any drive and
- directory available on your PC.</p>
- <p class="c1">
- <img src="shots/OpenFile.gif" width="412" height="251"/>
- </p>
- <p class="c1">The extension "*.xml" or "*.dtd" automatically
- determines if the file will be interpreted as an Extended Markup
- Language (XML) or Document Type Definition (DTD) document.</p>
- <p class="c1"> </p>
- <p class="c1">To open a file directly from the Internet, you may
- use the "Open URL..." command:</p>
- <p class="c1">
- <img src="shots/OpenURL.gif" width="419" height="104"/>
- </p>
- <p class="c1">Since the specific kind of a file on the Internet
- can't always be determined from the URL, you must specify if the
- document is to be interpreted as an XML or DTD. You can also choose
- to load the file using a local cache or proxy server, or force a
- reload from its original source on the Internet.</p>
- <p class="c1">Whenever a file is opened, it is automatically
- checked for well-formedness and parsed according to the XML grammar
- specification. If an error is detected by XML Spy, the error
- message and document source is displayed inside a text editor
- window and the offending item is hilited:</p>
- <p class="c1">
- <img src="shots/error.gif" width="558" height="320"/>
- </p>
- <p class="c1">You can now easily correct the error and click on the
- "Reparse" button to check the modified document for well-formedness
- and try to open it again.</p>
- <p class="c1">As with any other XML editor, only well-formed XML
- documents can ever be opened and edited by XML Spy in the
- structured tree and enhanced grid display. The "Edit and Reparse"
- function upon opening of a malformed file does, however,
- dramatically reduce the time required to get a bad XML file
- fixed!</p>
- <p class="c14">
- <span class="c13">If an XML document is stored in a
- file using the UCS-16 encoding format, the current Shareware
- version 1.3 of XML Spy will be unable to open the file (please see
- the section</span>
- <u>Unicode Support</u>
- <span class="c13">for
- more details).</span>
- </p>
- </li>
- <li class="c12">
- <a name="_Toc441258497"/>
- <span class="c15">Viewing XML Files</span>
- </li>
- <li>
- <p class="c1">XML Spy displays each document as a window with a
- tree view on the left and an enhanced grid view on the right. The
- tree view outlines the overall structure (i.e. element hierarchy)
- of the file, while the grid shows each entity with as many details,
- as requested: if an element acts as a container for other elements,
- it can be expanded or collapsed by clicking on the tiny down-arrow
- button to the left of the element name. For each element the
- attributes are shown first, followed by child elements and any
- character data the element may contain.</p>
- <p class="c1">In addition to the elements, all other entities (e.g.
- processing instructions, comments, document type definitions, and
- even the "<?xml" version info at the beginning of each file) are
- also shown in the enhanced grid where they can be edited as
- well.</p>
- <ol>
- <li class="c12">
- <a name="_Toc441258498"/>
- <span class="c16">Tree
- View</span>
- </li>
- <li>
- <p class="c1">Just like the familiar directory tree in the
- Explorer, the tree view in XML Spy gives you an overview of the
- overall structure of an XML document and lets you quickly browse to
- any element of interest. Each element that contains child elements
- is automatically included in the tree view.</p>
- <p class="c1">
- <img src="Image1.gif" width="162" height="371"/>The
- element hierarchy can be expanded and collapsed using the small +
- and ΓÇô symbols in front of each element name. In addition, the
- "Expand", "Collapse" and "Expand Fully" commands in the "View" menu
- are available for navigation in the tree. Three toolbar buttons
- serve as a shortcut to these commands as well.</p>
- <p class="c1">Double-clicking on any element will navigate to the
- corresponding element in the enhanced grid view, where the element
- details can be viewed and edited.</p>
- <p class="c14">
- <span class="c13">The elements that form the
- hierarchical structure of an XML document, can also be directly
- modified in the tree view. Elements can easily be renamed, moved to
- a new position, copied to the clipboard or deleted. If you
- right-click on any element in the tree view, you can furthermore
- insert or append new entities on the same level or add child
- entities for the currently selected item. Please refer to the
- section</span>
- <u>Editing XML Files</u>
- <span class="c13">for more
- details.</span>
- </p>
- <p class="c1">Please note that for DTD documents there is no tree
- view, as document type definitions do not contain elements.</p>
- </li>
- <li class="c17">
- <a name="_Toc441258499">Enhanced Grid View</a>
- </li>
- <li>
- <p class="c1">The main portion of any XML Spy window is occupied by
- the enhanced grid view. All entities contained in an XML document
- are displayed in a structured way that allows for easy manipulation
- of contents and structure at the same time. Any hierarchical entity
- (such as the XML declaration, document type declaration, or any
- element that contains child elements) is represented with a gray
- side bar and a tiny arrow at the top that can be expanded and
- collapsed as needed.</p>
- <p class="c1">
- <img src="shots/grid.gif" width="581" height="382"/>
- </p>
- <p class="c1">The contents of such a hierarchical entity depend on
- its kind and ΓÇô in the case of elements ΓÇô mostly consist of
- attributes, character data, comments and child elements. To
- emphasize the strong coupling between attributes and the respective
- parent element, all attributes are always listed first and cannot
- be preceded by comments, character data or child elements. The
- order of the individual attributes is, however, preserved from the
- input file and can me modified if necessary.</p>
- <p class="c1">Following the attributes, the remaining entities
- within an element appear exactly in the order found in the file and
- can be rearranged without limitations using drag & drop.</p>
- <p class="c1">If an element contains only character data, the data
- will be shown in the same line as the element and the element will
- not be considered hierarchical by nature (and will therefore not be
- included in the tree view). The character data for any other
- element will be shown indented with the attributes and potential
- child elements and will be labeled as "Text" (see example
- screenshot above).</p>
- <p class="c1">The grid view can easily be customized using the
- mouse to adjust column widths. The "Optimal widths" command on the
- "View" menu automatically adjusts all columns so that the currently
- visible contents of all items can be fully displayed. The heights
- of the cells are determined by their contents alone and cannot be
- adjusted by the user.</p>
- <p class="c1">As an orientation aide, a special "Synchronize"
- command is also available on the "View" menu that will
- automatically synchronize the tree and grid views of the
- document.</p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Toc441258500"/>
- <span class="c16">Navigating</span>
- </li>
- </ol>
- <p class="c1">In addition to moving about with the mouse, you can
- also use the keyboard for navigating through an XML document. The
- arrow keys move the selection in the tree and grid views and the +
- and ΓÇô keys on the numeric keypad allow you to expand and collapse
- items.</p>
- <p class="c1">In the tree view only one item at a time can be
- selected and the keys only expand and collapse the selected item.
- In the grid view, however, the selection can encompass many items
- at once. Therefore, when expanding an item, all subitems are
- automatically selected. This enables you to press the + key once
- more to expand all items on the second level, and so forth....</p>
- </li>
- <li class="c12">
- <a name="_Ref440644291"/>
- <a name="_Toc441258501"/>
- <span class="c15">Editing XML Files</span>
- </li>
- <li>
- <p class="c1">When editing files with XML Spy, several commands are
- available that facilitate the creation and manipulation of all
- entities permitted by the XML 1.0 specification. These commands and
- operations are described in detail in this chapter.</p>
- <p class="c1">While editing an XML document, it is possible to
- modify the entities in such a way that the corresponding XML file
- would not be well-formed according to the XML specification. XML
- Spy does, however, strictly prohibit the saving of such a malformed
- document and will flag any error and ask you to correct it. It is
- also possible to check a document for well-formedness anytime by
- using the "Validate" command on the "XML" menu.</p>
- <p class="c1">Please keep in mind that the Shareware version of XML
- Spy does not perform any validity checking in the sense of the XML
- specification (i.e. check the XML document against the rules set
- forth in its document type definition). This means that you can
- create a (well-formed) XML document with XML Spy, that will later
- be rejected by a validating XML processor.</p>
- <ol>
- <li class="c12">
- <a name="_Toc441258502"/>
- </li>
- <li class="c17">Modifying items</li>
- <li>
- <p class="c1">You can easily modify any item by clicking on the
- element name or its contents in the tree view or enhanced grid
- view. If you have been navigating inside the grid view using the
- keyboard, you can also use the <ENTER> or <RETURN> keys
- to start editing. A blinking text cursor will appear and you may
- change the text.</p>
- <p class="c1">While editing an item, the arrow keys operate within
- the text of that element. You can also use the <Home> and
- <End> keys to jump to the beginning or end of a line. By
- pressing and holding down the <Ctrl> key the effect of the
- other navigation keys is modified according to this table:</p>
- <div class="c22">
- <table border="1" cellspacing="1" cellpadding="4" width="415">
- <tr>
- <td width="22%" valign="TOP">
- <p class="c18">Key</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c19">Normal</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c19">Ctrl + Key</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Left arrow</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Left one character</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Left one word</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Right arrow</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Right one character</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Right one word</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Down arrow</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Down one line</p>
- </td>
- <td width="39%" valign="TOP"> </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Up arrow</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Up one line</p>
- </td>
- <td width="39%" valign="TOP"> </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Home</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Start of line</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Start of text</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">End</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">End of line</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">End of text</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Return/Enter</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Enter/Leave editing mode</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Insert carriage return char</p>
- </td>
- </tr>
- <tr>
- <td width="22%" valign="TOP">
- <p class="c20">Tab</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Jump to next editable item</p>
- </td>
- <td width="39%" valign="TOP">
- <p class="c21">Insert Tab character</p>
- </td>
- </tr>
- </table>
- </div>
- <p class="c1">To select text, you can use the mouse as usual or any
- of the above navigation keys while holding down the <Shift>
- key. The selected text can be cut, copied and deleted by using the
- familiar commands on the "Edit" menu.</p>
- <p class="c1">The "Undo" command is supported for all modifications
- and keeps track of an unlimited number of steps. This means that
- you can easily step back and forth through all your modifications
- using the "Undo" and "Redo" commands, if you wish to check or
- review the changes you have made.</p>
- <p class="c1">To quit editing, simply press the <RETURN> or
- <ENTER> key to commit your changes or press <ESC> to
- cancel any modifications you have made. You can also use
- <TAB> to jump to the next editable item in sequence and
- immediately enter the editing mode there. As you would expect,
- <Shift>-<TAB> jumps to the previous editable item.</p>
- <p class="c14">
- <span class="c13">If you need to insert a line-break
- (i.e. <CR>, <LF>, or both) inside the text of an
- element, you'll have to use <Ctrl>-<RETURN>. The actual
- characters stored in the resulting file are determined by the
- line-break options in the</span>
- <u>Settings...</u>
- <span class="c13">dialog.</span>
- </p>
- <p class="c1">In a similar way you must use
- <Ctrl>-<TAB> to insert a Tab character into the text,
- because <TAB> alone is used for navigating between the
- different items in the grid view, when you want to edit each item
- in sequence. Please note that the original function of
- <Ctrl>-<TAB> (i.e. switching between open document
- windows) is, of course, still available when you are not in editing
- mode!</p>
- </li>
- <li class="c17">
- <a name="_Toc441258503">Adding items</a>
- </li>
- <li>
- <p class="c1">To add a new item, first select an existing item or
- location where you want the new item to be added. Then use one of
- these commands on the XML menu which are also available on the
- context-menu of the right mouse button.</p>
- <ol>
- <li class="c23">Insert item</li>
- <li>
- <p class="c1">Inserts the specified item before the location of the
- selected one. The kind of item inserted can be chosen from a
- submenu. Depending on the position in the XML document, not all
- item types can be inserted in all places (e.g. an Attribute-List,
- which is part of the DTD, can only be inserted inside the DTD).</p>
- <p class="c14">
- <span class="c13">Please note that in case of an
- attribute, the inserted item may appear to be inserted some lines
- above the current selection if an element or text item was selected
- as the location for the insertion operation. This is due to the
- fact that attributes always appear first below the parent element
- and can not be physically appear in any other place inside an
- element according to the XML specifications. The</span>
- <u>Structure Normalization</u>
- <span class="c13">function of XML Spy
- ensures that these constraints are also applied while editing an
- XML document.</span>
- </p>
- </li>
- <li class="c23">Append item</li>
- <li>
- <p class="c1">Appends the item to the end of the parent's item
- list. This is useful if you want to add a large number of items in
- sequence and would like to add an item as the last one in the
- list.</p>
- </li>
- <li class="c23">Add child</li>
- </ol>
- <p class="c1">Adds the item as a child of the currently selected
- item. This allows you to directly add attributes and child-elements
- to an item without having to select another one of its child-items
- first.</p>
- <p class="c1">Please note that an element that contains only
- character data (i.e. text) is shown in one line only to reduce the
- amount of space required to display that item.</p>
- <p class="c1">
- <img src="shots/element_plain.gif" width="445" height="20"/>
- </p>
- <p class="c1">Therefore, when you choose to add a child attribute
- or element to such an element, that element will henceforth have to
- be displayed in a hierarchical manner, so that the child items can
- be shown. The previous text of the element will now appear in a
- sub-item that is entitled "Text".</p>
- <p class="c1">
- <img src="shots/element_hierarchical.gif" width="521" height="59"/>
- </p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Toc441258504"/>
- <span class="c16">Converting items</span>
- </li>
- <li>
- <p class="c1">Under rare circumstances you will also find that you
- have created an item of the wrong type but have already entered
- some data so that you simply don't want to delete it and create it
- anew. Or you may find that in your application you are sometimes
- modifying the structure so that it becomes necessary to change
- sub-elements into attributes.</p>
- <p class="c1">To enable such operations, the "XML" menu as well as
- the context-menu (using the right mouse button) contain a command
- for converting the type of an item. Please note, however, that not
- all conversions are possible at all times. It is simply impossible
- to convert an element, that already contains child-items into any
- other type of item, because that operation would result in the loss
- of all child-item data.</p>
- <p class="c1">Sometimes you may also receive a warning that the
- name or contents of an item will be lost in the conversion process
- (e.g. when converting from attribute to comment).</p>
- </li>
- <li class="c12">
- <a name="_Ref441255194"/>
- <a name="_Toc441258505"/>
- <span class="c16">Copying items</span>
- </li>
- <li>
- <p class="c1">You may at any time use the clipboard to copy items
- to and from an XML document. While copying and pasting items within
- XML Spy, all information about content and structure is retained in
- an internal format.</p>
- <p class="c14">
- <span class="c13">If you would like to use the items
- in any outside application (such as your word processor or
- spreadsheet) you can choose to copy the items as tagged XML-text or
- in a structured, TAB-separated form that is suitable for pasting
- into tables. The format used by the copy command can be adjusted in
- the</span>
- <u>Settings...</u>
- <span class="c13">dialog.</span>
- </p>
- </li>
- <li class="c12">
- <a name="_Ref441245512"/>
- <a name="_Toc441258506"/>
- <span class="c16">Pasting items</span>
- </li>
- <li>
- <p class="c1">If you want to paste an item within XML Spy, the item
- is per default just pasted at the specified location as you would
- intuitively expect. Sometimes, however, this behavior can be
- undesirable. As an example consider this XML document:</p>
- <p class="c24"><drawing></p>
- <p class="c24"><shapelist></p>
- <p class="c24"><rect color="black"></p>
- <p class="c24"><point x="10" y="50"></p>
- <p class="c24"><point x="80" y="90"></p>
- <p class="c24"></shapelist></p>
- <p class="c24"></drawing></p>
- <p class="c1">If you copied just the attribute color="black" and
- were later to paste it directly at the top-level on another drawing
- element, XML Spy would insert it as an attribute of the
- <drawing> element ΓÇô which could potentially be in violation
- of the DTD.</p>
- <p class="c14">
- <span class="c13">Therefore XML Spy can optionally
- be instructed to insert an item with the appropriate parent
- structure for the location that you pasted it into (this is
- selectable in the</span>
- <u>Settings...</u>
- <span class="c13">dialog). Activating this function for the above example would
- automatically create an new empty <rect> element inside a new
- <shapelist> element inside the <drawing> and paste the
- attribute into the <rect> element ΓÇô thereby attempting to
- preserve the parent structure of the element that was originally
- copied (it was, after all, a color attribute of a <rect>, not
- of a <drawing>).</span>
- </p>
- </li>
- <li class="c12">
- <a name="_Toc441258507"/>
- <span class="c16">Rearranging</span>
- </li>
- <li>
- <p class="c1">There are two options for rearranging items in an XML
- document: using the clipboard (Cut/Copy/Paste) menu commands or
- using the mouse to drag and drop items.</p>
- <p class="c1">Please note that XML Spy does not check for
- conformance with any DTD when you are restructuring your document.
- XML Spy is a non-validating editor and therefore can only enforce
- the well-formedness of the resulting document.</p>
- <p class="c1">It does, however, try to help you in keeping a
- document conforming to a DTD when you move or duplicate items by
- inserting as many parent elements as necessary (depending on the
- target location) together with the item actually copied.</p>
- <ol>
- <li class="c23">Cut & Paste</li>
- <li>
- <p class="c14">
- <span class="c13">Moving items about with Cut &
- Paste has the one benefit of being accessible by keyboard alone. In
- most other circumstances it is easier to use the mouse to drag and
- drop items in a graphic fashion. Also, drag & drop allows for
- more fine control when deciding what is to be dropped in the target
- location, whereas with pasting you can only adjust one global
- setting to determine whether you intend to paste with the parent
- structure or without (see</span>
- <u>Pasting items</u>
- <span class="c13">for details).</span>
- </p>
- </li>
- <li class="c23">Drag & Drop</li>
- </ol>
- <p class="c1">To move items about, just drag them to their new
- location with the mouse and drop them there. To duplicate an item,
- hold down the <Ctrl> key while dropping the item:</p>
- <p class="c1">
- <img src="shots/dragdrop.gif" width="524" height="388"/>
- </p>
- <p class="c1">While dragging an item, the current target location
- for the "drop" is always hilited using a cross-hair that shows the
- exact spot where the item will be inserted. This gives you precise
- control over the position where the item is moved to and thereby
- reduces the amount of work incurred by unsuccessful attempts.</p>
- <p class="c14">
- <span class="c13">When dropping an item, it is again
- created "as is" or with the required parent element structure to
- fit into the target hierarchy ΓÇô depending on the options in
- the</span>
- <u>Settings...</u>
- <span class="c13">dialog (see</span>
- <u>Pasting items</u>
- <span class="c13">for details).</span>
- </p>
- <p class="c1">If you need more fine-control over the insertion
- process, you can drag an item using the right mouse button (with or
- without the <Ctrl> key depending on whether you intend to
- move or copy the item). When you drop off an item using the right
- mouse button, a small menu appears that allows you to select
- exactly up to what level the parent elements should be created for
- the item:</p>
- <p class="c1">
- <img src="shots/dragdropchoice.gif" width="524" height="388"/>
- </p>
- <p class="c1">This way you can easily keep a document conforming to
- its DTD and furthermore save a lot of time which would normally be
- spent on creating elements within elements within elements.</p>
- </li>
- <li class="c17">
- <a name="_Toc441258508">Finding Text</a>
- </li>
- <li>
- <p class="c1">While any text editor will allow you to find a string
- inside a file, only XML Spy offers you the precision controls to
- find exactly what you are looking for. To quickly locate any text
- inside an XML file, the "Find" command on the "Edit" menu offers a
- multitude of options for specifying where the text should be
- located and what is to be considered a match.</p>
- <p class="c1">
- <img src="shots/find.gif" width="344" height="221"/>
- </p>
- <p class="c14">
- <span class="c13">You can restrict the search
- operation to certain types of entities and can specify whether you
- want to find matches in names, contents or both. Furthermore it is
- possible to search for the any item of a specified type (e.g. the
- first Processing instruction) by leaving the "Find what" field
- empty. The other options are familiar from most development tools
- and are explained in detail in the</span>
- <u>Reference</u>
- <span class="c13">section.</span>
- </p>
- <p class="c1">If the find window should ever obstruct the found
- item in the grid view, the find window will automatically be
- relocated to a different position on the screen, so that you can
- easily continue to search for further occurrences with the "Find
- Next" button.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258509"/>
- <span class="c16">Replacing Text</span>
- </li>
- </ol>
- <p class="c1">Sometimes the need arises to replace some or all
- occurrences of a certain word or phrase with another text. Again
- XML Spy offers many options for replacing the text.</p>
- <p class="c1">
- <img src="shots/replace.gif" width="344" height="238"/>
- </p>
- <p class="c1">As a security precaution the "Replace all" command
- shows each individual replacement operation in the grid view so
- that you can interrupt the operation by pressing <ESC>
- anytime. Furthermore, each replacement is recorded as one operation
- that can be undone individually.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258510"/>
- <span class="c15">Printing XML Files</span>
- </li>
- <li>
- <p class="c1">While XML documents are normally used for electronic
- distribution, sometimes there is still a need for producing a
- printed copy for meeting notes, documentation or other presentation
- purposes.</p>
- <p class="c1">To aid in this task, XML Spy offers several flags
- that can be set to control what is to be printed and in which
- form.</p>
- <p class="c1">
- <img src="shots/Print.gif" width="433" height="231"/>
- </p>
- <p class="c1">Each type of item can be turned on and off
- individually to select just what kind of information is to appear
- on the printed page. You can choose to print the element tree only
- or the whole contents of the file and you can expand all levels as
- necessary.</p>
- <p class="c1">Depending on your objective for the printout, you may
- split larger documents over several pages in order to glue them
- together to produce an impressive poster, or you can reduce the
- size of the printout to shrink the whole document down to exactly
- one page.</p>
- <p class="c1">To save the environment and preserve natural
- resources, XML Spy includes a "Preview" command right in the Print
- dialog that lets you view the final result before committing it to
- paper.</p>
- <p class="c1">
- <img src="file:///\\Melange/dfs/proj/akt/XML
- Spy/manual/shots/preview.gif" width="546" height="422"/>
- </p>
- <p class="c1">In this preview you can view any page in various zoom
- levels and directly print the document once you are satisfied with
- your results.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258511"/>
- <span class="c15">Editing DTD Files</span>
- </li>
- <li>
- <p class="c1">Document type definitions (DTDs) can be embedded
- inside XML documents or can be contained in external DTD files. XML
- Spy can edit DTDs in either place, but does not include support for
- structured display of element-type, attribute-list or other DTD
- declaration items. These are all, of course, checked for
- well-formedness according to the XML specification, but otherwise
- have to be edited as text.</p>
- <p class="c14">
- <span class="c13">Experimental support for editing
- full SGML-type DTDs is available separately for registered users.
- Please send an e-mail message to</span>
- <a href="mailto:support@xmlspy.com">support@xmlspy.com</a>
- <span class="c13">to request a grammar description file that accepts these
- extended DTDs.</span>
- </p>
- </li>
- <li class="c12">
- <a name="_Toc441258512"/>
- <span class="c15">Examples</span>
- </li>
- </ol>
- <p class="c1">We have now guided you through the main features of
- XML Spy. Included with the application are a couple of example
- documents to get you started with XML editing.</p>
- <p class="c14">
- <span class="c13">For further information, please
- refer to the following</span>
- <u>Reference</u>
- <span class="c13">section of this manual or send an e-mail message to</span>
- <a href="mailto:support@xmlspy.com">support@xmlspy.com</a>
- <span class="c13">.</span>
- </p>
- </li>
- <li class="c12">
- <a name="_Ref440644641"/>
- <a name="_Toc441258513"/>
- <span class="c10">Reference</span>
- </li>
- <li>
- <p class="c1">The reference section contains a complete description
- of all XML Spy commands and explains their use in general. We've
- tried to make this user manual as comprehensive as possible. In
- many cases, however, the operation of a command is rather
- self-evident so we've kept the description to a minimum in order to
- reduce the time required to study this documentation.</p>
- <p class="c14">
- <span class="c13">If you have questions which are
- not covered by this documentation and you are a registered user,
- please don't hesitate to contact us at</span>
- <a href="mailto:support@xmlspy.com">support@xmlspy.com</a>
- <span class="c13">.</span>
- </p>
- <ol>
- <li class="c12">
- <a name="_Toc441258514"/>
- <span class="c15">Toolbar</span>
- </li>
- </ol>
- </li>
- </ol>
- <div class="c5">
- <p class="c1">The XML Spy toolbar contains symbols for the most
- frequently used menu commands. For each symbol you'll get a brief
- "tool tip" explanation when the mouse cursor is directly over the
- item. You can also drag the toolbar from its standard position to
- any location on the screen, where it will be available as a
- floating palette window.</p>
- <p class="c1">
- <img src="shots/toolbar.gif" width="539" height="47"/>
- </p>
- <p class="c1">The commands available on the toolbar are (in order
- from left to right):</p>
- </div>
- <div class="c5">
- <ul>
- <li>
- <u>New</u>
- <span class="c13">Create a new XML file</span>
- </li>
- <li>
- <u>Open...</u>
- <span class="c13">Open an existing XML
- file</span>
- </li>
- <li>
- <u>Save</u>
- <span class="c13">Save current file</span>
- </li>
- <li>
- <u>Validate</u>
- <span class="c13">Check current file for
- well-formedness</span>
- </li>
- <li>
- <u>Print...</u>
- <span class="c13">Print current
- file</span>
- </li>
- <li>
- <u>Undo</u>
- <span class="c13">(multi-level) Undo last
- command</span>
- </li>
- <li>
- <u>Redo</u>
- <span class="c13">(multi-level) Redo the command
- last undone</span>
- </li>
- <li>
- <u>Cut</u>
- <span class="c13">Cut selected
- text/entities</span>
- </li>
- <li>
- <u>Copy</u>
- <span class="c13">Copy selected
- text/entities</span>
- </li>
- <li>
- <u>Paste</u>
- <span class="c13">Paste contents of
- clipboard</span>
- </li>
- <li>
- <u>Find...</u>
- <span class="c13">Find text</span>
- </li>
- <li>
- <u>Find Next</u>
- <span class="c13">Repeat last find
- command</span>
- </li>
- <li>
- <u>Replace...</u>
- <span class="c13">Replace text</span>
- </li>
- <li class="c12">Synchronize Synchronize tree and grid views</li>
- <li>
- <u>Expand</u>
- <span class="c13">Expand one level of selected
- entities</span>
- </li>
- <li>
- <u>Collapse</u>
- <span class="c13">Collapse selected
- entities</span>
- </li>
- <li>
- <u>Expand fully</u>
- <span class="c13">Expand all levels of
- selected entities</span>
- </li>
- <li>
- <u>Optimal widths</u>
- <span class="c13">Adjust column widths
- for optimal display</span>
- </li>
- <li>
- <u>Move left</u>
- <span class="c13">Move entity to the
- left</span>
- </li>
- <li>
- <u>Move right</u>
- <span class="c13">Move entity to the
- right</span>
- </li>
- <li>
- <u>Help</u>
- <span class="c13">Show "About" dialog</span>
- </li>
- </ul>
- </div>
- <div class="c5">
- <ol>
- <li class="c12">
- <a name="_Toc441258515"/>
- <span class="c15">Command Reference</span>
- </li>
- <li>
- <p class="c1">XML Spy supports all standard Windows commands on the
- "File" and "Edit" menus to enable the user to quickly exploit all
- capabilities of the program. Wherever appropriate, additional
- commands have been added to support special XML- or
- Internet-related features (such as opening documents directly from
- an URL).</p>
- <ol>
- <li class="c12">
- <a name="_Toc441258516"/>
- <span class="c16">File
- Menu</span>
- </li>
- <li>
- <p class="c1">The "File" menu contains all commands required to
- manipulate XML and DTD file in XML Spy. Furthermore a list of the
- nine most recently used files (MRUs) is kept on the "File" menu to
- facilitate the quick opening of frequently used documents in a
- project.</p>
- <p class="c1">
- <img src="shots/m_file.gif" width="227" height="372"/>
- </p>
- <p class="c1"> </p>
- <ol>
- <li class="c12">
- <a name="_Ref440646535"/>
- <span class="c25">New</span>
- </li>
- <li>
- <p class="c1">Creates a new empty XML document window. For your
- convenience the following XML version info tag is automatically
- inserted:</p>
- <p class="c24"><?XML version="1.0"
- encoding="ISO-8859-1"?></p>
- <p class="c1">This information can, of course, be edited or deleted
- later on.</p>
- </li>
- <li class="c23">New DTD</li>
- <li>
- <p class="c1">Creates a new empty document type definition window.
- While this command is here for the sake of completeness, we don't
- currently recommend that you create DTDs from scratch using XML
- Spy. Writing a DTD is a different form of art and there are tools
- coming from the SGML market that are (currently) more adept for
- this task.</p>
- <p class="c1">XML Spy lets you edit DTDs embedded in XML files as
- well as standalone DTD documents. This editing is, however,
- somewhat limited because most elements inside a DTD are displayed
- as text only. While they are, of course, checked for
- well-formedness, there is no user-interface support for comfortably
- creating attribute-lists, element declarations and other DTD
- items.</p>
- <p class="c1">If you register for XML Spy, we will, however,
- automatically keep you informed about both new product versions
- that can better handle DTDs and future offers.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646554"/>
- <span class="c25">Open...</span>
- </li>
- <li>
- <p class="c1">Opens an XML or DTD file from your PC. The familiar
- Windows "Open" dialog will appear and allow you to select one ore
- more files for editing.</p>
- <p class="c1">
- <img src="shots/OpenFile.gif" width="439" height="267"/>
- </p>
- <p class="c1">You can select which kind of files you want to be
- displayed in the dialog (XML, DTD or all files).</p>
- </li>
- <li class="c23">Open URL</li>
- <li>
- <p class="c1">If you don't have the required file on your hard
- disk, you can also open a document directly from a URL (uniform
- resource locator) address.</p>
- <p class="c1">
- <img src="shots/OpenURL.gif" width="477" height="119"/>
- </p>
- <p class="c1">Due to the nature of URLs it is not possible to
- detect the file type by looking at the extension. You will,
- therefore, have to specify if the targeted file is an XML or DTD
- document.</p>
- <p class="c1">To give you more control over the loading process,
- you can choose to load the file through the local cache or a proxy
- server (which will considerably speed up the time required for
- opening the file, if it has already been loaded before). Under
- other circumstances you may want to reload the file anew in every
- case (e.g. when you are working with an electronic publishing or
- database system and wish to view the life output from the software
- using XML Spy).</p>
- <p class="c1"> </p>
- </li>
- <li class="c23">Close</li>
- <li>
- <p class="c1">Closes the frontmost document. If the file has been
- modified (i.e. the window title show the file name with an asterisk
- [*] in the end), you will be asked if you wish to save the file
- first.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646570"/>
- <span class="c25">Save</span>
- </li>
- <li>
- <p class="c1">Saves the contents of the frontmost document window
- to the file it has been opened from. If the document has been
- opened from a URL, the "Save as..." dialog is presented
- instead.</p>
- <p class="c1">When saving a document, it is automatically checked
- for well-formedness, because all XML documents must be well-formed
- ΓÇô otherwise they could not be interpreted by any other XML
- application.</p>
- </li>
- <li class="c23">Save as...</li>
- <li>
- <p class="c1">Shows the familiar Windows "Save as..." dialog to ask
- for the name and location of the file that is to be saved. Then it
- proceeds to the Save operation as described above.</p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Ref440646606"/>
- <span class="c25">Print...</span>
- </li>
- </ol>
- </li>
- </ol>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">Bring up the "Print" dialog where you can adjust
- certain options to control what appears on the printed
- representation.</p>
- <p class="c1">
- <img src="shots/Print.gif" width="443" height="236"/>
- </p>
- </div>
- <ul>
- <li class="c12">In the "Types" area you can select what kind of
- items you wish to appear in the output. This allows you to hide
- comments as well as processing instructions or DTD items. For an
- explanation of the item types, please refer to the XML
- specification.</li>
- <li class="c12">In the "What" area you can choose to print the
- entire file or just the current selection.</li>
- <li class="c12">In the "Expand" area you can elect to print the
- document as it has been expanded on the screen, or to print the
- entire document with all child elements expanded fully.</li>
- <li class="c12">In the "Contents" area you can decide to print the
- contents of all elements in a document, or you may also print only
- those elements that form the hierarchical "tree" structure of the
- document. This should, however, not be confused with the tree view
- on the left side of each document window, wich is only used as a
- navigation aide on the screen and cannot be printed.</li>
- <li class="c12">In the "If contents is wider than page" area you
- can decide what to do if the document is larger than one page of
- paper.</li>
- <li>
- <ul>
- <li class="c26">The "Split pages" option will print the entire
- document in its regular size and split the contents on as many
- pages (both horizontally and vertically) as are required. These
- pages can later be glued together to form a huge poster of the
- document.</li>
- <li class="c26">The "First page" option is especially useful if you
- believe that your page is only a bit too narrow and that most of
- the important information is contained on the left side, anyway.
- This will result in a printed output that is split into pages
- vertically (as necessary), but will only print the first page
- horizontally so that the document is printed as one huge vertical
- strip.</li>
- <li class="c26">The "Shrink horizontally" option reduces the size
- of the printed output, until it fits on one page horizontally. The
- output may, however, still span several pages vertically and is
- split accordingly.</li>
- <li class="c26">The "Shrink both" option shrinks the document in
- both directions until it fits exactly on one sheet, thus making it
- useful for overviews.</li>
- </ul>
- </li>
- <li class="c12">The "Print" button prints the document with the
- selected options.</li>
- <li class="c12">The "Preview" button opens a print preview window
- that lets you view the final output before committing it to
- paper.</li>
- <li class="c12">The "Print Setup" button opens the "Print Setup"
- dialog and allows you to adjust the paper format, orientation, and
- other printer options for this print job only.</li>
- </ul>
- <p class="c1"> </p>
- <div class="c5">
- <ol>
- <li class="c23">Print Setup</li>
- <li>
- <p class="c1">Shows the printer-specific "Print Setup" dialog to
- allow setting the paper format, orientation, and other printer
- options for all further print jobs.</p>
- <p class="c1"> </p>
- </li>
- <li class="c23">Most recently used files (MRU)</li>
- <li>
- <p class="c1">Shows the file name and path information for the nine
- most recently used files so that they can be accessed more quickly
- and easily the next time XML Spy is started.</p>
- <p class="c1"> </p>
- </li>
- <li class="c23">Exit</li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">Closes all open windows ΓÇô asking to save their
- contents, if necessary ΓÇô and quits the XML Spy application
- program.</p>
- <p class="c1"> </p>
- </div>
- <div class="c5">
- <ol>
- <li class="c17">
- <a name="_Toc441258517">Edit Menu</a>
- </li>
- <li>
- <p class="c1">The "Edit" menu contains all necessary commands used
- for manipulating item text or XML items. The Cut, Copy, Paste,
- Delete and Select All commands can be applied while editing text as
- well as while operating on whole items or even selections of more
- than one item.</p>
- <p class="c14">
- <span class="c13">For a discussion of the clipboard
- contents in foreign applications and the parent element hierarchy
- upon pasting please refer to the sections Copying items and</span>
- <u>Pasting items</u>
- <span class="c13">.</span>
- </p>
- <p class="c1">
- <img src="shots/m_edit.gif" width="131" height="202"/>
- </p>
- <p class="c1"> </p>
- <ol>
- <li class="c12">
- <a name="_Ref440646618"/>
- <span class="c25">Undo</span>
- </li>
- <li>
- <p class="c1">XML Spy contains support for unlimited levels of
- Undo! Every action in XML Spy can be undone and it is possible to
- undo one command after another. The Undo history is even kept after
- using the "Save" command, so you can still go back to a state the
- document was in before you saved your changes.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646629"/>
- <span class="c25">Redo</span>
- </li>
- <li>
- <p class="c1">Until you don't apply any other new changes, the
- previously undone commands can also be redone again ΓÇô thereby
- giving you a complete history of the work you have completed. You
- can step back and forward through this history using the Undo and
- Redo commands.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646641"/>
- <span class="c25">Cut</span>
- </li>
- <li>
- <p class="c1">The Cut command copies the selected text or items to
- the clipboard and then deletes them from their present
- location.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646657"/>
- <span class="c25">Copy</span>
- </li>
- <li>
- <p class="c1">The Copy command copies the selected text or items to
- the clipboard.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646668"/>
- <span class="c25">Paste</span>
- </li>
- <li>
- <p class="c1">The Paste command inserts the contents of the
- clipboard at the current insertion point.</p>
- </li>
- <li class="c23">Delete</li>
- <li>
- <p class="c1">The Delete command removes the currently selected
- text or items without placing them on the Clipboard first.</p>
- </li>
- <li class="c23">Select All</li>
- <li>
- <p class="c1">The Select All command selects all the text of an
- item or all the items in an XML document so that forthcoming
- commands can operate on the entire text or document at once.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646678"/>
- <span class="c25">Find...</span>
- </li>
- </ol>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">The Find command allows you to quickly locate any
- occurrence of a text string in your XML document.</p>
- <p class="c1">
- <img src="shots/find.gif" width="453" height="287"/>
- </p>
- </div>
- <ul>
- <li class="c12">Enter the text to be searched for in the "Find
- what:" field. For your convenience the corresponding combo-box
- popup contains the last ten terms that have been searched for. You
- can also leave this field empty to search for any item of the
- specified type.</li>
- <li class="c12">In the "Types" area you can select what kind of
- items you wish to have included in the search. This allows you to
- e.g. skip comments as well as processing instructions or DTD items.
- For an explanation of the item types, please refer to the XML
- specification.</li>
- <li class="c12">In the "Search in" area you can specify whether you
- want to search for the specified text in the names of items, in
- their contents, or in both.</li>
- <li class="c12">In the "Settings" area you can choose to perform a
- case-sensitive search and to match the entered string as any part
- of an item or as the whole item only.</li>
- <li class="c12">In the "Where" area you may optionally restrict
- your search to the current selection.</li>
- <li class="c12">In the "Direction" area you can specify the
- direction of your search.</li>
- </ul>
- <p class="c1"> </p>
- <div class="c5">
- <ol>
- <li class="c12">
- <a name="_Ref440646704"/>
- <span class="c25">Find
- Next</span>
- </li>
- <li>
- <p class="c1">This repeats the last Find command to find the next
- occurrence of the requested text.</p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Ref440646718"/>
- <span class="c25">Replace...</span>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c14">
- <span class="c13">The Replace command features the
- same options as the</span>
- <u>Find...</u>
- <span class="c13">command
- and allows you to replace the found text by any other text string
- of your choice.</span>
- </p>
- <p class="c1">
- <img src="shots/replace.gif" width="453" height="314"/>
- </p>
- <p class="c1">You may replace each found item individually, or you
- can use the "Replace All" button to perform a global search and
- replace operation.</p>
- <p class="c1">As a security precaution the "Replace all" command
- shows each individual replacement operation in the grid view so
- that you can interrupt the operation by pressing <ESC>
- anytime. Furthermore, each replacement is recorded as one operation
- that can be undone individually.</p>
- <p class="c1"> </p>
- </div>
- <div class="c5">
- <ol>
- <li class="c17">
- <a name="_Toc441258518">XML Menu</a>
- </li>
- <li>
- <p class="c1">The XML menu contains all commands specific to the
- Extensible Markup Language (XML).</p>
- <p class="c1">
- <img src="shots/m_xml.gif" width="119" height="203"/>
- </p>
- <p class="c1"> </p>
- <ol>
- <li class="c23">Insert</li>
- <li>
- <p class="c1">Inserts a new item directly before the currently
- selected one. In case of an attribute, the new item may appear a
- few lines before the current item because all attributes must
- immediately follow their parent element.</p>
- </li>
- <li class="c23">Append</li>
- <li>
- <p class="c1">Appends a new item as the last item inside the parent
- of the currently selected item. This is handy whenever you want to
- add more than one item in sequence.</p>
- </li>
- <li class="c23">Add child</li>
- <li>
- <p class="c1">Adds a child item to the currently selected element.
- This is especially useful for adding attributes to an item or
- creating child elements.</p>
- </li>
- <li class="c23">Convert to</li>
- <li>
- <p class="c1">Converts an item to a different item type. Depending
- on the location of the item (not on its current kind), some or all
- options on the item type submenu may or may not be available. This
- operation can only be performed on one individual item, not on an
- element that contains many children.</p>
- <p class="c1">If the operation would result in the loss of data
- (e.g. converting an attribute to a comment looses the attribute
- name), a brief warning dialog will appear.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646795"/>
- <span class="c25">Move
- left</span>
- </li>
- <li>
- <p class="c1">Moves the current element to the left one level,
- thereby turning a child element into a sibling of its parent. This
- is also often referred to as the "Promote" command.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646806"/>
- <span class="c25">Move
- right</span>
- </li>
- <li>
- <p class="c1">Moves the current element to the right one level,
- thereby turning it into a child element to the element directly
- above. This is also often referred to as the "Demote" command.</p>
- </li>
- <li class="c23">View XML-Text</li>
- <li>
- <p class="c1">Opens a text editor window and views the entire file
- in its current state as XML text. This is especially useful if you
- want to check on the final XML output once in a while, or if you
- are still learning XML and would like to see how some construct
- looks in the final XML document.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646585"/>
- <span class="c25">Validate</span>
- </li>
- <li>
- <p class="c1">The "Validate" command checks the document for
- well-formedness. It does not ΓÇô in the strictest sense of the XML
- specification ΓÇô validate the document, because a "valid" XML
- document conforms to its DTD and XML Spy is by the very definition
- of it a non-validating XML editor. We could, however, think of no
- other possible simple title for this menu command and
- "Well-formedness Check" just didn't ring the bell....</p>
- </li>
- <li class="c12">
- <a name="_Ref441208407"/>
- <span class="c25">Settings...</span>
- </li>
- </ol>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">The Settings command allows you to adjust the global
- program setting in the following dialog:</p>
- <p class="c1">
- <img src="shots/settings.gif" width="456" height="244"/>
- </p>
- </div>
- <ul>
- <li class="c12">The window title for each document window can be
- shown using the file name only, or using the full path name.</li>
- <li class="c12">Line-break encoding in the document file can be
- preserved so that the same characters will be used that were found
- when opening the file. Alternatively you can elect to always encode
- line breaks in any of the three possible forms (CR&LF for PCs,
- CR for the MacOS, or LF for Unix).</li>
- <li>
- <span class="c13">If structure normalization is turned on, XML
- Spy will enforce several structure rules so that a document looks
- exactly the same when it is saved to disk and reopened. Please
- refer to</span>
- <u>Structure Normalization</u>
- <span class="c13">for further details.</span>
- </li>
- <li class="c12">You can choose the format in which data will be
- exported to foreign applications using the clipboard. If you select
- XML-Text the contents of the clipboard will be formatted and tagged
- just like the resulting XML file itself. The structured text mode
- attempts to format the clipboard contents as a table so that it can
- easily be used in a spreadsheet or database application. This
- option does, however, not effect the internal clipboard format that
- XML Spy uses for copying and pasting within the application
- itself.</li>
- <li class="c12">The Paste/Drop setting determines how an item will
- be created when pasted or dropped into a different location. You
- can choose to either create the new item as it is or you can let
- XML Spy automatically create the required element parent structure
- to match the location the item is being created in.</li>
- <li class="c12">The Font settings allow you to select the font
- being used for displaying text and keywords in the enhanced grid
- view. The same fonts are also being used for printing and
- consequently only TrueType fonts can be selected.</li>
- </ul>
- <div class="c5">
- <ol>
- <li class="c12">
- <a name="_Ref441428150"/>
- <span class="c25">Structure Normalization</span>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">In order to make sure that a document looks exactly
- the same after being saved and reopened, XML Spy performs several
- automatic "normalization" adjustments to its structure during
- editing:</p>
- </div>
- <ul>
- <li class="c12">An element that contains only text and one other
- item (e.g. an attribute) will automatically be converted from a
- hierarchical element to a plain element, whenever you happen to
- delete that one other item.</li>
- <li class="c12">If an element between two text items is deleted the
- text items are automatically being merged into one.</li>
- <li class="c12">Attributes are automatically inserted above all
- child elements.</li>
- <li>
- <span class="c13">The XML Declaration (</span>
- <span class="c27"><?xml version=....?></span>
- <span class="c13">) always
- is the first item in a file.</span>
- </li>
- <li>
- <span class="c13">The Document Type Declaration (</span>
- <span class="c27"><!DOCTYPE ....></span>
- <span class="c13">) always
- is located before the first element.</span>
- </li>
- </ul>
- <div class="c5">
- <p class="c14">
- <span class="c13">This automatic normalization
- process can be turned off in the</span>
- <u>Settings...</u>
- <span class="c13">dialog.</span>
- </p>
- </div>
- <div class="c5">
- <ol>
- <li class="c12">
- <a name="_Toc441258519"/>
- </li>
- <li class="c17">Item Type Submenu</li>
- <li>
- <p class="c1">When inserting, appending, adding a child, or
- converting an item, the item type submenu is shown when the mouse
- pointer hovers over the main command in the menu.</p>
- <p class="c1">
- <img src="shots/m_sub.gif" width="138" height="232"/>
- </p>
- <p class="c1">This menu allows you to choose what kind of item you
- wish to add to the document. For your convenience we have added
- several keyboard shortcuts for the most frequently used items on
- this menu. Depending on the current selection or insertion point,
- some or all choices may not be available in the menu and are
- displayed in gray.</p>
- <p class="c1">The items are grouped by their importance and typical
- frequency of use when editing documents. For an explanation of the
- various item types, please refer to the XML specification.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258520"/>
- <span class="c16">View
- Menu</span>
- </li>
- <li>
- <p class="c1">The "View" menu controls the display of the frontmost
- document window as well as certain global options.</p>
- <p class="c1">
- <img src="shots/m_view.gif" width="108" height="177"/>
- </p>
- <p class="c1"> </p>
- <ol>
- <li class="c23">Toggle Toolbar & Status Bar</li>
- <li>
- <p class="c1">If you are working with a small monitor and wish to
- use more screen real-estate for the contents of the document view,
- you may turn off the status bar and toolbar displays.</p>
- </li>
- <li class="c23">Startup screen</li>
- <li>
- <p class="c1">This allows you to turn off the startup screen with
- the XML Spy logo.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646734"/>
- <span class="c25">Synchronize</span>
- </li>
- <li>
- <p class="c1">To quickly locate an item in a larger document, the
- combination of tree and grid view can be very helpful in
- navigating. The "Synchronize" command allows you to quickly locate
- the selected item in the other view by opening the element
- hierarchy in the other view to exactly the same level and hiliting
- the selected item.</p>
- <p class="c1">As a shortcut you may also double-click on an element
- in the tree view to navigate to that very item in the enhanced grid
- view.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646751"/>
- <span class="c25">Expand</span>
- </li>
- <li>
- <p class="c1">Expands the selected element by one level. This
- command can be used in the tree and grid views and can also be used
- from the keyboard by using the + key on the numeric keypad.</p>
- <p class="c1">In the grid view the element and all its children
- remain selected after expansion. This allows you to repeatedly
- expand a large element one level after another by pressing the +
- key on the keyboard again and again.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646762"/>
- <span class="c25">Collapse</span>
- </li>
- <li>
- <p class="c1">Collapses the selected element in the tree or grid
- view. The ΓÇô key on the numeric keypad can be used as a shortcut for
- this command.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646772"/>
- <span class="c25">Expand fully</span>
- </li>
- <li>
- <p class="c1">Expands all child items of the selected element down
- to the last level of nesting. While this command does not have a
- keyboard shortcut, it is available on the toolbar and can also be
- achieved by repeatedly using the + key on the numeric keypad on an
- element in the grid view.</p>
- </li>
- <li class="c12">
- <a name="_Ref440646784"/>
- <span class="c25">Optimal widths</span>
- </li>
- </ol>
- <p class="c1">Adjusts the widths of all columns so that the text of
- the entire document comfortably fits into the designated columns.
- If you expand and collapse several elements, it can be helpful to
- again choose the "Optimal widths" command, because only those items
- visible through expansion are used when calculating the optimum
- column widths.</p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Toc441258521"/>
- <span class="c16">Window Menu</span>
- </li>
- <li>
- <p class="c1">To organize the individual document windows in an XML
- Spy session, the "Window" menu contains some standard commands that
- we are all familiar with from many other applications.</p>
- <p class="c1">
- <img src="shots/m_window.gif" width="113" height="133"/>
- </p>
- <p class="c1">You can cascade all open document windows, place them
- on the screen as tiles or arrange document icons once you have
- minimized them. Furthermore you can switch to each open window
- directly from the menu.</p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Toc441258522"/>
- <span class="c16">Mouse
- Menu</span>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">Whenever you right-click in the tree or enhanced grid
- views, you'll get a "mouse menu" that allows you to directly
- manipulate the currently selected entities.</p>
- <p class="c1"> </p>
- <p class="c1">
- <img src="shots/rightmouse.gif" width="133" height="237"/>
- </p>
- <p class="c1"> </p>
- <p class="c1">This menu contains the most frequently used commands
- from the "Edit", "View", and "XML" menus to let you modify entities
- in a document without having to move the mouse to the menu bar each
- time you select an entity in the display.</p>
- <p class="c1">The commands available on the mouse menu are
- explained in detail in the corresponding menu sections above.</p>
- </div>
- <ol>
- <li class="c12">
- <a name="_Toc441258523"/>
- <span class="c10">Background Information</span>
- </li>
- <li>
- <ol>
- <li>
- <a name="_Ref440565995"/>
- <a name="_Toc441258524"/>
- <span class="c15">Shareware Notice</span>
- </li>
- <li>
- <p class="c1">XML Spy is sold as shareware: you may download,
- install and evaluate the software for a period of up to 20 days
- free of charge. During this evaluation period the software will
- remind you every once in a while that it has not been registered
- yet.</p>
- <p class="c14">
- <span class="c13">If you find XML Spy useful and
- would like to continue using the program after the evaluation
- period, you have to register with Icon for the small fee of
- 39,-</span>
- <span class="c13">(Euro). You can register on-line
- using the "Order" button at</span>
- <a href="http://www.xmlspy.com/order/">http://www.xmlspy.com/order/</a>
- <span class="c13">.</span>
- </p>
- <p class="c1">As a registered user you are entitled to free
- technical support via e-mail and automatically will be notified of
- any updates or new versions. You will also get a substantial
- discount on the forthcoming commercial DTD-aware validating XML
- editor that Icon is planning to release in the future.</p>
- <p class="c1">If you want to share XML Spy with others, please make
- sure that only the installation program is ever distributed. It
- contains the application program, grammar description, sample
- files, and this online manual as well as a quick Read-Me file in
- one neat package.</p>
- <p class="c1">If you try to use an unregistered version of XML Spy
- after the end of the evaluation period, you will be asked to
- register upon every attempt to open or save a file. Furthermore the
- number of files you are allowed to open or save after the end of
- the evaluation period is limited to restrict abuse of unregistered
- versions of our software.</p>
- </li>
- <li class="c12">
- <a name="_Toc441258525"/>
- <span class="c15">About
- the authors</span>
- </li>
- </ol>
- </li>
- </ol>
- <div class="c5">
- <p class="c14">
- <span class="c13">XML Spy has been produced by Icon
- EDV Informations-Systeme GmbH, an independent software development
- and consulting company based in Vienna, Austria (EU). Icon offers
- custom Software, Hardware and CD-ROM solutions for the innovative
- information-technology products of tomorrow. Please visit our
- web-site at</span>
- <a href="http://www.icon-is.com/">http://www.icon-is.com</a>
- <span class="c13">for more
- information.</span>
- </p>
- <p class="c1">The development team for XML Spy is:</p>
- </div>
- <div class="c5">
- <ul>
- <li class="c12">Vladislav Gavrielov C++ Development</li>
- <li class="c12">Alexander Falk C++ Dev, Grammar, User Manual</li>
- <li class="c12">Thomas Kefer Software Quality Management</li>
- <li class="c12">Joachim Legat Graphic Design &
- Web-Development</li>
- </ul>
- </div>
- <div class="c5">
- <p class="c14">
- <span class="c13">For comments and suggestions about
- this product and for technical assistance (registered users only)
- please use the on-line support form at</span>
- <a href="http://www.xmlspy.com/supprt/">http://www.xmlspy.com/supprt/</a>
- <span class="c13">.</span>
- </p>
- </div>
- <div class="c5">
- <ol>
- <li class="c12">
- <a name="_Toc441258526"/>
- <span class="c15">XML
- Parsing</span>
- </li>
- <li>
- <p class="c1">When opening any XML or DTD file, XML Spy uses a
- parsing module called "Parso" to interpret the structure of the
- document. Parso is a very fast parser written in C++ that is
- entirely controlled by an EBNF-like grammar description file.
- Please refer to the file "grammar.txt" for an example of such a
- grammar description.</p>
- <p class="c14">
- <span class="c13">If you need to open and parse XML
- documents in you own application, or if you need to parse any other
- computer language (SQL, etc.) you can license the "Parso"
- source-code from Icon. Please visit</span>
- <a href="http://www.icon-is.com/parso/">http://www.icon-is.com/parso/</a>
- <span class="c13">for more details.</span>
- </p>
- <p class="c1"> </p>
- </li>
- <li class="c12">
- <a name="_Toc441258527"/>
- <span class="c15">OS
- & Memory Requirements</span>
- </li>
- <li>
- <p class="c1">XML Spy is a modern 32-bit Windows application that
- runs on Windows 95, 98 and NT. It assumes a fair amount of memory
- to be installed in the system, because it loads each document fully
- into memory. This is necessary in order to completely parse and
- analyze each document and also greatly improves the viewing and
- editing speed during normal work.</p>
- <p class="c1">While editing a small to medium sized document (up to
- 512kB) is possible in as little as 2MB of RAM, opening a 5MB
- document can consume up to 20MB during the initial parsing
- process.</p>
- <p class="c1">Memory requirements are also influenced by the
- unlimited Undo history. When repeatedly cutting and pasting large
- selections in huge documents, memory can rapidly be exhausted.</p>
- </li>
- <li class="c12">
- <a name="_Ref440650721"/>
- <a name="_Toc441258528"/>
- <span class="c15">Unicode Support</span>
- </li>
- </ol>
- </div>
- <div class="c5">
- <p class="c1">We apologize for the inconvenience, but the Shareware
- version of XML Spy does not include full Unicode support at this
- time. When opening an XML file, the encoding format is
- auto-detected by XML Spy according to the XML 1.0 recommendation,
- but any file in UCS-16 format will be rejected with an error
- message.</p>
- <p class="c1">Opening an UTF-8 encoded XML document is, however,
- possible ΓÇô although while editing the document, all characters that
- are encoded with more than one byte will be displayed with their
- respective encoding bytes as individual characters. Such a file can
- safely be edited and saved back as long as the multi-byte
- characters are not touched in any way.</p>
- </div>
- </manual>
- </user_manual>
-