Welcome to XML Spy

xml spy
Welcome to XML Spy
[Main] [Next]

XML Spy is the first true Integrated Development Environment (IDE) for the eXtensible Markup Language (XML) and contains many useful functions that can simplify typical XML editing tasks for you. This help system is provided to help you get started with using our software and provides detailed information on all aspects of the product.

It includes a Tutorial section that shows you how to use XML Spy for the major aspects of XML:

· | XML editing & validation
· | Schema/DTD editing & validation
· | XSL editing & transformation

The Reference section explains each window and menu command in detail and can easily be accessed through the Contents, Index and context-sensitive help (F1) from any menu or dialog.

You may also want to periodically check our XML Spy web-server for news, updates, and new examples:

Please note that we have completely rewritten the documentation for version 3.0 and you may therefore encounter an occasional error or, perhaps, some incomplete information while accessing the online help system or reading the printed documentation.

If this happens and you need help with XML Spy, please don't hesitate to visit our Support Center on the Internet, where you'll find additional links to the FAQ pages as well as our online Support Form. Also, please feel free to send us any feedback regarding the new documentation.

We will also be providing periodic free updates to the online help system and the printable documentation on the Download page on our web server.

© 2000 Icon Information-Systems


Getting started with XML

Getting started with XML
[Previous] [Main] [Next]

The eXtensible Markup Language (XML) is a subset of SGML that has been defined by the World Wide Web Consortium (W3C) in 1998 (see http://www.w3.org/TR/REC-xml). 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.

The XML Spy 3.0 online help and printable documentation contain a Tutorial section that helps you in getting started with XML using XML Spy by walking you through a couple of common XML, Schema, and XSL tasks.

To learn more about XML and its associated protocols, please do also visit our list of recommended links to various XML-related information resources on the XML Spy web server.


Tutorial

Tutorial

We apologize for the inconvenience, but so many customers have requested that we release the 3.0 version as soon as the software is ready, that we have decided to not wait for the completion of the new online help system and manual and instead publish the product once the software has passed our final release-level quality assurance testing.

We are still working on completing the new v3.0 documentation and the new Tutorial section is unfortunately not yet ready.

As a registered user, we will be contacting you as soon as the new online help system and printable manual are available and you will, of course, get a free update!


Overview

Overview

### to be provided soon ###


XML Editing

XML Editing

### to be provided soon ###


Schema Editing

Schema Editing

### to be provided soon ###


XSL Editing

XSL Editing

### to be provided soon ###


Project Management

Project Management

### to be provided soon ###


Reference

Reference

The reference section contains a complete description of all XML Spy windows and menu commands and explains their use in general.

We've tried to make this user manual as comprehensive as possible. If you have questions which are not covered by this documentation and you are a registered user, please don't hesitate to contact us through the Support Center on the XML Spy web site.


Windows

Windows

The XML Spy user interface provides several windows that show both your document, project and intelligent editing entry-helper windows that can be freely arranged to suit your personal working style.

The central area shows the main window, where you are editing your XML, Schema, or XSL documents using the enhanced grid view, text view, database/table view, or browser view.

To the left are the project and info windows, to the right are the entry helpers for intelligent editing of elements, attributes, and entities.


Main Window

Main Window

The Main Window is where you are viewing and editing all documents in XML Spy. Since XML Spy is a true Windows application, it allows you to open any number of XML documents simultaneously, so you may typically have more than one main window at any time.

If you are opening multiple documents, you can simply switch between them, by clicking on the any part of the window you wish to bring to the front. You can also use the commands on the Window menu to organize your windows. If your windows are maximized, you'll notice that XML Spy also provides convenient tabs to let you switch between all open document windows. You can also use the right mouse-button to get a context-menu when you click on one of the tabs (e.g. to close a window).

XML Spy provides four advanced views on your documents: an Enhanced Grid View for structured editing, a Database/Table view that shows repeated elements in a tabular fashion, a Text View with syntax-coloring for low-level work, and an integrated Browser View that supports both CSS and XSL style-sheets.

To switch any main window between the different views, you can use the commands on the View menu or the corresponding toolbar buttons. Please note, that you may often want to use different views for different windows, depending on the type of file you are working with (e.g. XSLT files are better suited for Text view, HTML files are typically displayed in the Browser view, etc.). You can set your personal default view on a per-file-type basis in the File Type page on the Settings dialog.


Text View

Text View

When it comes down to low-level work, the text view of XML Spy is ideally suited for XML editing in its textual or source form.

The text view can be used to edit any kind of text file (even non-XML conforming documents) and offers customizable syntax-coloring (including the ability to highlight server-side VBScript or JScript code in ASP pages) as well as an automatic display of the current line and character position in the status bar.

You can use the Find and Replace commands to quickly locate or change any information and XML Spy offers unlimited levels of Undo and Redo for all your editing operations.

Intelligent Editing

If you are working with an XML document that is based on a DTD or Schema, XML Spy provides you with various intelligent editing capabilities. As soon as you start typing the name of an XML element, attribute, or attribute value, you will get a popup window that shows all available choices and lets you quickly select the correct name using your mouse or the arrow keys on your keyboard. Simply hit the Return or Space key to accept the selected choice and close the popup window.

Auto-completion

With many other tools, editing in the text view can quickly result in unbalanced brackets, elements that are not closed properly, or other ugly violations of the well-formedness principle. XML Spy helps you in avoiding this disaster, by automatically completing the element as well as inserting all required attributes as soon as you complete entering the element name on your keyboard. The cursor is then positioned between the start and end tag of the element so that you can easily continue to add child elements or contents:

You can use the Check well-formedness command at any time during your editing session to ensure that the document meets the XML 1.0 Specification criteria for well-formedness. This check is also automatically performed every time you open or save a document.

Mouse & Context-Menu

You can, of course, also use the mouse for editing in the Text View. If you select any text, you can either use drag&drop to move the text block to a new location or you can use the context-menu on the right mouse button to directly access frequently used editing commands - such as Cut, Copy, Paste, Delete, Send by Mail, and Go to line/char:

While most customers prefer the enhanced grid or database/table views for every-day work on XML data files, the text view can occasionally be very handy when editing XSL files or if you are using Active Server Pages (ASP) or any other non-XML files in your web solution.


Enhanced Grid View

Enhanced Grid View

The enhanced grid view is the core presentation and editing view of XML Spy. It shows the hierarchical structure of any XML-compliant document through a set of nested containers that can be easily expanded and collapsed to get a clear picture of the document's tree-like structure.

All items 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 item (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.

Display & Navigating

The contents of such a hierarchical item 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.

Following the attributes, the remaining items within an element appear exactly in the order found in the file and can be rearranged without limitations using drag & drop.

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. The character data for any other element will be shown indented with the attributes and potential child elements and will be labeled as "Text".

If an element is collapsed, its attributes can be shown in the same line in a different color. This attribute preview is especially helpful, when editing XML documents that contain a huge number of elements of the same kind that only differ by their contents and attributes (e.g. database-like applications).

The grid view can easily be customized using the mouse to adjust column widths. To resize a column to the width of its largest entry, just double-click on the grid line to the right of that column. Furthermore the Optimal widths command 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.

In addition to moving about with the mouse, you can also use the keyboard for navigating through an XML document in the enhanced grid view. 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.

Editing

When you are working on an XML document that is based on a DTD or Schema, the Enhanced Grid View provides many Intelligent Editing features based on the information gathered from the Schema or DTD.

Whenever you are editing the name of an element or attribute, a popup menu is automatically displayed the shows the available options depending on the position of the element you are editing and the content model defined by the Schema or DTD.

A similar popup is displayed, if the contents of an element or attribute are restricted by an enumeration or choice of some sorts. In all cases you can simply continue to type in the name and XML Spy will automatically choose the best match from the menu, which you can accept by hitting the Return key.

At the same time you'll also notice that the various Entry Helpers are constantly updated depending on the current selection in the Enhanced Grid Views and the Info Window shows important background information regarding the selected element or attribute.

In addition to the commands available through menus and toolbars, the enhanced grid view also provides a context-menu that is activated by using the right mouse-button, which contains the most useful commands all in one convenient place:


Database/Table View

Database/Table View

In many kinds of XML documents you will encounter sequences of repeating elements of the same kind. XML Spy automatically detects such sequences and rearranges the presentation to show these elements in a tabular fashion that is a well-known paradigm from database- or spreadsheet-like applications.

XML Spy achieves this database/table view by taking the respective attributes and sub-elements of the repeating element and showing them as columns of the table

This database/table view is fully integrated with the enhanced grid view and you can switch between both presentation forms for each element at will. Editing in the table view is again supported using advanced drag&drop and intelligent editing functions and you can use certain table-specific commands to sort elements or insert new rows.

For easy data exchange with other applications, you can select elements in this table and simply copy/paste them directly into Access or Excel.

This feature does, of course, work both ways, so you can also easily copy data from any spreadsheet-like application into XML Spy.

For more complex data exchange tasks, XML Spy also offers a set of unique conversion functions that lets directly you import/export XML data from any text file, Word document or database.


Browser View

Browser View

You can use the integrated browser view of XML Spy to immediately preview any XML file with an XSL stylesheet, or you can view the output from an XSLT transformation to HTML.

If you are using XML Spy for XHTML editing or if you have an XSL stylesheet associated with your XML document, you can also show the browser view in a separate window, which allows you to take a look at the document source in the enhanced grid or text views and have the browser preview side-by-side, so that it can easily be refreshed directly from the editing view (just hit F5 in the editing view and the browser view is automatically updated).

The browser view also supports a find command and printing capabilities, which are especially useful when you want to document XML files that use CSS or XSL style-sheets, and offers the typical browser commands from both the Browser menu and toolbar: Back, Forward, Stop, Refresh.

The integrated browser view requires Microsoft Internet Explorer 5 to work and we highly recommend that you also download the MSXML3 technology preview if you intend to work with XSLT in XML Spy, because MSXML3 already supports most of the W3C XSLT Recommendation. Please see our FAQ on the Internet for more details.


Project Window

Project Window

XML Spy uses the familiar folder-tree paradigm that most people already know from Explorer or Visual Studio to manage multiple files or URLs in XML projects. Files and URLs can be grouped into folders by common extension or any arbitrary criteria to allow easy structuring and batch manipulation.

The folders can correspond to actual directories on your file system, or you can define file-type extensions for each folder so that common files are kept together in one convenient place. It is important to stress that the project folders are "semantic" folders that represents a logical grouping of files and do not necessarily need to correspond to any hierarchical organization of the files on your hard disk into several directories.

You can also assign different XSL transformation parameters to each folder and even have the same physical file be contained in more than one project folder - this is especially useful when you want to keep your data in one XML file and use different XSL stylesheets to produce different output (e.g. separate HTML and WML presentations).

Along similar lines, you may also want to assign different DTDs or Schemas to different folders thereby being able to alternatively validate a file against both a DTD and an XML Schema without changing the file itself, which is very useful when you are in the process of making the transition from DTD to Schema.

You can use the commands on the Project menu to manipulate your projects.


Entry Helper Windows

Entry Helper Windows

XML Spy 3.0 helps you in creating valid XML documents by providing three palette-like windows that we simply like to call "entry helpers".

When you are working on an XML document that is based on a DTD or Schema, the build-in Intelligent Editing module constantly displays information on elements, attributes, and entities that can be inserted in the current position based on the information gathered from the content model in the Schema or DTD.


Element Entry-Helper

Element Entry-Helper

The element entry helper allows you to quickly insert a new element into your document by showing what elements are permissible in the current location.

You can choose to append an element, insert it before the selected element or add a child-element to the selected one. Depending on this context, the entry helper will automatically adjust its list of available choices.

Required elements are automatically highlighted by an exclamation mark and elements that are allowed within the current parent element, but not at the position of the current selection are shown in gray.

By simply double-clicking on the desired item, the corresponding element is inserted into the XML document and the entry helper is automatically updated to reflect your new options.

Should you still manage to create a sequence of elements that violates the content model specified by your schema or DTD, the built-in incremental validating parser automatically detects this violation and displays its error message directly in the entry helper window.


Attribute Entry-Helper

Attribute Entry-Helper

To show you a list of available attributes for the element you are editing, the attribute entry helper is shown in a second palette-window and offers the same functionality as the element entry helper.

Mandatory attributes are automatically highlighted by an exclamation mark and attributes that are already present - and therefore can't be added a second time - are shown in gray.


Entity Entry-Helper

Entity Entry-Helper

If you are editing DTDs or documents based upon a DTD content-model (such as XHTML), the entity entry helper presents a list of defined entities or parameter entities that you can insert within your document.


Info Window

Info Window

In addition to the entry helper windows, XML Spy provides a handy information window that always shows the detailed information about the attribute or element that you are working on.

This does, of course, work in all three editing views and can be a tremendous help in conjunction with the xsd:annotation feature of the new XML Schema draft, which allows a schema author to include comments or documentation on the use of each individual element or attribute into the schema itself.


Menus

Menus

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 (e.g. such as opening documents directly from an URL).

In addition to the standard menus, XML Spy contains many XML-specific menus that cover the different aspects of XML editing tasks.


File Menu

File Menu

The File menu contains all commands relevant to manipulating files with XML Spy in the usual order common to most Windows software products.

In addition to the standard New, Open, Save, Print, Print Setup, and Exit commands, XML Spy offers special commands to open a document directly from a URL, reload a file that may have changed, switch the character-set encoding used by a file, and send a file by e-mail (only available, if a MAPI-compliant mail system, such as Microsoft Outlook, is installed).


New...

New...
[Previous] [Main] [Next]

The "New..." command is used to create a new document with XML Spy. You are presented a list of predefined document types that you can create:

Since XML is such a versatile and universal concept, there are many different kinds of XML documents that you can create and edit with XML Spy. If the document you want to create is not listed, you can simply select ".xml" and later change the extension when you save the file. You can also add new file types to this list using the File Type Settings dialog.

XML Spy contains built-in templates for most XML-based document types and will automatically provide you with a meaningful starting point instead of a totally empty file (e.g. a ".xhtml" file automatically includes the correct DOCTYPE reference to the XHTML DTD as well as an empty <html> element to start with).

If you did select a plain ".xml" file (typically a new XML instance document) in the above dialog, you can still provide XML Spy with a DTD or Schema that you want your new file to be based upon:

If you instead wish to start with a plain empty XML file, simply click the "Cancel" button in this dialog.

If you clicked on OK and the content model of the Schema or DTD contains more than one potential candidate for being a root element, XML Spy asks you to select a root element from the list of possible candidates:

The new document is then automatically created with this element as its document root.


Open...

Open...
[Previous] [Main] [Next]

Opens any XML-related document or text file from your PC. The familiar Windows "Open" dialog will appear and allow you to select one ore more files for editing.

You can select which kind of files you want to be displayed in the dialog (the list of available file types can be configured through the File Type page on the Settings dialog).

After the file has been read into memory, the character-set encoding used within the file will be auto-detected by XML Spy and the file decoded accordingly. If the actual character-set used to encode the file differs from the encoding-specification in the XML-declaration at the beginning of the file, an error message is displayed and the file is automatically opened using the correct encoding.

You may also get an error message if your file is either not well-formed or invalid and you have selected to perform automatic validation upon opening. In this case the document will be opened in the appropriate view, an error message popup will be displayed with the details about the error detected and the offending item will be highlighted in the window.

In such a case you can simply fix the error and click on the "Recheck" or "Revalidate" button to continue opening the file.

If you are using the Windows 95/98 version of XML Spy and have chosen to open a Unicode file, XML Spy has to convert the file to a Windows 98 code-page to be used for viewing and editing the file, because Windows 95/98 doesn't support Unicode on the operating system layer (for further information please see the Unicode chapter in the background information section). This is done automatically according to the settings you provide on the Encoding page of the Settings dialog.


Open URL...

Open URL...
[Previous] [Main] [Next]

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.

XML Spy will attempt to detect the file type by looking at the extension. You may, however, also explicitly specify if the targeted file is an XML or DTD document.

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).


Reload

Reload

If you are working with documents that you open through a URL and these documents are dynamically created, you may occasionally wish to reload the document from the URL. This is what the Reload command lets you do.

You will find that you rarely need to use this command when working on documents that are accessed as files on your local hard disk or through a network file server, because XML Spy automatically monitors all open files from changes made by other programs (or people) and automatically prompts you to reload such a file, if you have checked the corresponding box on the File page of the Settings dialog.


Encoding...

Encoding...
[Previous] [Main] [Next]

This lets you view the current encoding of a file and choose the encoding to be used for the current document the next time it is being saved to a file.

If you select a different encoding than the one in use before, the encoding-specification in the XML-declaration at the beginning of the file will automatically be adjusted accordingly. For 16-bit and 32-bit per character encodings (UTF-16, UCS-2, and UCS-4) you can also specify the byte-order to be used for the file.

Alternatively you can also simply enter the desired new encoding into the encoding-specification of the XML-declaration. When saving a document, XML Spy automatically checks the encoding-specification and brings up a dialog, if it cannot recognize the desired encoding name entered by the user.

If your document contains any characters that cannot be represented in the selected encoding, you will get a warning message as soon as you save your file.


Close

Close

Closes the frontmost document window. If the file has been modified (i.e. the window title shows the file name with an asterisk [*] in the end), you will be asked if you wish to save the file first.


Close All

Close All

Closes all open document windows. If any file has been modified (i.e. the window title shows the file name with an asterisk [*] in the end), you will be asked if you wish to save the file first.


Save

Save

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.

When saving a document from XML Spy, the file 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. Also the XML-Declaration is checked for an encoding specification and the encoding is applied to the document when writing out the file.

You can optionally have XML Spy automatically validate a document upon saving (this can be defined in the File page on the Settings dialog). If a validation error occurs, XML Spy will bring up a popup message with a detailed error explanation and will highlight the offending item. You can then choose to fix the problem or save the document as is. In the latter case you will be prompted to correct the error the next time you open the file with XML Spy.


Save As...

Save As...
[Previous] [Main] [Next]

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.


Save All

Save All

If you are frequently working with more than one document, you may find this command handy. It saves all modifications that have been made in any open window. If any document has never been saved before (e.g. after using the New command), the Save as... dialog is presented for that document.


Send by Mail...

Send by Mail...
[Previous] [Main] [Next]

If you are using a MAPI-compliant e-mail system, XML Spy lets you directly create mail messages from any file, group of files (in the Project window), or selection within a file.

If you choose to send an entire file or group of files, they are always included as an attachment to the mail message:

When you want to send a fragment of a file, you simply select the elements you wish to send in either Enhanced Grid View or Text View and XML Spy gives you the choice of either creating an attachment file that contains only your current selection or simply sending the selection as XML text in the contents of the mail message.

Also, when you send an URL (from the project window) you are prompted if you wish to first retrieve the actual document referred to by the URL and then send the file as an attachment, or if you wish to just include the URL so that the recipient of your message can access the document through the URL:


Print...

Print...
[Previous] [Main] [Next]

Bring up the "Print" dialog where you can adjust certain options to control what appears on the printed representation. Depending on the view mode this dialog will contain different items.

For the Enhanced Grid View you have these options:

· | 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.
· | In the "What" area you can choose to print the entire file or just the current selection.
· | 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.
· | 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, which is only used as a navigation aide on the screen and cannot be printed.
· | 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.
· | 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.
· | 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.
· | 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.
· | The "Shrink both" option shrinks the document in both directions until it fits exactly on one sheet, thus making it useful for overviews.
· | The "Print" button prints the document with the selected options.
· | The "Preview" button opens a print preview window that lets you view the final output before committing it to paper.
· | 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.

If you choose the Preview button, XML Spy will show a miniature image of the pages that are about to be printed:

You can navigate within the preview mode by means of the "Next Page" and "Prev Page" buttons or "Zoom In" to take a close look at some details. The "Print..." button lets you print the pages, whereas the "Close" button allows you to return to the previous dialog without starting the print process.


Print Setup...

Print Setup...
[Previous] [Main] [Next]

Shows the printer-specific "Print Setup" dialog to allow setting the paper format, orientation, and other printer options for all further print jobs.

This is an example using an HP LaserJet 4 printer attached to the parallel port (LPT1:).


Most Recently Used Files

Most Recently Used Files

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.


Exit

Exit

The exit command is used to quit XML Spy when you are finished working with your documents. If you have any open files with unsaved changes, XML Spy will automatically ask you to save those changes before actually terminating.

XML Spy also writes back any modifications you have made to the settings as well as information about the most recently used files and projects to the Registry, which can be a time consuming process that is indicated through a small progress window:


Edit Menu

Edit Menu

The Edit menu contains all commands relevant to editing operations within XML Spy in the usual order common to most Windows software products.

In addition to the standard Undo, Cut, Copy, Paste, Delete, Select All, Find, and Replace commands, XML Spy offers special commands to copy the selection to the clipboard as XML-Text, as structured text, or copy an XPath selector to the selected item to the clipboard.

All commands can be applied while editing text as well as while operating on whole items or even discontinuous selections of more than one item.

You can also edit the global Settings from this menu.


Undo

Undo

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.

Please note that when you have turned on dynamic syntax coloring updates in the Text View and your operating system is using RichEdit 2.0 (i.e. earlier versions of Windows 95/98 and Windows NT 4.0), you will see all syntax coloring changes as undoable operations. If this should turn out to be too disturbing for you, please update to RichEdit 3.0 or disable the dynamic syntax coloring update feature (for further information please see the background information on the RichEdit Component).


Redo

Redo

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.


Cut

Cut

The Cut command copies the selected text or items to the clipboard and then deletes them from their present location.


Copy

Copy

The Copy command copies the selected text or items to the clipboard. This can be used to duplicate data within XML Spy or to move data to another application.

Please note that XML Spy actually provides two different commands for copying elements to the clipboard in a textual form: Copy as XML-Text and Copy as Structured Text.

You can use the Edit tab on the Settings dialog to choose which operation should be performed when you use this command on the Edit menu or the Ctrl-C shortcut.


Paste

Paste

The Paste command inserts the contents of the clipboard at the current insertion point.


Delete

Delete

The Delete command removes the currently selected text or items without placing them on the Clipboard first.


Copy as XML-Text

Copy as XML-Text

While you are editing your document in Enhanced Grid View you may occasionally still want to copy some elements to the clipboard in their representation as XML-Text:

    <row>
        <para align="left">
            <bold>Check the FAQ</bold>
        </para>
        <para>
            <link mode="internal">
                <link_section>support</link_section>
                <link_subsection>faq30</link_subsection>
                <link_text>XML Spy 3.0 FAQ</link_text>
            </link>
            <link mode="internal">
                <link_section>support</link_section>
                <link_subsection>faq25</link_subsection>
                <link_text>XML Spy 2.5 FAQ</link_text>
            </link>
        </para>
    </row>

This command automatically formats the text on the clipboard according to same settings that are used when saving a file (these can be modified in the "Save File" section of the File page of the Settings dialog) and thus lets you exchange data easily with other products that allow data manipulation on the XML source layer.


Copy as Structured Text

Copy as Structured Text

While you are editing your document in Enhanced Grid View you may also sometimes want to copy elements to the clipboard as they appear on the screen. This can not only be used within XML Spy, but is also very useful to quickly transfer XML data to spreadsheet-like applications (e.g. Microsoft Excel) when used from the Database/Table View in XML Spy:

If you copy this table and switch over to Excel, this is what you'll get when you paste the information into a new spreadsheet:

Please note that this command very much depends on the way the information is currently laid out on the screen (i.e. if you are using the Database/Table View for certain repeated elements, or not). If you take the same XML data that served as an example in the description of the Copy as XML-Text command, this is what you'd be getting if you were to use this command on the data in Table View:

    row
        para
            align    bold    link
            left     Check the FAQ
                link
                    mode       link_section    link_subsection    link_text
                    internal   support         faq30              XML Spy 3.0 FAQ
                    internal   support         faq25              XML Spy 2.5 FAQ

Whereas the same information would be copied to the clipboard in the following format, if you were to use this command in the Enhanced Grid View with tables turned off:

    row
        para
            align    left
            bold     Check the FAQ
        para
            link
                mode              internal
                link_section      support
                link_subsection   faq30
                link_text         XML Spy 3.0 FAQ
            link
                mode              internal
                link_section      support
                link_subsection   faq25
                link_text         XML Spy 2.5 FAQ


Copy XPath

Copy XPath

When you are using XSLT it is very often necessary to enter so-called Selector strings that help in selecting an element or attribute from within another XML document. Such Selector strings are built according to the XPath definition and XML Spy helps you to easily create these XPath Selectors, by selecting the item you wish to address and choosing this command from the Edit menu.

This will copy the corresponding XPath Selector to the clipboard so that you can paste this into your XSLT documents or any other file that uses XPath.


Select All

Select All

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.


Find...

Find...
[Previous] [Main] [Next]

The Find command allows you to quickly locate any occurrence of a text string in your XML document. Depending on the view you are using, the Find command will have different options.

This is what the Find options in the Enhanced Grid View are:

· | 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.
· | 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.
· | 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.
· | 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.
· | In the "Where" area you may optionally restrict your search to the current selection.
· | In the "Direction" area you can specify the direction of your search.


Find next

Find next

This repeats the last Find command to find the next occurrence of the requested text.


Replace...

Replace...
[Previous] [Main] [Next]

The Replace command is only available in the text and enhanced grid views, features the same options as the respective Find... commands and allows you to replace the found text by any other text string of your choice.

You may replace each found item individually, or you can use the "Replace All" button to perform a global search and replace operation.

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.


Settings

Settings

The Settings command allows you to adjust the global program settings in a tabbed dialog. These settings will be remembered in the registry and apply to all current and future document windows.

For your convenience, an Apply button is available that lets you dynamically look at the changes you have made in the currently open document windows. Whenever you click the Apply button, the current settings are made permanent and you immediately see the effect in the background windows. This is especially useful when changing the font settings for the enhanced grid and source views.


File

File

The file settings define the way XML Spy handles opening and saving of documents. You will also find related settings in the Encoding tab.

· | You can choose to open an existing file or create a new file either in the enhanced grid view or in the text view. If you select the grid view, you can optionally show the tree structure, and automatically expand all lines at the same time.
· | If you are working in a multi-user environment, or if you are operating with files that are dynamically generated on a server, you may instruct XML Spy to watch for changes to the files that you are currently editing. XML Spy will then prompt you to reload the file, whenever a change is detected.
· | If you are using document type definitions (DTDs) or schemas to define the structure of your XML documents, you can automatically check the document for validity whenever it is opened or saved. XML Spy can also cache these files in memory to save any unnecessary reloading (e.g. when the Schema being referred to is accessed through a URL).
· | When you start XML Spy, you can optionally open the last-used project automatically.
· | Normally XML Spy will used TAB-characters (0x09) to indent the individual elements forming the structure of the XML document so that it will be easily recognizable when viewed with a regular text editor. In certain situation this may, however, been undesirable and can therefore be turned off. You can also selectively turn off output formatting for certain elements by specifying them in the list provided (this is e.g. necessary for xsl:attribute when you are editing XSL Stylesheets).
· | When saving an XML document, XML Spy includes a short comment <!-- Edited with XML Spy 3.0 http://www.xmlspy.com --> near the top of the file. This option can be turned off only by licensed users.
· | Line-breaks 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).


File types

File types

XML Spy allows you to edit all sorts of XML-related files and you can use this Settings page to customize the behavior of XML Spy on a per-file-type basis.

Choose any file type from the list on the left side to customize any of these functions for that particular file type:

· | You can modify the file type description and MIME-compliant content type that is used by the Windows Explorer and you can define, if you want XML Spy to be the default editor for this file type.
· | XML Spy lets you edit XML files as well as non-XML files and you must define the XML-Conformance setting for each new file type you add. Since XML allows for special grammar rules when dealing with external Document Type Definitions (DTDs) and external parsed entities, the exact grammar to be used can also be set here. You should not modify these settings unless you are adding a new file type and know exactly what you are doing.
· | For each file type you can define the default view to be used and you can define if the Enhanced Grid View should automatically build tables.
· | For certain non-XML files it may also be desirable to selectively turn off syntax-coloring for one particular file type.
· | If you are using partial XML-documents that are included in another file and cannot be validated individually, you can also turn off automatic validation per file type.
· | Some other XML tools may have problems understanding the short <Element/> form for empty elements defined in the XML 1.0 Specification. For your convenience you can instruct XML Spy to save elements in the longer (but nonetheless also valid) <Element></Element> form.

You can also add new file types or remove file types with the respective buttons provided near the bottom of this dialog page.


Editing

Editing

The editing settings define the behavior of the enhanced grid view when exchanging data with the clipboard and moving items using drag & drop.

· | While you are editing your documents, XML Spy will provide Intelligent Editing help based on your current selection. You can customize various aspects of the behavior of these entry helpers here.
· | 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.
· | You can also control, how XML Spy decides when to display repeating elements in the Table View.


View

View

The view settings let you customize some of the details of the presentation of XML documents in the four-view architecture of XML Spy.

· | For collapsed elements in the enhanced grid view you can choose to activate the attribute preview, which will show the attributes and their values in gray in the same line as the element.
· | XML Spy lets you automatically apply the Optimal Widths command while you are editing and lets you limit the maximum cell width and height.
· | The integrated Text View supports syntax-coloring, which can be updated dynamically as you are typing or can also optionally be disabled entirely.
· | For your convenience you can show the browser view in a separate window, which makes side-by-side placement of an editing view and the browser view possible.
· | If you frequently use XML Spy, you may want to turn off the splash screen upon program startup so that XML Spy can launch a couple milliseconds faster.
· | The window title for each document window can be shown using the file name only, or using the full path name.


Grid fonts

Grid fonts

The Grid Font settings allow you to customize the appearance of text in the enhanced grid view.

You can select the font face and size to be used for displaying the various items in the enhanced grid view. The same fonts are also being used for printing and consequently only TrueType fonts can be selected.

If you want to use the same font face or size for all items, you can enforce this by clicking on the appropriate check box.

The style and color can be set using the buttons on the right. The current settings are immediately reflected in the list so that you can easily preview the way your document is going to look.

In the Windows 95/98 version of XML Spy it is also possible to select a "Script" for some fonts. This is especially necessary when editing documents with a non-Roman writing systems. The script selected in the font settings dialog needs to match the character set code-page selected when opening a document (i.e. when editing a Cyrillic ISO-8859-5 document, the code-page being used to edit the file should be set to 1251 and the font script needs to be set to "Cyrillic").


Text fonts

Text fonts

A similar settings tab is available for adjusting the text display in the text view.

Again you can choose the font face, style and size, but this time the same font, style and size is always being used for all elements. Only the color can be adjusted individually to provide full customization of the syntax coloring option.

Setting the background color is only supported when RichEdit 3.0 is available on your system.


Colors

Colors

To customize the colors used by XML Spy, a similar settings tab is available for adjusting the display in the Table view.

In addition to the colors you define here, XML Spy will use the regular selection and menu color preferences you have set in the Display Settings on the Control Panel of your Windows installation.


Encoding

Encoding

The encoding settings specify the kind of character-set encoding to be used when creating new files as well as the encoding to be assumed when opening files that lack and encoding declaration.

· | The default encoding for new files can be pre-determined in the Settings dialog so that each new document is automatically created with a proper XML-declaration and includes the encoding-specification that you most commonly need. The encoding for existing files will, of course, always be remembered independently of this setting and can only be changed by the "Encoding" command on the "File" menu.
· | If a two- or four-byte encoding is selected as the default encoding (i.e. UTF-16, UCS-2, or UCS-4) you can also choose between little-endian and big-endian byte-ordering for the XML files.
· | You may also choose how an XML file is to be interpreted that is missing an encoding-specification and whose encoding also cannot be auto-detected. In most cases this will very likely be UTF-8 or ISO-8895-1, even though the XML specification theoretically only allows UTF-8 files to come without an encoding-specification.
· | Sometimes is can be convenient to also use XML Spy for editing non-XML files (such as Active Server Pages (ASP) or similar web-related document. Since these files do not contain any encoding statements, you must specify a default Windows CodePage to be used for accessing these files.


XSL

XSL

XML Spy includes full support for XSL Transformations and can either use the MSXML module or any external XSLT processor for this purpose.

If you are using Internet Explorer 5 (i.e. the MSXML module) for XSLT processing, you must specify, if the resulting output is to be generated as and XML-compliant document (such as XHTML or WML), or if you are generating non-XML text files.

If you are using an external XSL processor, you must specify a command-line string that is to be executed by XML Spy in order to initiate the XSL Transformation. In this case, please use the following variables to build your command-line string:

%1 | the XML instance document that is to be processed
%2 | the output file that is to be generated
%3 | the XSL Stylesheet to be used (optional, if the document contains an <?xsl-stylesheet ...?> reference

You can also choose to show the result of the external XSLT processor directly within XML Spy in a message box.

Please see the technical background information ons XSLT Processors for further details.


Project Menu

Project Menu

XML Spy uses the familiar folder-tree paradigm that most people already know from Explorer or Visual Studio to manage multiple files or URLs in XML projects. Files and URLs can be grouped into folders by common extension or any arbitrary criteria to allow easy structuring and batch manipulation.

Please see the description of the Project Window for a general introduction to the XML Spy project management.

Also note, that most project-related commands are also available on the context-menu that is available when you right-click on any item in the project window.


New Project

New Project

This lets you create a new project in XML Spy. If you are currently working with another project, the previous project is closed first.


Open Project...

Open Project...
[Previous] [Main] [Next]

This lets you open an existing project in XML Spy. If you are currently working with another project, the previous project is closed first.


Reload Project

Reload Project

If you are working in a multi-user environment, if can sometimes become necessary to reload the project from disk if another user has made changes to the project.

Also please note, that XML Spy project (.spp) files are actually XML documents that you can also edit just like any regular XML File using XML Spy. This is, however, not recommended and should only be attempted by advanced users!


Close Project

Close Project

Closes the active project. If the project has been modified (i.e. the project title is shown with an asterisk [*] in the end), you will be asked if you wish to save the project first.


Save Project

Save Project

Saves the current project.


Add Files to Project...

Add Files to Project...
[Previous] [Main] [Next]

Use this command to add files to any folder in your project. You can either select a single file or any group of files using the common Open dialog.

If you are adding files to the project itself, they will be distributed among the folders contained therein based on the File Type Extensions defined in the Project Properties of the respective folders.


Add URL to Project...

Add URL to Project...
[Previous] [Main] [Next]

XML Spy also allows you to add any URL to the project. Whenever a batch operation is performed on a URL or on a folder that contains a URL item, XML Spy will retrieve the document from the URL and perform the requested operation.


Add Active File to Project

Add Active File to Project

If you have just opened a file from your hard disk or through any URL, you can easily add the active file to the current project using this command.


Add Active And Related Files to Project

Add Active And Related Files to Project

When you are working on an XML document that is based on a DTD or Schema, XML Spy also lets you conveniently add both the XML document and all related files (e.g. the DTD and all external parsed entities referred to from there) to the current project.


Add Folder to Project...

Add Folder to Project...
[Previous] [Main] [Next]

Use this command to add a new folder to the current project. You can also access this from the context-menu that is available when you right-click on any folder in the project window.


Project Properties...

Project Properties...
[Previous] [Main] [Next]

The properties command lets you set important aspects for the individual folders in your project.

The File extensions you enter help to determine the automatic file-to-folder distribution that occurs when you add new files to the project itself (as opposed as to one particular folder).

You can define the DTD or Schema document that should be used for validation of all files in the folder.

You can define the XSL Stylesheet to be used for XSL Transformation of all files in the folder.

If you are developing XSL Stylesheets yourself, you can also assign an example XML document to be used to preview the XSL Stylesheet in response to an XSL Transformation command issued from the stylesheet document instead of the XML instance document.

For batch XSL Transformations you may also want to define an output directory that the resulting files should be put into.

If you have added one file or URL to more than one folder in your project, you can use the properties command to set the default folder, whose settings should be used when you choose to validate or transform the file in non-batch mode.


Most Recently Used Projects

Most Recently Used Projects

Shows the file name and path information for the nine most recently used projects so that they can be accessed more quickly and easily the next time XML Spy is started.

Also note, that XML Spy can automatically open the last project that you used, whenever you start XML Spy.


XML Menu

XML Menu

The XML menu contains all commands necessary for manipulating XML documents with XML Spy. You'll find operations to insert or append elements, modify the element hierarchy, and set a namespace prefix for items.

You can also check documents for well-formedness or validate them against any support Schema or DTD.


Insert

Insert

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.


Insert Attribute

Insert Attribute

Insert a new attribute before the selected item. If the current selection is any element other than the first element, the attribute is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert Element

Insert Element

Insert a new element before the selected item. If the current selection is an attribute, the new element is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert Text

Insert Text

Insert new text content before the selected item. If the current selection is an attribute, the text is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert CDATA

Insert CDATA

Insert a new CDATA block before the selected item. If the current selection is an attribute, the CDATA is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert Comment

Insert Comment

Insert new Comment before the selected item. If the current selection is an attribute, the Comment is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert XML

Insert XML

Insert new XML declaration <?xml version="1.0" encoding="UTF-8"?> before the selected item.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.


Insert Processing Instruction

Insert Processing Instruction

Insert a new Processing Instruction (PI) before the selected item. If the current selection is an attribute, the PI is still inserted before the first element to satisfy the well-formedness constraints of XML.


Insert DOCTYPE

Insert a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - before the selected item.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.

You may also want to use the Assign DTD command instead, which lets you quickly create a DOCTYPE statement that refers to an external DTD document.


Insert ExternalID

Insert ExternalID

Insert an external ID (SYSTEM or PUBLIC) into a DOCTYPE declaration before the selected item.


Insert ELEMENT

Insert ELEMENT

Insert an element declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.


Insert ATTLIST

Insert ATTLIST

Insert an attribute list declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.


Insert ENTITY

Insert ENTITY

Insert an entity declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.


Insert NOTATION

Insert NOTATION

Insert a notation declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.


Append

Append

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.


Append Attribute

Append Attribute

Append a new attribute after the last element within the same parent.


Append Element

Append Element

Append a new element after the last element within the same parent.


Append Text

Append Text

Append a new text content block after the last element within the same parent.


Append CDATA

Append CDATA

Append a new CDATA block after the last element within the same parent.


Append Comment

Append Comment

Append a new Comment after the last element within the same parent.


Append XML

Append XML

Inserts a new XML declaration <?xml version="1.0" encoding="UTF-8"?> as the first item in a document.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.


Append Processing Instruction

Append Processing Instruction

Append a new Processing Instruction (PI) after the last element within the same parent.


Append DOCTYPE

Append DOCTYPE

Append a new Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - after the last element within the same parent.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.


Append ExternalID

Append ExternalID

Append an external ID (SYSTEM or PUBLIC) in a DOCTYPE declaration after the last element of the same parent.


Append ELEMENT

Append ELEMENT

Append an element declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Append ATTLIST

Append ATTLIST

Append an attribute list declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Append ENTITY

Append ENTITY

Append an entity declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Append NOTATION

Append NOTATION

Append a notation declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Add Child

Add Child

Adds a child item to the currently selected element. This is especially useful for adding attributes to an item or creating child elements.


Add Child Attribute

Add Child Attribute

Insert a new attribute as a child of the selected item.


Add Child Element

Add Child Element

Insert a new element as a child of the selected item.


Add Child Text

Add Child Text

Insert new text content as a child of the selected item.


Add Child CDATA

Add Child CDATA

Insert a new CDATA block as a child of the selected item.


Add Child Comment

Add Child Comment

Insert new Comment as a child of the selected item.


Add Child XML

Add Child XML

Insert a new XML declaration <?xml version="1.0" encoding="UTF-8"?> as a child of the selected item.

Just kidding, since each XML document may only contain one XML declaration and since it must appear at the very top of the file, this command is only available, when you are actually looking at a totally empty file....


Add Child Processing Instruction

Add Child Processing Instruction

Insert a new Processing Instruction (PI) as a child of the selected item.


Add Child DOCTYPE

Add Child DOCTYPE

Insert a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - as a child of the selected item.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document and consequently this command is only available, if you are looking at a total empty file.


Add Child ExternalID

Add Child ExternalID

Insert an external ID (SYSTEM or PUBLIC) into a DOCTYPE declaration as a child of the selected item.


Add Child ELEMENT

Add Child ELEMENT

Insert an element declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.


Add Child ATTLIST

Add Child ATTLIST

Insert an attribute list declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.


Add Child ENTITY

Add Child ENTITY

Insert an entity declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.


Add Child NOTATION

Add Child NOTATION

Insert a notation declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.


Convert To

Convert To

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.

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.


Convert To Attribute

Convert To Attribute

Convert the selected item into a new attribute.


Convert To Element

Convert To Element

Convert the selected item into an element.


Convert To Text

Convert To Text

Convert the selected item into text content.


Convert To CDATA

Convert To CDATA

Convert the selected item into a CDATA block.


Convert To Comment

Convert To Comment

Convert the selected item into a Comment.


Convert To XML

Convert To XML

Convert the selected item to an XML declaration <?xml version="1.0" encoding="UTF-8"?>.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.


Convert To Processing Instruction

Convert To Processing Instruction

Convert the selected item to a new Processing Instruction (PI)


Convert To DOCTYPE

Convert To DOCTYPE

Convert the selected item to a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD).

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.


Convert To ExternalID

Convert To ExternalID

Convert the selected item to an external ID (SYSTEM or PUBLIC) in a DOCTYPE declaration.


Convert To ELEMENT

Convert To ELEMENT

Convert the selected item to an element declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Convert To ATTLIST

Convert To ATTLIST

Convert the selected item to an attribute list declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Convert To ENTITY

Convert To ENTITY

Convert the selected item to an entity declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Convert To NOTATION

Convert To NOTATION

Convert the selected item to a notation declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).


Move Left

Move Left

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.


Move Right

Move Right

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.


Enclose in Element

Enclose in Element

When you are editing textual data, it is often convenient to insert a new sub-element that contains some text, which is already present in the document. The Enclose in Element command lets you accomplish this with any text selection within another element. Once you select this command from the menu or toolbar, the currently selected text is cut from its parent element and inserted into a newly created child element.

If you are editing a document based on a Schema or DTD, you will automatically be presented with a list of valid choices for the kind of element you are allowed to insert in this position.


Check Well-Formedness

Check Well-Formedness

This command checks the document for well-formedness by the definitions of the XML 1.0 specification. Every XML document must be well-formed and therefore XML Spy also automatically checks for well-formedness whenever a document is opened, saved, or the view mode is switched from source to grid or browser.

If the well-formedness check succeeds, a brief message is displayed at the bottom of the main window:

If any error is encountered during the well-formedness check, the source of the problem is highlighted and a corresponding error message is shown:

Normally it is not permitted to save a mal-formed XML document, but XML Spy gives you a "Save anyway" option when the automatic well-formedness check upon saving fails. This can be useful, when you temporarily want to suspend your work and later resume it without being able to make the intermediate version of the file well-formed.

The Check well-formedness command normally operates on the frontmost main window, but you can also use the Check well-formedness command on any file, folder, or group of files in the active project window.


Validate

Validate

XML Spy can validate an XML document against the rules set forth in its Schema or Document Type Description (DTD) or it can validate any XML Schema or DTD against the rules set forth in the corresponding specification

XML Spy uses its built-in incremental validating parser that supports all major Schema dialects, such as DTD, DCD, XDR, XML-Data, BizTalk, and the new W3C XML Schema Definition Language (XSD) .

If the validation succeeds, a brief message is displayed at the bottom of the main window:

If any error is encountered during the validation, the source of the problem is highlighted and a corresponding error message is shown:

The Validate command also automatically includes a well-formedness check, so there is no need to first use the Check well-formedness command manually before validating a file.

Please note that you can use this command to validate XML instance documents and for validating XML schemas or DTDs.

This command normally operates on the frontmost main window, but you can also use the Validate command on any file, folder, or group of files in the active project window, where you can also define the Schema or DTD to validate with on a per-folder basis in the project properties.


Validate XML

Validate XML

When you are validating an XML document, XML Spy first tries to locate any reference to a supported schema dialect within the document. It then loads the corresponding schema or DTD into memory and uses its definitions to validate your XML instance document.

Once the Schema or DTD has been loaded into memory, XML Spy also provides you with intelligent editing functions in the Info Window and Entry-Helpers.

As long as your are keeping your XML instance document open, XML Spy will also keep the Schema or DTD in memory (see the Flush Memory Cache command on the DTD/Schema menu).


Validate Schema

Validate Schema

XML Spy supports all major Schema dialects, such as DTD, DCD, XDR, XML-Data, BizTalk, and the new W3C XML Schema Definition Language (XSD) and also lets you validate these schemas against their specification to make sure that they can be used for the creation, editing, and validation of XML instance document that are based on these schemata.


Update Entry-Helpers

Update Entry-Helpers

If you have modified the Schema or DTD that an open XML document is based on, it can sometimes become desirable to reload that Schema or DTD so that the intelligent editing information (such as the Entry-Helper and Info windows) presented in the XML document reflects your changes.

This is what the Update Entry-Helpers command does.


Namespace Prefix...

Namespace Prefix...
[Previous] [Main] [Next]

To make working with XML namespaces a bit easier, XML Spy provides a "Set Namespace" command that lets you set the namespace identifier for a group of selected elements (including their children).

You can choose to set the namespace prefix on either elements, attributes, or both - but do keep in mind that attributes normally don't need to have the same prefix as their parent elements, since attributes always inherit the element's namespace, if no prefix is given.


DTD/Schema Menu

DTD/Schema Menu

XML Spy 3.0 contains many commands that let you operate with Schemas and Document Type Definitions (DTDs) efficiently.

You can assign DTDs or Schemas to be used for validation with any XML instance document, you can generate a Schema from an example XML document (or from a group of files in the project window), you can convert between all major schema dialects, and XML Spy lets you quickly locate the definition of any element or attribute in the corresponding schema while you are editing your XML documents.


Assign DTD...

Assign DTD...
[Previous] [Main] [Next]

This command allows you to quickly assign a Document Type Definition (DTD) to an XML document that is to be used for Validation and intelligent editing.

It will open the common Assign File dialog to let you specify the DTD file you wish to assign and will insert the required DOCTYPE statement into your XML document:

<!DOCTYPE main SYSTEM "http://link.xmlspy.com/spyweb.dtd">


Assign Schema...

Assign Schema...
[Previous] [Main] [Next]

This command allows you to quickly assign a Schema to an XML document that is to be used for Validation and intelligent editing.

It will open the common Assign File dialog to let you specify the XSD, XDR, or BizTalk schema file you wish to assign and will insert the required namespace declaration attributes into your XML document:

xmlns="http://www.xmlspy.com/schemas/icon/orgchart"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xsi:schemaLocation="http://www.xmlspy.com/schemas/icon/orgchart http://schema.xmlspy.com/schemas/icon/orgchart.xsd"

The actual declarations generated by XML Spy depend on the Schema kind and - in case of the new W3C XML Schemas - also on the potential use of a targetNamespace in the Schema document.


Include another DTD...

Include another DTD...
[Previous] [Main] [Next]

This command allows you to quickly include another Document Type Definition (DTD) or external parsed entity either in the internal subset of a document type definition or in any DTD document. This is done by defining a corresponding external parsed entity declaration and using that entity in the following line:

<!ENTITY % navigation.dtd SYSTEM "S:\xml\navigation.dtd">
%navigation.dtd;

When you use this command, it will open the common Assign File dialog to let you specify the DTD file you wish to include in your DTD.


Go to DTD

Go to DTD

If your XML instance document is based on a certain Document Type Definition (DTD) you can use this command to quickly go to the corresponding DTD file.


Go to Schema

Go to Schema

If your XML instance document is based on a certain Schema you can use this command to quickly go to the corresponding Schema definition file.


Go to Definition

Go to Definition

While you are editing an XML document it can sometimes be very valuable to look up the exact definition of an element or attribute in the corresponding Document Type Definition or Schema document.

Simply select the item you are interested in and use this command to locate the corresponding definition in the defining DTD or Schema.


Generate DTD/Schema...

Generate DTD/Schema...
[Previous] [Main] [Next]

If you are defining a new schema or DTD it is often helpful to create a few example XML documents as a starting point. XML Spy then allows you to generate a new schema from this document (or from a set of documents in the project window) as a first step.

If you are targeting one of the modern schema kinds (e.g. XSD or BizTalk), XML Spy can automatically detect datatypes (such as date, time, number, uri, etc.) being used in your XML documents and create the corresponding restrictions in the schema.

XML Spy will also optionally detect typical enumeration scenarios, where an element or attribute can only contain items from a predefined list of values.

This command normally operates on the frontmost main window, but you can also use the Generate DTD/Schema command on any file, folder, or group of files in the active project window.


Convert DTD/Schema...

Convert DTD/Schema...
[Previous] [Main] [Next]

Especially in today's world of ever-changing schema versions it is important to have a tool at hand that can easily convert your content model between the various schema dialects.

Simply open your existing Schema or DTD and use this command to turn your DTDs into XML Schemas compliant with the new April 7, 2000 draft - or any other way round.


Flush Memory Cache

Flush Memory Cache

To speed up validation and intelligent editing, XML Spy caches all recently used DTD, external parsed entity, and Schema documents in memory. Information from these documents is also displayed, when you are using the Go to Definition command.

If memory is tight on your system, or if you have been using many different documents based on different schemas recently, you can use this command to flush all cached Schema and DTD documents from memory.


XSL Menu

XSL Menu

The eXtensible Stylesheet Language (XSL) and in particular the XSL Transformation (XSLT) lets you specify, how an XML document shall be converted into other XML documents or text files, such a HTML, XHTML, or WML pages.

XML Spy supports XSL and XSLT through both its intelligent editing features in the Text and Enhanced Grid Views as well as through a set of commands that lets you perform common XSL-related operations.

Please see the technical background information ons XSLT Processors for further details.


XSL Transformation

XSL Transformation

To perform an XSL Transformation of any XML document, XML Spy can either use the Microsoft-supplied MSXML module or you can specify any external XSLT processor in the XSL tab on the Settings dialog.

If your XML document contains a reference to an XSL stylesheet, which can be easily assigned using the Assign XSL command, this is automatically used by the XSLT transformation command. Alternatively you can also define the XSLT stylesheet to transform with on a per-folder basis in the project properties.

This command normally operates on the frontmost main window, but you can also use the XSL Transformation command in batch-processing mode on any file, folder, or group of files in the active project window.

Please see the technical background information ons XSLT Processors for further details.


Assign XSL...

Assign XSL...
[Previous] [Main] [Next]

This command allows you to quickly assign an XSL stylesheet to an XML document that is to be used for XSL Transformation or rendering by any XML-compatible browser.

It will open the common Assign File dialog to let you specify the XSL or XSLT file you wish to assign and will insert the required processing instruction into your XML document:

<?xml-stylesheet type="text/xsl" href="http://link.xmlspy.com/main.xsl"?>


Go to XSL

Go to XSL

If your XML document contains a reference to an XSL stylesheet, this command lets you quickly open the corresponding XSL or XSLT document.


Convert Menu

Convert Menu

XML Spy 3.0 contains several powerful data exchange functions on the Convert Menu that allow you to easily convert back and forth between text, word processing, databases, and XML files.


Import Text file...

Import Text file...
[Previous] [Main] [Next]

This command lets you import any structured text file into XML Spy and convert it to XML format immediately. This is especially useful when you want to import legacy data from older systems, because most software products support a text export interface of some sorts.

In order to convert the data into Unicode (which is the basis of all XML documents), you need to specify which character-set the file is encoded in. For US or Western European Windows systems this will most likely be Codepage 1252, which is also referred to as the ANSI encoding. If you are importing 16-bit or 32-bit Unicode (UCS-2, UTF-16, or UCS-4) files, you can also switch between little-endian and big-endian byte order.

To successfully import a text file, you need to specify the field delimiter that is used to separate columns or fields within the file. XML Spy will auto-detect common row separators (CR, LF, or CR+LF).

Some text files exported from legacy systems enclose textual values in quotes to better distinguish them from numeric values. If this is the case, XML Spy lets you specify what kind of quotes are being used in your file and will remove these quotes automatically when the data is imported.

It is also very common for such text files to contain the actual field names in the first row within the file. XML Spy gives you a checkbox so that you can automatically set your XML element or attribute names according to this information.

Click on the "Choose file" button to select a file to be imported. This file will be remembered the next time you enter this dialog again, so that you can easily change settings and reimport a file if the resulting XML file does not match your expectations.

Once you have selected the file to be imported, XML Spy will automatically give you a preview of the data contained in the file. Any change in the above options will be reflected in the preview immediately.

You can simply rename any field or column by clicking on its title to edit the name.

XML Spy also lets you choose, whether you wish to import a column as an attribute, element, or if you'd rather skip the column entirely. Simply click on the symbols to the left of the column titles to toggle between these three options.


Import Database data...

Import Database data...
[Previous] [Main] [Next]

The database import allows you to either select an existing Microsoft Access (i.e. Jet Engine) file or specify any ActiveX Data Object (ADO) data source (such as SQL Server, Oracle, or any other ODBC-conformant database).

Once you have selected your data source, you can either choose a database table to be imported from a list, or enter any arbitrary SELECT statement to create the record-set you intend to import.

When you have configured the data source you are about to import, click the Preview button to verify that this is indeed the correct data that you wish to import. Please note, that for security reasons, the OK button will only be enabled after you have actually previewed the data.

XML Spy also lets you choose, whether you wish to import a column as an attribute, element, or if you'd rather skip the column entirely. Simply click on the symbols to the left of the column titles to toggle between these three options.

XML Spy also lets you choose different representations for date and number formats - depending on whether you intend to use the resultant XML file in conjunction with the new unified datatypes proposed by the most recent XML Schema draft or if you want to keep those formats corresponding to the locale in use in your country.

If you need help in entering an ADO connection string, you can use the Build button, which brings up the ADO Data Link properties dialog:

Select the corresponding OLE DB Provider from the list and click on the Next button to enter the connection properties:

XML Spy relies on the ActiveX Data Object (ADO) interface for much of the basic database connectivity. ADO is included with Windows 2000 and Microsoft Office 2000, but you may need to install it if you are using an older version of Windows or Office. Please refer to our FAQ for more information on ADO and to download the Microsoft Data Access Components (MDAC) which allow you to upgrade to the latest ADO version. We can also recommend that you visit the Microsoft Universal Data Access site on the Internet.

After you have imported your data and converted it to XML format, you may also want to use the Schema Generation function to get all the datatype information you need from your database into your XML documents.


Import Microsoft Word document...

Import Microsoft Word document...
[Previous] [Main] [Next]

If you have Microsoft Word or Microsoft Office installed on your system (Version 97 or 2000 is required), you can directly import any Word document and convert it to XML format, if you have been using paragraph styles in Microsoft Word.

When you select this command, you can choose any existing Word file and XML Spy will automatically generate an XML document with included CSS stylesheet that represents each paragraph as an element, whose name is set to be the name of the corresponding paragraph style in Microsoft Word.


Export to Text files / Database...

Export to Text files / Database...
[Previous] [Main] [Next]

It may sometimes become necessary to export XML data into other formats for exchange with databases or legacy systems. Depending on the output data format required, you may either want to use XSLT Transformations or this Export command to export your XML data.

You will first need to tell XML Spy how you would like your exported data to be structured. Since XML is structured hierarchically and most database and legacy systems are using the relational model, XML Spy will help you in producing output that can be interpreted in a relational context.

You can choose to export the entire XML document or restrict your export to the currently selected element (and its children).

Depending on your XML data, you may want to export only elements, attributes, or the textual content of your elements into the fields common to structured text files or databases.

The list of available element types lets you choose which elements you wish to export and also shows you how many records and fields this will actually produce once the export operation is started.

XML Spy will then produce one output file or table for each element type selected and you can choose to automatically create primary/foreign key pairs to link your data in the relational model.

When you are done defining the scope of your export operation, click on one of the two target buttons to export your data to a set of text files or into any database.


Export Text File

Export Text File

If you are exporting your XML data to text files, you must specify the desired character-set encoding to be used and can also set the same options that are also available in the Import text file dialog.

The set of text files will be generated in the folder you specify and each file name will be generated form the corresponding element name. You can also specify the file extension to be used.


Export Database

Export Database

You can now specify whether you intend to create a new Microsoft Access (Jet Engine) database file, whether you would like to add the data to the tables in an existing Access file, or if you want to export the data to any other ADO-compliant database system (such as SQL Server or Oracle).

The Build button again lets you create the necessary ADO connection string - for more information please refer to the information on ADO in the description of the Import Database command.


Table Menu

Table Menu

The Table menu contains all commands relevant to the Database/Table View in XML Spy.


Display as Table

Display as Table

XML Spy lets you alternatively view repeated elements in the regular Enhanced Grid View or in the new Database/Table View:

If you select the first element of any sequence of repeated elements, you can use this command to display the elements in a tabular fashion. This will effectively break out all attributes and sub-elements and show them as columns in a way similar to any spreadsheet- or database-like application.


Insert Row

Insert Row

If you are displaying repeated elements in the Database/Table View, you can add new items conveniently by using the Insert Row command. This will insert a new row (i.e. a new element) before the currently selected row.


Append Row

Append Row

If you are displaying repeated elements in the Database/Table View, you can add new items conveniently by using the Append Row command. This will add a new row (i.e. a new element) at the end of the table.


Ascending Sort

Ascending Sort

If you are displaying repeated elements in the Database/Table View, XML Spy lets you sort these elements by any column (i.e. by any attribute or sub-element).

XML Spy will automatically try to determine, what kind of data you are using in the selected column and choose an alphabetic or numeric sort method accordingly. However, if XML Spy is not sure which sort order to prefer, it will present this dialog to ask for your input:


Descending Sort

Descending Sort

If you are displaying repeated elements in the Database/Table View, XML Spy lets you sort these elements by any column (i.e. by any attribute or sub-element).

XML Spy will automatically try to determine, what kind of data you are using in the selected column and choose an alphabetic or numeric sort method accordingly. However, if XML Spy is not sure which sort order to prefer, it will present this dialog to ask for your input:


View Menu

View Menu

The View menu controls the display of the frontmost Main window and allows you to manipulate the way that XML Spy displays your information.


Enhanced Grid View

Enhanced Grid View

Switches the current document into Enhanced Grid View. This view includes an (optional) tree and structured grid display and is the preferred view for editing XML documents. If the previous view was the Text View, the document is automatically checked for well-formedness.

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.


Text View

Text View

Switches the current document into Text View. This view allows you to edit the XML source in a source-code fashion and includes syntax-coloring. If the previous view was the Enhanced Grid View, the document is automatically formatted according to same settings that are used when saving a file (these can be modified in the "Save File" section of the File page of the Settings dialog).

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.


Browser View

Browser View

Switches the current document into Browser View. This view uses an XML-enabled browser (preferably Internet Explorer 5) to render the XML document using information from potential CSS or XSL style-sheets. When switching to browser view, the document is checked for validity first, if you have selected to automatically perform validation upon saving.

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.


Synchronize

Synchronize

To quickly locate an item in a larger document, the combination of tree and grid in the Enhanced Grid View can be very helpful in navigating. The "Synchronize" command allows you to quickly locate the selected item in the tree or grid by opening the element hierarchy in the other one to exactly the same level and highlighting the selected item.

As a shortcut you may also double-click on an element in the tree to navigate to that very item in the grid.


Expand

Expand

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.

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.

You can also expand and collapse any element by clicking on the gray bar to the left of each element.


Collapse

Collapse

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.

You can also expand and collapse any element by clicking on the gray bar to the left of each element.


Expand fully

Expand fully

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 to expand the item one level after the other.


Collapse unselected

Collapse unselected

Sometimes it can be necessary to focus on one element and its children and ignore all the other surrounding elements. This is what the collapse unselected command lets you do!

Simply select the item that you want to work with and choose this command to collapse all other (unselected) elements.


Optimal widths

Optimal widths

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.


Go to line/char...

Go to line/char...
[Previous] [Main] [Next]

If you are working with an external XSLT processor (see the XSL page on the Settings dialog for details) you may often get error messages by line number and character position. XML Spy lets you quickly navigate to that spot by using this command:

This command works in both the Text View and Enhanced Grid View, but will only be able to show an approximate position in the grid view by highlighting the element closest to the character position specified.


Go to File

Go to File

It is often convenient to open another document in XML Spy that is being referred to from within the file you are currently editing. This is what the "Go to File" command will let you do.

All you need to do is select the file name, path name, or URL you are interested in and choose this command from the View menu.

You can either select an entire element or attribute in the Enhanced Grid View, or you can select some characters from within any item in the Text or Enhanced Grid Views. If you cursor is position between quotes, XML Spy will automatically use the entire string that is actually enclosed by the quotes.


Browser Menu

Browser Menu

This menu contains commands that are only available in the Browser View of an XML document.


Back

Back

Go back to the previously displayed page. This can be useful if you accidentally click on a link in your XML document and want to return to it.


Forward

Forward

Once you have used the Back command, you can later decide to go forward again, which simply follows the last link you have clicked on.


Stop

Stop

Instructs the browser to stop loading your document. This can be useful if large external files or graphics would be loaded over a slow Internet connection.


Refresh

Refresh

Updates the Browser View by reloading the XML document and potential external CSS or XSL style-sheets as well as DTDs. You can also use the F5 key to trigger this command.


Fonts

Fonts

Let's you choose the default font site for rendering the text of your XML document. This is similar to the Font-Size command in most browsers.


Separate Window

Separate Window

Sometimes it can be convenient to see the document side-by-side in a browser and editing (i.e. text or enhanced grid) view. This command lets you open the browser view in a separate window so that side-by-side viewing is possible.

If you have separated the browser view, you can now press F5 in the editing view to automatically refresh the corresponding browser view.


Window Menu

Window Menu

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.

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 easily toggle the various additional windows (such as Project, Info, or Entry-Helpers) or switch to each open document window directly from the menu.


Cascade

Cascade

This command rearranges all open document windows so that they are all cascaded (i.e. staggered) on top of each other.


Tile horizontally

Tile horizontally

This command rearranges all open document windows so that they are all visible at the same time and the main window area is tiled horizontally.


Tile vertically

Tile vertically

This command rearranges all open document windows so that they are all visible at the same time and the main window area is tiled vertically.


Project Window

Project Window

This command lets you quickly toggle the state of the Project Window.


Info Window

Info Window

This command lets you quickly toggle the state of the Info Window.


Entry Helpers

Entry Helpers

This command lets you quickly toggle the state of all three Entry-Helper Windows.


All on/off

All on/off

This command lets you toggle the state of all additional windows:

· | the Project Window
· | the Info Window
· | the three Entry-Helper Windows

This is very useful if you want to quickly hide all non-document windows to get more screen real-estate for viewing the actual document you are working on.


Customize Toolbars...

Customize Toolbars...
[Previous] [Main] [Next]

The customization feature of XML Spy lets you define your toolbars, create new toolbars, and assign all major commands to these toolbars to suit your personal editing style.

Use the Toolbars tab to define or modify the list of toolbars you would like to have. The New... button creates a new empty toolbar that you can then populate using the Commands tab. The Reset button allows you to return each toolbar to its predefined state.

The Commands tab lets you assign commands to toolbars by simply dragging the available command buttons to the toolbars on your screen. You can select commands from many different categories and will always see a short description of each command in the dialog.

To remove a button from a toolbar, simply drag the button back to the customize dialog.


Currently open window list

Currently open window list

This list shows all currently open windows and lets you quickly switch between them. You can also use the Ctrl-TAB keyboard shortcut to cycle through all open windows.


Help Menu

Help Menu

The Help menu contains all commands required to get help or more information on our product as well as links to information and support pages on our web server.

In addition the Help menu contains the Registration dialog, which lets you enter your license key-code once you have purchased the product.


XML Spy Help

XML Spy Help

XML Spy 3.0 includes a context-sensitive online help system that is based on the Microsoft HTML Help Viewer and lets you directly access information on each menu command, dialog and window from within XML Spy.

You can simply press the "F1" button on your keyboard anytime to access the context-sensitive help information for the currently open dialog or you can press "F1" while you are browsing through the menus with your mouse.

At the same time, all dialogs include a little question mark (?) symbol on the right-hand side in their window title bar. Simply click on this symbol to access the context-sensitive help topic for that dialog.

If you would like to learn more about any topic, you can also use the Table of contents and Index commands on the Help menu or search through the entire text of the electronic documentation using the Search command.


Table of contents...

Table of contents...
[Previous] [Main] [Next]

The table of contents is displayed on the left-hand side of the help window and shows a hierarchical representation of all the chapters and topics contained in the online help system. You can use this command to jump to the table of contents directly from within XML Spy.

Once the help window is already open, you can use the three leftmost tabs above the this area of the help window to toggle between the table of contents, index, and search panes. The Favorites tab also lets you bookmark certain pages within the help system.


Index...

Index...
[Previous] [Main] [Next]

If you are looking for specific information on a certain topic, you can access the keyword index of the XML Spy 3.0 Online Help using the Index command from within XML Spy or using the Index tab within the left pane of the online help system.

The index lists all relevant keywords and lets you quickly jump to a topic by double-clicking the respective keyword. If more than one topic match the selected keyword, you are presented a list of available topics to choose from:


Search...

Search...
[Previous] [Main] [Next]

The Search command lets you perform a full-text search on the entire text of the electronic documentation for fast access to all the information available in the online help system.

Once you enter your search term into the query field and hit the Return key on your keyboard, the online help system displays a list of available topics that contain the search term you've entered. Simply double-click on any item in the list to display the corresponding topic.


Registration...

Registration...
[Previous] [Main] [Next]

When you start XML Spy for the first time, you are automatically presented the Registration dialog, which lets you register your software product in order to be eligible for technical support and activate your license, which is done by entering a unique key-code to unlock the software.

FREE Evaluation Version

If you have just downloaded the XML Spy from our web server and would like to activate your FREE 30-day evaluation version, please enter your name, company, and e-mail address and click on the "Request FREE evaluation key..." button. XML Spy then uses your Internet connection to transmit the information you have just entered to our web server, where a personal unique evaluation license will be generated for you. The license key-code, which is necessary to unlock your software, will then be sent to the e-mail address you have entered - it is therefore important, that you enter your real e-mail address in the registration dialog!

Once you have clicked the request button, please go to your favorite mail software and retrieve the license key-code from our e-mail message, which you should be receiving in a matter of a few minutes (depending on transient Internet conditions).

If you have requested a key-code and it didn't arrive in time, the process may have failed due to Firewall restrictions in your network. If this is the case, please send a short message with your information via e-mail to evaluate@xmlspy.com and our support staff will generate a key-code for you manually.

When you have received your evaluation key-code, please enter it into the key-code field in the registration dialog and click on OK to start working with XML Spy.

Whenever you want to place an order for a licensed version of XML Spy, you can also use the "Order license key..." button in the registration dialog or the Order form menu command to proceed to the Secure XML Spy Online Shop on the Internet.

Licensed Version

If you have purchased a single-user license for XML Spy, you will receive an e-mail message from us that contains your license-data and includes your name, company and key-code. Please make sure that you enter all fields from your license e-mail into the registration dialog. The key-code will only be able to unlock your software installation, if the values in the name and company fields match the name and company entered into our order form.

If your company has purchased a multi-user license for XML Spy, you will receive an e-mail message from us that contains your license-data and includes your company name and key-code. Please make sure that you enter the company name and key-code from your license e-mail into the registration dialog and also enter your personal name into the name field. The key-code will only be able to unlock your software installation, if the value in the company field match the company name entered into our order form.

Please note that the XML Spy License-Agreement does not allow you to install more than the licensed number of copies of XML Spy on the computers in your organization (per-seat license).


XML Spy on the Internet...

XML Spy on the Internet...
[Previous] [Main] [Next]

This takes you directly to the XML Spy web-server http://www.xmlspy.com where you can find out about news, product updates and additional offers from the XML Spy team.


Order form...

Order form...
[Previous] [Main] [Next]

Whenever you want to place an order for a licensed version of XML Spy, you can use this menu command or the "Order license key..." button in the registration dialog to proceed to the Secure XML Spy Online Shop on the Internet, where you can choose between different single- and multi-user license packs.

Once you have placed your order, you can choose to pay by credit card, send a cheque by mail, or use a bank wire transfer.


Support Center...

Support Center...
[Previous] [Main] [Next]

If you have any questions regarding our product, please feel free to use this command to come to our support center on the Internet at any time. This is the place where you'll find links to the FAQ, support form, and e-mail addresses for contacting our support staff directly.


FAQ...

FAQ...
[Previous] [Main] [Next]

To help you in getting the best support possible, we are providing a list of Frequently Asked Questions (FAQ) on the Internet, that is constantly updated as our support staff encounters new issues that are raised by our customers.

Please make sure to check the FAQ before contacting our technical support team. This will allow you to get help more quickly and at the same time help us keep our support staff available for real support incidents.

We regret that we are not able to offer technical support by phone at this time, but our support staff will typically answer your e-mail incidents within one business day.

If you would like to make a feature suggestion for a future version of XML Spy or if you wish to send us any other general feedback, please use the questionnaire form.


Questionnaire...

Questionnaire...
[Previous] [Main] [Next]

You can help us improve our product by filling in this questionnaire form on the Internet to tell us what you like and what additional features you want to see in a future release of XML Spy.

Before filling in the questionnaire to suggest a new feature, please make sure that you have checked the Search command of our online help system to make sure that you haven't simply overlooked a feature that is already present in the new 3.0 version.


Printable manual...

Printable manual...
[Previous] [Main] [Next]

If you prefer a printed manual over the online help system (or if you'd like to have it in addition to the online help), you can always download the full documentation in Adobe Acrobat PDF format from our web server (requires the Adobe Acrobat Reader software, which you can download for free from the Adobe web server) and print it out to your favorite printer.


Japanese distributor...

Japanese distributor...
[Previous] [Main] [Next]

If you are located in Japan, you may prefer to contact our Japanese distributor on the Internet by using this menu command.


About XML Spy...

About XML Spy...
[Previous] [Main] [Next]

This command shows the XML Spy splash screen and copyright information dialog, which includes the XML Spy logo.

Please note that this dialog always shows the version number 3.0 - to find the number of the actual build you are using, please look at the status bar, which always includes the full version and build number.


Toolbars

Toolbars

The XML Spy toolbars 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 and the status bar shows a more detailed description of the command.

You can also drag the toolbars from their standard position to any location on the screen, where they will be available as a floating palette window. Alternatively you can also dock them to the left or right edge of the main XML Spy window.

Please note that XML Spy 3.0 lets you fully customize all toolbars to assign any frequently used command to a button.


Dialogs

Dialogs

Most dialogs in XML Spy are shown in response to a certain menu command or click on a toolbar button and are, therefore, explained in the individual chapters that describe the respective commands.

This chapter talks about common dialogs, that are used by more than one command.


Assign File

Assign File

The Assign File dialog is presented by the Assign DTD, Assign Schema, or Assign XSL commands and asks you for a file or path name to be used for the requested process:

You can either enter a path name into the text box, select from a list of most recently used filenames using the drop-down arrow to open a combobox, you can browse for a file on your computer (using the common Open dialog), or you can use the Window button to select any currently open window or any file that is part of the current project.


Select File

Select File

The Select File dialog lets you choose any currently open window or any file from your current project as a convenient way to locate a file to be used for the various Assign commands.

Both file lists will only show available files based on their extensions and the corresponding command that this dialog was opened from: Assign DTD, Assign Schema, or Assign XSL.


Internet Links

Internet Links

For your convenience we are providing many services through our web site, which you can directly access from the Help Menu within XML Spy or through this help system.

Please visit our XML Spy Home Page frequently to learn about product updates, news, and other XML related information.

The Support Center shows available support options that you can access freely as a registered user.

The FAQ contains a collection of frequently asked questions and their answers. Please make sure that you check this resource, before submitting a new incident to our technical support staff.

Please fill in the Questionnaire to provide us with valuable feedback on how we can further improve our product or what additional features you'd like to see in a future version.

If you have been using the evaluation version and want to buy the fully licensed product, or if you need to purchase additional license for your colleagues, please visit our Order Pages to access our secure online shop.


Technical Background Information

Technical Background Information

This chapter contains useful background information on the technical aspects of XML Spy. If you run across a technical term in the remainder of this help system you may occasionally find a link to some of the background materials provided here.


XML Parser

XML Parser

When opening any XML document, XML Spy uses its new built-in incremental validating parser to both check the document for well-formedness and validate it against any specified DTD, DCD, XDR, BizTalk, or XSD Schema.

The same parser is also being used while editing a document that refers to a DTD, DCD, XDR, BizTalk, or XSD Schema to provide intelligent editing help and immediately display any validation error that is encountered.

This is possible through the incremental design of the new parser that is optimized for the special needs of an integrated development environment.

The built-in parser already implements much of the new April 7 XML Schema draft from the W3C and we are constantly tracking the W3C Schema Group's efforts and are actively participating in all Schema-related discussions to provide you with a state-of-the-art development environment.


Schema Dialects

Schema Dialects

An important aspect of XML is the area of schemas and DTDs that define the logical structure (or content model) of an XML document - XML Spy is the ideal tool that integrates schema and DTD creation with working on XML instance documents.

XML Spy supports both editing and schema-validation of the following schema kinds:

· | Document Type Definitions (DTD)
· | Document Content Descriptions (DCD)
· | XML-Data Reduced (XDR)
· | BizTalk
· | XML Schema Definition (XSD) draft April 7, 2000

and can validate an XML instance document against any of the above schema dialects.

Since the XML Schema definition is still only available as a "last call" draft, the corresponding implementation in the built-in validating parser in XML Spy is a preliminary version. It does, however, already include - among other functions - all of the following important aspects of XML Schemas:

· | simpleType & complexType
· | element, attribute, attributeGroup
· | group, sequence, choice, any
· | all datatype facets, including user-defined patterns (!)
· | notation, annotation, documentation, include


XSLT Processor

XSLT Processor

To use the full power of XSLT for XSL Transformations, you will need to download and install either the Internet Explorer 5.5 beta version or the MSXML3 technology preview from Microsoft, which you can download from http://msdn.microsoft.com/downloads/webtechnology/xml/msxml.asp

Once you have installed MSXML3, please make sure that you execute the utility program 'XMLINST.EXE' that Microsoft has installed into your \WINDOWS\SYSTEM32\ directory. This step is necessary to ensure that MSXML3 is actually set to be the default XML module instead of the old MSXML.DLL version.

Alternatively you can also use any external XSLT processor that supports the final XSL Transformation recommendation. Please see the XSL Settings for details.

To use XSLT successfully, please make sure that your XSL Stylesheet is correctly referring to the namespace defined in the final XSLT recommendation:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


OS & Memory Requirements

OS & Memory Requirements

XML Spy is a modern 32-bit Windows application that runs on Windows 95, 98, NT 4.0, and Windows 2000. It assumes a fair amount of memory to be installed in the system, because it loads each document fully into memory.

On the other hand it typically requires less memory than many Java-based applications, because it is written entirely in C++ and thus does not require the overhead of a Java runtime environment.

This is necessary in order to completely parse and analyze each document and also greatly improves the viewing and editing speed during normal work. 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 50MB during the initial parsing process.

Memory requirements are also influenced by the unlimited Undo history. When repeatedly cutting and pasting large selections in huge documents, memory can rapidly be depleted.


Internet Usage

Internet Usage

XML Spy is an integrated development environment for XML and as such will, also initiate Internet connections on your behalf in the following situations:

a) if you click the "Request evaluation key-code" in the registration dialog on purpose, the three fields in the registration dialog are transferred to our web server by means of a regular http (port 80) connection and the free evaluation key-code is sent back to the customer via regular SMTP e-mail.

b) if you us the Open URL... dialog to open a document directly from a URL, that document is retrieved through a http (port 80) connection.

c) if you open an XML document that refers to an XML Schema or DTD and said document is specified through a URL, it is also retrieved through a http (port 80) connection, once you validate the XML document. This may also happen automatically upon opening a document, if you have instructed XML Spy to automatically validate files upon opening in the File settings dialog.

d) if you are using the Send by mail... command, the current selection or file is sent by means of any MAPI-compliant mail program installed on the user's PC.

All these communications are, of course, only initiated in response to a direct request from you! XML is, after all, related to the Internet and thus any XML development tool has to be tightly integrated with Internet protocols in order to provide an efficient environment for the everyday duties of any XML developer.


Unicode Support

Unicode Support

Unicode is the new 16-bit character-set standard defined by the Unicode Consortium that provides a unique number for every character,

· | no matter what the platform,
· | no matter what the program,
· | no matter what the language.

Fundamentally, computers just deal with numbers. They store letters and other characters by assigning a number for each one. Before Unicode was invented, there were hundreds of different encoding systems for assigning these numbers. No single encoding could contain enough characters: for example, the European Union alone requires several different encodings to cover all its languages. Even for a single language like English no single encoding was adequate for all the letters, punctuation, and technical symbols in common use.

These encoding systems also conflict with one another. That is, two encodings can use the same number for two different characters, or use different numbers for the same character. Any given computer (especially servers) needs to support many different encodings; yet whenever data is passed between different encodings or platforms, that data always runs the risk of corruption.

Unicode is changing all that!

Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. The Unicode Standard has been adopted by such industry leaders as Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase and many others. Unicode is required by modern standards such as XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc., and is the official way to implement ISO/IEC 10646. It is supported in many operating systems, all modern browsers, and many other products. The emergence of the Unicode Standard, and the availability of tools supporting it, are among the most significant recent global software technology trends.

Incorporating Unicode into client-server or multi-tiered applications and websites offers significant cost savings over the use of legacy character sets. Unicode enables a single software product or a single web site to be targeted across multiple platforms, languages and countries without re-engineering. It allows data to be transported through many different systems without corruption.

Even though XML is clearly defined to be based on the Unicode standard, XML Spy is still one of the few XML development tools that fully implements Unicode!


Windows NT 4.0 & Windows 2000

Windows NT 4.0 & Windows 2000

Starting with version 2.0 XML Spy provided full Unicode support in the Windows NT and Windows 2000 version of the software. To edit any XML document from a non-roman writing system you will, however, also need a font that supports the Unicode characters being used by that document.

Windows NT typically includes support for all common single-byte writing-systems in its Arial, Times, and Courier New fonts and will additionally include all required fonts for the writing-system in your own country (i.e. if you install the Japanese version of Windows NT you will automatically have fonts that support the Katakana, Hiragana, and Kanji writing-systems as well as the input-methods and dictionaries to enter Kanji and to switch between Katakana and Hiragana). If you wish to edit any document from a foreign writing-system, you may want to install additional Windows NT components for that writing-system or purchase special Unicode fonts for these writing-systems (such fonts are available from all leading type vendors).

Please note that there is no such thing as a single font that contains all Unicode characters. The most universal font we have seen so far is a typeface called "Arial Unicode MS" that has been created by Agfa Monotype for Microsoft. This font contains over 10.000 glyphs and measures about 23MB. It is include with Microsoft Office 2000 and we can highly recommend that you install this font on your system and use it with XML Spy, if you are often editing documents in different writing systems.

In the "Examples" folder you will also find a new XHTML file called "Unicode-UTF8.xml" that contains the sentence "When the world wants to talk, it speaks Unicode" in many different languages ("Wenn die Welt miteinander spricht, spricht sie Unicode") and writing-systems (" [image] Unicode [image] ") - this line has been adopted from the 10th Unicode conference in 1997 and is a beautiful illustration of the importance of Unicode for the XML standard. Opening this file will give you a quick impression on what is possible with Unicode and what writing systems are supported by the fonts available on your PC installation.


Windows 95 & Windows 98

Windows 95 & Windows 98

Unfortunately these Windows versions do not include full Unicode capabilities on the operating system layer. Instead support for non-roman writing-systems is provided through so-called code-pages that contain all the required characters mapped to either the available byte-values in the range of 0x80 to 0xFF (in case of single-byte systems, such as Cyrillic or Hebrew) or as double-byte values, where the first most significant bit of the first byte is typically used to indicate that this is a so-called "wide character" (in case of CJK writing-systems).

Therefore we are providing a special Windows 95/98 version of XML Spy that is automatically installed whenever you are using the Setup program on these operating systems. This version of XML Spy supports the following code-pages for viewing and editing XML documents (for excellent background information about code-pages please refer to http://czyborra.com/charsets/codepages.html):

Code-page Equivalent XML Encoding
1252 ISO-8859-1 (Western, Latin-1)
1250 ISO-8859-2 (Eastern Europe, Latin-2)
1251 ISO-8859-5 (Cyrillic)
1253 ISO-8859-7 (Greek)
1254 ISO-8859-9 (Turkish)
1255 ISO-8859-8 (Hebrew)
1256 ISO-8859-6 (Arabic)
874 ISO-8859-11/TIS-620 (Thai)
932 Shift-JIS (Japanese)
936 GB2312 (Chinese)
949 EUC-KR (Korean)
950 Big5 (Taiwanese)

Whenever you open an XML file, XML Spy detects the character-set encoding used in that file, expands the file to an internal full Unicode representation and then transforms the document to a code-page supported by Windows 95/98 in order to enable viewing and editing of the document.

In most cases this process will be entirely automatic, as the available ISO-8895-x encodings as well as some of the CJK encodings often correspond with a certain code-page. However, if you open a Unicode encoded file (e.g. UTF-8 or UTF-16) XML Spy will be unable to determine which code-page to use and will thus bring up a dialog that asks you to specify a code-page to be used for editing.

In order to correctly view and edit a Unicode file under Windows 95/98 it is extremely important that you use this dialog to:

a) choose the correct code-page that includes all characters contained in the file and
b) later select a font and script from the settings dialog that also supports the same code-page.

If the file contains any characters that are not available in the selected code-page, the user will receive an error message including a detailed list of offending characters before they will be replaced by a '_' (under-score).

We therefore highly recommend using only the Windows NT/2000 version of XML Spy for editing XML files that make full use of Unicode!


Right-to-Left Writing Systems

Right-to-Left Writing Systems

Please note that even under Windows NT 4.0 any text from a right-to-left writing-system (such as Hebrew or Arabic) is not rendered correctly except in those countries that actually use right-to-left writing-systems. This is due to the fact that only the Hebrew and Arabic versions of Windows NT contains support for rendering and editing right-to-left text on the operating system layer.


RichEdit Component

RichEdit Component

XML Spy uses the Microsoft-supplied "RichEdit" component for editing documents in the Text View. The version of RichEdit that is available in Windows 98 and Windows NT 4.0 is called RichEdit 2.0 and contains many known limitations.

Windows 2000 contains a new and vastly improved version called RichEdit 3.0, that not only fixes most known bugs, but also contains special support for finer Undo-Control as well as better international capabilities with foreign writing systems.

XML Spy already contains full support for RichEdit 3.0 and takes advantage of the new features, if it detects the presence of RichEdit 3.0.

But even though Icon is a registered MCSP (Microsoft Certified Solution Provider), we are unfortunately not allowed to distribute the RichEdit 3.0 component to our customers (RichEdit is only available as part of the operating system and is not redistributable).

We are, however, allowed to suggest that if you have access to a Windows 2000 CD-ROM you should install Windows 2000 on some machine and copy the file "riched20.dll" from the Windows\System directory of that machine to the Windows NT 4.0 or Windows 98 Windows installation (thereby replacing the old RichEdit 2.0 version) that you wish to use XML Spy on.

This will get you all the benefits of RichEdit 3.0 now and will - in our experience - not cause any compatibility problems, since the RichEdit 3.0 component is fully compatible with Windows 98 and Windows NT 4.0.


Appendix

Appendix

This appendix contains important legal information concerning your rights to use this software product. Please read carefully - this information is binding, as you have agreed to these terms upon installation of this software product.


Electronic Software Distribution

Electronic Software Distribution

We are making XML Spy available through electronic software distribution only, because this method offers many unique benefits for our customers:

· | you can freely evaluate the software before making a purchasing decision
· | once you decide to buy the software, you can place your order online and immediately get a fully licensed product within minutes
· | you can be sure to always get the latest version of our software
· | we include both a comprehensive integrated online-help system and an electronic manual that you can also print out, if you prefer to read your documentation on paper

Once you download this software product, you may evaluate the XML Spy for a period of up to 30 days free of charge. During this evaluation period the software will start to remind you after about 20 days that it has not been licensed yet. The reminder message will, however, only be displayed once every time you start the program.

If you would like to continue using the program after the 30 day evaluation period, you have to purchase a license, which is delivered in the form of a key-code that you enter into the Registration dialog to unlock the product.

You can register and purchase your license on-line by directing your browser to access our web-shop at http://www.xmlspy.com/order. On this page you will get detailed pricing information (including multi-user discounts) and also find a list of authorized distributors and resellers.

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. Any person that receives the XML Spy software from you is also automatically entitled to a 30 day evaluation period. After the expiration of said period, any other user must also purchase a license in order to be able to use XML Spy.

For further details, please refer to the SOFTWARE PRODUCT LICENSE at the end of this manual.


Copyright

Copyright

All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, photographs, animations, video, audio, music, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by Icon or its suppliers. The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material.

Copyright ©1998-2000 Icon Information-Systems

All rights reserved.


Software Product License

Software Product License

SOFTWARE PRODUCT LICENSE

The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.

1. GRANT OF LICENSE. This license agreement grants you the following rights:

Installation and Use. You may install and use SOFTWARE PRODUCT on one computer solely for your personal or company use. If you have acquired multiple licenses or a special multi-user license, you may install the software on as many computers as specified in your license (per-seat licensing). You may also make copies of the SOFTWARE PRODUCT for backup and archival purposes.

Distribution. You may not reproduce or distribute license key-codes or licensesed versions of the product except under the express and written permission of Icon.

2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.

Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.

Software Transfer. You may permanently transfer all of your rights under this license agreement provided the recipient agrees to the terms of this license agreement

Termination. Without prejudice to any other rights, Icon may terminate this license agreement if you fail to comply with the terms and conditions of this license agreement. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.

Rental. You may not sell, rent, or lease the SOFTWARE PRODUCT.

3. COPYRIGHT. All title and copyrights in and to the SOFTWARE PRODUCT (including but not limited to any images, photographs, animations, video, audio, music, text, and "applets" incorporated into the SOFTWARE PRODUCT), the accompanying printed materials, and any copies of the SOFTWARE PRODUCT are owned by Icon or its suppliers. The SOFTWARE PRODUCT is protected by copyright laws and international treaty provisions. Therefore, you must treat the SOFTWARE PRODUCT like any other copyrighted material.

WARRANTY AND LIMITATION OF LIABILITY

LIMITED WARRANTY. Icon warrants that (a) the SOFTWARE PRODUCT will perform substantially in accordance with the accompanying written materials for a period of ninety (90) days from the date of receipt, and (b) any Support Services provided by Icon shall be substantially as described in applicable written materials provided to you by Icon, and Icon support engineers will make commercially reasonable efforts to solve any problem issues. Some states and jurisdictions do not allow limitations on duration of an implied warranty, so the above limitation may not apply to you. To the extent allowed by applicable law, implied warranties on the SOFTWARE PRODUCT, if any, are limited to ninety (90) days.

CUSTOMER REMEDIES. Icon's and its suppliers' entire liability and your exclusive remedy shall be, at Icon's option, either (a) return of the price paid, if any, or (b) repair or replacement of the SOFTWARE PRODUCT that does not meet Icon's Limited Warranty and which is returned to Icon with a copy of your receipt. This Limited Warranty is void if failure of the SOFTWARE PRODUCT has resulted from accident, abuse, or misapplication. Any replacement SOFTWARE PRODUCT will be warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer.

NO OTHER WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ICON AND ITS SUPPLIERS DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE PRODUCT, AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU MAY HAVE OTHERS, WHICH VARY FROM STATE/JURISDICTION TO STATE/JURISDICTION.

LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL ICON OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE PRODUCT OR THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, EVEN IF ICON HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN ANY CASE, ICON'S ENTIRE LIABILITY UNDER ANY PROVISION OF THIS EULA SHALL BE LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE SOFTWARE PRODUCT OR U.S.$5.00; PROVIDED, HOWEVER, IF YOU HAVE ENTERED INTO A ICON SUPPORT SERVICES AGREEMENT, ICON'S ENTIRE LIABILITY REGARDING SUPPORT SERVICES SHALL BE GOVERNED BY THE TERMS OF THAT AGREEMENT. BECAUSE SOME STATES AND JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

TRADEMARKS. All names of products and companies used in this document, the software, or the enclosed documentation may be trademarks of their corresponding owners. Their use in this document is intended to be in compliance with the respective guidelines and licenses. Unicode and the Unicode Logo are trademarks of Unicode, Inc. Windows, Windows 95, Windows 98, Windows NT, and Windows 2000 are trademarks of Microsoft. Cyberbit is a trademark of Bitstream, Inc. W3C, CSS, DOM, MathML, RDF, XHTML, XML, and XSL are trademarks (registered in numerous countries) of the World Wide Web Consortium (W3C); marks of the W3C are registered and held by its host institutions MIT, INRIA, and Keio.


Credits

Credits
[Previous] [Main]

We would like to thank the following people for their contribution to this product:

Vladislav Gavrielov | Chief Engineer
Alexander Falk | Parser, Schema Validation & Conversion
Joachim Legat | User-Interface & Web Design
Thomas Kefer | Microsoft Office Data Exchange
Michael Pallinger | Database Import/Export
Clemens Uhlenhut | Software Quality Assurance
Werner Bosch | Technical Support & IT
Nora Falk | Help & Manual proof-reading
Veronika Aggarwal | Accounting
Lea Gavrielova | Excellent Office Lunch

XML Spy 3.0 wouldn't have come this far without your time and dedication. Thank you!


.topic 10001
XML Spy is the first true Integrated Development Environment (IDE) for the eXtensible Markup Language (XML) and contains many useful functions that can simplify typical XML editing tasks for you. This help system is provided to help you get started with using our software and provides detailed information on all aspects of the product.

It includes a Tutorial section that shows you how to use XML Spy for the major aspects of XML:

XML editing & validation
Schema/DTD editing & validation
XSL editing & transformation

The Reference section explains each window and menu command in detail and can easily be accessed through the Contents, Index and context-sensitive help (F1) from any menu or dialog.

You may also want to periodically check our XML Spy web-server for news, updates, and new examples:

Please note that we have completely rewritten the documentation for version 3.0 and you may therefore encounter an occasional error or, perhaps, some incomplete information while accessing the online help system or reading the printed documentation.

If this happens and you need help with XML Spy, please don't hesitate to visit our Support Center on the Internet, where you'll find additional links to the FAQ pages as well as our online Support Form. Also, please feel free to send us any feedback regarding the new documentation.

We will also be providing periodic free updates to the online help system and the printable documentation on the Download page on our web server.

.topic 10002
The eXtensible Markup Language (XML) is a subset of SGML that has been defined by the World Wide Web Consortium (W3C) in 1998 (see http://www.w3.org/TR/REC-xml). 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.

The XML Spy 3.0 online help and printable documentation contain a Tutorial section that helps you in getting started with XML using XML Spy by walking you through a couple of common XML, Schema, and XSL tasks.

To learn more about XML and its associated protocols, please do also visit our list of recommended links to various XML-related information resources on the XML Spy web server.

.topic 20000
We apologize for the inconvenience, but so many customers have requested that we release the 3.0 version as soon as the software is ready, that we have decided to not wait for the completion of the new online help system and manual and instead publish the product once the software has passed our final release-level quality assurance testing.

We are still working on completing the new v3.0 documentation and the new Tutorial section is unfortunately not yet ready.

As a registered user, we will be contacting you as soon as the new online help system and printable manual are available and you will, of course, get a free update!

.topic 20001

### to be provided soon ###

.topic 20002

### to be provided soon ###

.topic 20003

### to be provided soon ###

.topic 20004

### to be provided soon ###

.topic 20005

### to be provided soon ###

.topic 30000
The reference section contains a complete description of all XML Spy windows and menu commands and explains their use in general.

We've tried to make this user manual as comprehensive as possible. If you have questions which are not covered by this documentation and you are a registered user, please don't hesitate to contact us through the Support Center on the XML Spy web site.

.topic 31000
The XML Spy user interface provides several windows that show both your document, project and intelligent editing entry-helper windows that can be freely arranged to suit your personal working style.

The central area shows the main window, where you are editing your XML, Schema, or XSL documents using the enhanced grid view, text view, database/table view, or browser view.

To the left are the project and info windows, to the right are the entry helpers for intelligent editing of elements, attributes, and entities.

.topic 31100
The Main Window is where you are viewing and editing all documents in XML Spy. Since XML Spy is a true Windows application, it allows you to open any number of XML documents simultaneously, so you may typically have more than one main window at any time.

If you are opening multiple documents, you can simply switch between them, by clicking on the any part of the window you wish to bring to the front. You can also use the commands on the Window menu to organize your windows. If your windows are maximized, you'll notice that XML Spy also provides convenient tabs to let you switch between all open document windows. You can also use the right mouse-button to get a context-menu when you click on one of the tabs (e.g. to close a window).

XML Spy provides four advanced views on your documents: an Enhanced Grid View for structured editing, a Database/Table view that shows repeated elements in a tabular fashion, a Text View with syntax-coloring for low-level work, and an integrated Browser View that supports both CSS and XSL style-sheets.

To switch any main window between the different views, you can use the commands on the View menu or the corresponding toolbar buttons. Please note, that you may often want to use different views for different windows, depending on the type of file you are working with (e.g. XSLT files are better suited for Text view, HTML files are typically displayed in the Browser view, etc.). You can set your personal default view on a per-file-type basis in the File Type page on the Settings dialog.

.topic 31101
When it comes down to low-level work, the text view of XML Spy is ideally suited for XML editing in its textual or source form.

The text view can be used to edit any kind of text file (even non-XML conforming documents) and offers customizable syntax-coloring (including the ability to highlight server-side VBScript or JScript code in ASP pages) as well as an automatic display of the current line and character position in the status bar.

You can use the Find and Replace commands to quickly locate or change any information and XML Spy offers unlimited levels of Undo and Redo for all your editing operations.

Intelligent Editing

If you are working with an XML document that is based on a DTD or Schema, XML Spy provides you with various intelligent editing capabilities. As soon as you start typing the name of an XML element, attribute, or attribute value, you will get a popup window that shows all available choices and lets you quickly select the correct name using your mouse or the arrow keys on your keyboard. Simply hit the Return or Space key to accept the selected choice and close the popup window.

Auto-completion

With many other tools, editing in the text view can quickly result in unbalanced brackets, elements that are not closed properly, or other ugly violations of the well-formedness principle. XML Spy helps you in avoiding this disaster, by automatically completing the element as well as inserting all required attributes as soon as you complete entering the element name on your keyboard. The cursor is then positioned between the start and end tag of the element so that you can easily continue to add child elements or contents:

You can use the Check well-formedness command at any time during your editing session to ensure that the document meets the XML 1.0 Specification criteria for well-formedness. This check is also automatically performed every time you open or save a document.

Mouse & Context-Menu

You can, of course, also use the mouse for editing in the Text View. If you select any text, you can either use drag&drop to move the text block to a new location or you can use the context-menu on the right mouse button to directly access frequently used editing commands - such as Cut, Copy, Paste, Delete, Send by Mail, and Go to line/char:

While most customers prefer the enhanced grid or database/table views for every-day work on XML data files, the text view can occasionally be very handy when editing XSL files or if you are using Active Server Pages (ASP) or any other non-XML files in your web solution.

.topic 31102
The enhanced grid view is the core presentation and editing view of XML Spy. It shows the hierarchical structure of any XML-compliant document through a set of nested containers that can be easily expanded and collapsed to get a clear picture of the document's tree-like structure.

All items 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 item (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.

Display & Navigating

The contents of such a hierarchical item 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.

Following the attributes, the remaining items within an element appear exactly in the order found in the file and can be rearranged without limitations using drag & drop.

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. The character data for any other element will be shown indented with the attributes and potential child elements and will be labeled as "Text".

If an element is collapsed, its attributes can be shown in the same line in a different color. This attribute preview is especially helpful, when editing XML documents that contain a huge number of elements of the same kind that only differ by their contents and attributes (e.g. database-like applications).

The grid view can easily be customized using the mouse to adjust column widths. To resize a column to the width of its largest entry, just double-click on the grid line to the right of that column. Furthermore the Optimal widths command 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.

In addition to moving about with the mouse, you can also use the keyboard for navigating through an XML document in the enhanced grid view. 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.

Editing

When you are working on an XML document that is based on a DTD or Schema, the Enhanced Grid View provides many Intelligent Editing features based on the information gathered from the Schema or DTD.

Whenever you are editing the name of an element or attribute, a popup menu is automatically displayed the shows the available options depending on the position of the element you are editing and the content model defined by the Schema or DTD.

A similar popup is displayed, if the contents of an element or attribute are restricted by an enumeration or choice of some sorts. In all cases you can simply continue to type in the name and XML Spy will automatically choose the best match from the menu, which you can accept by hitting the Return key.

At the same time you'll also notice that the various Entry Helpers are constantly updated depending on the current selection in the Enhanced Grid Views and the Info Window shows important background information regarding the selected element or attribute.

In addition to the commands available through menus and toolbars, the enhanced grid view also provides a context-menu that is activated by using the right mouse-button, which contains the most useful commands all in one convenient place:

.topic 31103
In many kinds of XML documents you will encounter sequences of repeating elements of the same kind. XML Spy automatically detects such sequences and rearranges the presentation to show these elements in a tabular fashion that is a well-known paradigm from database- or spreadsheet-like applications.

XML Spy achieves this database/table view by taking the respective attributes and sub-elements of the repeating element and showing them as columns of the table

This database/table view is fully integrated with the enhanced grid view and you can switch between both presentation forms for each element at will. Editing in the table view is again supported using advanced drag&drop and intelligent editing functions and you can use certain table-specific commands to sort elements or insert new rows.

For easy data exchange with other applications, you can select elements in this table and simply copy/paste them directly into Access or Excel.

This feature does, of course, work both ways, so you can also easily copy data from any spreadsheet-like application into XML Spy.

For more complex data exchange tasks, XML Spy also offers a set of unique conversion functions that lets directly you import/export XML data from any text file, Word document or database.

.topic 31104
You can use the integrated browser view of XML Spy to immediately preview any XML file with an XSL stylesheet, or you can view the output from an XSLT transformation to HTML.

If you are using XML Spy for XHTML editing or if you have an XSL stylesheet associated with your XML document, you can also show the browser view in a separate window, which allows you to take a look at the document source in the enhanced grid or text views and have the browser preview side-by-side, so that it can easily be refreshed directly from the editing view (just hit F5 in the editing view and the browser view is automatically updated).

The browser view also supports a find command and printing capabilities, which are especially useful when you want to document XML files that use CSS or XSL style-sheets, and offers the typical browser commands from both the Browser menu and toolbar: Back, Forward, Stop, Refresh.

The integrated browser view requires Microsoft Internet Explorer 5 to work and we highly recommend that you also download the MSXML3 technology preview if you intend to work with XSLT in XML Spy, because MSXML3 already supports most of the W3C XSLT Recommendation. Please see our FAQ on the Internet for more details.

.topic 31200
XML Spy uses the familiar folder-tree paradigm that most people already know from Explorer or Visual Studio to manage multiple files or URLs in XML projects. Files and URLs can be grouped into folders by common extension or any arbitrary criteria to allow easy structuring and batch manipulation.

The folders can correspond to actual directories on your file system, or you can define file-type extensions for each folder so that common files are kept together in one convenient place. It is important to stress that the project folders are "semantic" folders that represents a logical grouping of files and do not necessarily need to correspond to any hierarchical organization of the files on your hard disk into several directories.

You can also assign different XSL transformation parameters to each folder and even have the same physical file be contained in more than one project folder - this is especially useful when you want to keep your data in one XML file and use different XSL stylesheets to produce different output (e.g. separate HTML and WML presentations).

Along similar lines, you may also want to assign different DTDs or Schemas to different folders thereby being able to alternatively validate a file against both a DTD and an XML Schema without changing the file itself, which is very useful when you are in the process of making the transition from DTD to Schema.

You can use the commands on the Project menu to manipulate your projects.

.topic 31400
XML Spy 3.0 helps you in creating valid XML documents by providing three palette-like windows that we simply like to call "entry helpers".

When you are working on an XML document that is based on a DTD or Schema, the build-in Intelligent Editing module constantly displays information on elements, attributes, and entities that can be inserted in the current position based on the information gathered from the content model in the Schema or DTD.

.topic 31401
The element entry helper allows you to quickly insert a new element into your document by showing what elements are permissible in the current location.

You can choose to append an element, insert it before the selected element or add a child-element to the selected one. Depending on this context, the entry helper will automatically adjust its list of available choices.

Required elements are automatically highlighted by an exclamation mark and elements that are allowed within the current parent element, but not at the position of the current selection are shown in gray.

By simply double-clicking on the desired item, the corresponding element is inserted into the XML document and the entry helper is automatically updated to reflect your new options.

Should you still manage to create a sequence of elements that violates the content model specified by your schema or DTD, the built-in incremental validating parser automatically detects this violation and displays its error message directly in the entry helper window.

.topic 31402
To show you a list of available attributes for the element you are editing, the attribute entry helper is shown in a second palette-window and offers the same functionality as the element entry helper.

Mandatory attributes are automatically highlighted by an exclamation mark and attributes that are already present - and therefore can't be added a second time - are shown in gray.

.topic 31403
If you are editing DTDs or documents based upon a DTD content-model (such as XHTML), the entity entry helper presents a list of defined entities or parameter entities that you can insert within your document.

.topic 31300
In addition to the entry helper windows, XML Spy provides a handy information window that always shows the detailed information about the attribute or element that you are working on.

This does, of course, work in all three editing views and can be a tremendous help in conjunction with the xsd:annotation feature of the new XML Schema draft, which allows a schema author to include comments or documentation on the use of each individual element or attribute into the schema itself.

.topic 32000
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 (e.g. such as opening documents directly from an URL).

In addition to the standard menus, XML Spy contains many XML-specific menus that cover the different aspects of XML editing tasks.

.topic 32100
The File menu contains all commands relevant to manipulating files with XML Spy in the usual order common to most Windows software products.

In addition to the standard New, Open, Save, Print, Print Setup, and Exit commands, XML Spy offers special commands to open a document directly from a URL, reload a file that may have changed, switch the character-set encoding used by a file, and send a file by e-mail (only available, if a MAPI-compliant mail system, such as Microsoft Outlook, is installed).

.topic 32101
The "New..." command is used to create a new document with XML Spy. You are presented a list of predefined document types that you can create:

Since XML is such a versatile and universal concept, there are many different kinds of XML documents that you can create and edit with XML Spy. If the document you want to create is not listed, you can simply select ".xml" and later change the extension when you save the file. You can also add new file types to this list using the File Type Settings dialog.

XML Spy contains built-in templates for most XML-based document types and will automatically provide you with a meaningful starting point instead of a totally empty file (e.g. a ".xhtml" file automatically includes the correct DOCTYPE reference to the XHTML DTD as well as an empty <html> element to start with).

If you did select a plain ".xml" file (typically a new XML instance document) in the above dialog, you can still provide XML Spy with a DTD or Schema that you want your new file to be based upon:

If you instead wish to start with a plain empty XML file, simply click the "Cancel" button in this dialog.

If you clicked on OK and the content model of the Schema or DTD contains more than one potential candidate for being a root element, XML Spy asks you to select a root element from the list of possible candidates:

The new document is then automatically created with this element as its document root.

.topic 32102
Opens any XML-related document or text file from your PC. The familiar Windows "Open" dialog will appear and allow you to select one ore more files for editing.

You can select which kind of files you want to be displayed in the dialog (the list of available file types can be configured through the File Type page on the Settings dialog).

After the file has been read into memory, the character-set encoding used within the file will be auto-detected by XML Spy and the file decoded accordingly. If the actual character-set used to encode the file differs from the encoding-specification in the XML-declaration at the beginning of the file, an error message is displayed and the file is automatically opened using the correct encoding.

You may also get an error message if your file is either not well-formed or invalid and you have selected to perform automatic validation upon opening. In this case the document will be opened in the appropriate view, an error message popup will be displayed with the details about the error detected and the offending item will be highlighted in the window.

In such a case you can simply fix the error and click on the "Recheck" or "Revalidate" button to continue opening the file.

If you are using the Windows 95/98 version of XML Spy and have chosen to open a Unicode file, XML Spy has to convert the file to a Windows 98 code-page to be used for viewing and editing the file, because Windows 95/98 doesn't support Unicode on the operating system layer (for further information please see the Unicode chapter in the background information section). This is done automatically according to the settings you provide on the Encoding page of the Settings dialog.

.topic 32103
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.

XML Spy will attempt to detect the file type by looking at the extension. You may, however, also explicitly specify if the targeted file is an XML or DTD document.

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).

.topic 32104
If you are working with documents that you open through a URL and these documents are dynamically created, you may occasionally wish to reload the document from the URL. This is what the Reload command lets you do.

You will find that you rarely need to use this command when working on documents that are accessed as files on your local hard disk or through a network file server, because XML Spy automatically monitors all open files from changes made by other programs (or people) and automatically prompts you to reload such a file, if you have checked the corresponding box on the File page of the Settings dialog.

.topic 32105
This lets you view the current encoding of a file and choose the encoding to be used for the current document the next time it is being saved to a file.

If you select a different encoding than the one in use before, the encoding-specification in the XML-declaration at the beginning of the file will automatically be adjusted accordingly. For 16-bit and 32-bit per character encodings (UTF-16, UCS-2, and UCS-4) you can also specify the byte-order to be used for the file.

Alternatively you can also simply enter the desired new encoding into the encoding-specification of the XML-declaration. When saving a document, XML Spy automatically checks the encoding-specification and brings up a dialog, if it cannot recognize the desired encoding name entered by the user.

If your document contains any characters that cannot be represented in the selected encoding, you will get a warning message as soon as you save your file.

.topic 32106
Closes the frontmost document window. If the file has been modified (i.e. the window title shows the file name with an asterisk [*] in the end), you will be asked if you wish to save the file first.

.topic 32107
Closes all open document windows. If any file has been modified (i.e. the window title shows the file name with an asterisk [*] in the end), you will be asked if you wish to save the file first.

.topic 32108
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.

When saving a document from XML Spy, the file 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. Also the XML-Declaration is checked for an encoding specification and the encoding is applied to the document when writing out the file.

You can optionally have XML Spy automatically validate a document upon saving (this can be defined in the File page on the Settings dialog). If a validation error occurs, XML Spy will bring up a popup message with a detailed error explanation and will highlight the offending item. You can then choose to fix the problem or save the document as is. In the latter case you will be prompted to correct the error the next time you open the file with XML Spy.

.topic 32109
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.

.topic 32110
If you are frequently working with more than one document, you may find this command handy. It saves all modifications that have been made in any open window. If any document has never been saved before (e.g. after using the New command), the Save as... dialog is presented for that document.

.topic 32111
If you are using a MAPI-compliant e-mail system, XML Spy lets you directly create mail messages from any file, group of files (in the Project window), or selection within a file.

If you choose to send an entire file or group of files, they are always included as an attachment to the mail message:

When you want to send a fragment of a file, you simply select the elements you wish to send in either Enhanced Grid View or Text View and XML Spy gives you the choice of either creating an attachment file that contains only your current selection or simply sending the selection as XML text in the contents of the mail message.

Also, when you send an URL (from the project window) you are prompted if you wish to first retrieve the actual document referred to by the URL and then send the file as an attachment, or if you wish to just include the URL so that the recipient of your message can access the document through the URL:

.topic 32112
Bring up the "Print" dialog where you can adjust certain options to control what appears on the printed representation. Depending on the view mode this dialog will contain different items.

For the Enhanced Grid View you have these options:

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.
In the "What" area you can choose to print the entire file or just the current selection.
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.
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, which is only used as a navigation aide on the screen and cannot be printed.
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.
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.
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.
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.
The "Shrink both" option shrinks the document in both directions until it fits exactly on one sheet, thus making it useful for overviews.
The "Print" button prints the document with the selected options.
The "Preview" button opens a print preview window that lets you view the final output before committing it to paper.
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.

If you choose the Preview button, XML Spy will show a miniature image of the pages that are about to be printed:

You can navigate within the preview mode by means of the "Next Page" and "Prev Page" buttons or "Zoom In" to take a close look at some details. The "Print..." button lets you print the pages, whereas the "Close" button allows you to return to the previous dialog without starting the print process.

.topic 32113
Shows the printer-specific "Print Setup" dialog to allow setting the paper format, orientation, and other printer options for all further print jobs.

This is an example using an HP LaserJet 4 printer attached to the parallel port (LPT1:).

.topic 32114
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.

.topic 32115
The exit command is used to quit XML Spy when you are finished working with your documents. If you have any open files with unsaved changes, XML Spy will automatically ask you to save those changes before actually terminating.

XML Spy also writes back any modifications you have made to the settings as well as information about the most recently used files and projects to the Registry, which can be a time consuming process that is indicated through a small progress window:

.topic 32200
The Edit menu contains all commands relevant to editing operations within XML Spy in the usual order common to most Windows software products.

In addition to the standard Undo, Cut, Copy, Paste, Delete, Select All, Find, and Replace commands, XML Spy offers special commands to copy the selection to the clipboard as XML-Text, as structured text, or copy an XPath selector to the selected item to the clipboard.

All commands can be applied while editing text as well as while operating on whole items or even discontinuous selections of more than one item.

You can also edit the global Settings from this menu.

.topic 32201
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.

Please note that when you have turned on dynamic syntax coloring updates in the Text View and your operating system is using RichEdit 2.0 (i.e. earlier versions of Windows 95/98 and Windows NT 4.0), you will see all syntax coloring changes as undoable operations. If this should turn out to be too disturbing for you, please update to RichEdit 3.0 or disable the dynamic syntax coloring update feature (for further information please see the background information on the RichEdit Component).

.topic 32202
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.

.topic 32203
The Cut command copies the selected text or items to the clipboard and then deletes them from their present location.

.topic 32204
The Copy command copies the selected text or items to the clipboard. This can be used to duplicate data within XML Spy or to move data to another application.

Please note that XML Spy actually provides two different commands for copying elements to the clipboard in a textual form: Copy as XML-Text and Copy as Structured Text.

You can use the Edit tab on the Settings dialog to choose which operation should be performed when you use this command on the Edit menu or the Ctrl-C shortcut.

.topic 32205
The Paste command inserts the contents of the clipboard at the current insertion point.

.topic 32206
The Delete command removes the currently selected text or items without placing them on the Clipboard first.

.topic 32207
While you are editing your document in Enhanced Grid View you may occasionally still want to copy some elements to the clipboard in their representation as XML-Text:

    <row>
        <para align="left">
            <bold>Check the FAQ</bold>
        </para>
        <para>
            <link mode="internal">
                <link_section>support</link_section>
                <link_subsection>faq30</link_subsection>
                <link_text>XML Spy 3.0 FAQ</link_text>
            </link>
            <link mode="internal">
                <link_section>support</link_section>
                <link_subsection>faq25</link_subsection>
                <link_text>XML Spy 2.5 FAQ</link_text>
            </link>
        </para>
    </row>

This command automatically formats the text on the clipboard according to same settings that are used when saving a file (these can be modified in the "Save File" section of the File page of the Settings dialog) and thus lets you exchange data easily with other products that allow data manipulation on the XML source layer.

.topic 32208
While you are editing your document in Enhanced Grid View you may also sometimes want to copy elements to the clipboard as they appear on the screen. This can not only be used within XML Spy, but is also very useful to quickly transfer XML data to spreadsheet-like applications (e.g. Microsoft Excel) when used from the Database/Table View in XML Spy:

If you copy this table and switch over to Excel, this is what you'll get when you paste the information into a new spreadsheet:

Please note that this command very much depends on the way the information is currently laid out on the screen (i.e. if you are using the Database/Table View for certain repeated elements, or not). If you take the same XML data that served as an example in the description of the Copy as XML-Text command, this is what you'd be getting if you were to use this command on the data in Table View:

    row
        para
            align    bold    link
            left     Check the FAQ
                link
                    mode       link_section    link_subsection    link_text
                    internal   support         faq30              XML Spy 3.0 FAQ
                    internal   support         faq25              XML Spy 2.5 FAQ

Whereas the same information would be copied to the clipboard in the following format, if you were to use this command in the Enhanced Grid View with tables turned off:

    row
        para
            align    left
            bold     Check the FAQ
        para
            link
                mode              internal
                link_section      support
                link_subsection   faq30
                link_text         XML Spy 3.0 FAQ
            link
                mode              internal
                link_section      support
                link_subsection   faq25
                link_text         XML Spy 2.5 FAQ

.topic 32209
When you are using XSLT it is very often necessary to enter so-called Selector strings that help in selecting an element or attribute from within another XML document. Such Selector strings are built according to the XPath definition and XML Spy helps you to easily create these XPath Selectors, by selecting the item you wish to address and choosing this command from the Edit menu.

This will copy the corresponding XPath Selector to the clipboard so that you can paste this into your XSLT documents or any other file that uses XPath.

.topic 32210
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.

.topic 32211
The Find command allows you to quickly locate any occurrence of a text string in your XML document. Depending on the view you are using, the Find command will have different options.

This is what the Find options in the Enhanced Grid View are:

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.
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.
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.
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.
In the "Where" area you may optionally restrict your search to the current selection.
In the "Direction" area you can specify the direction of your search.

.topic 32212
This repeats the last Find command to find the next occurrence of the requested text.

.topic 32213
The Replace command is only available in the text and enhanced grid views, features the same options as the respective Find... commands and allows you to replace the found text by any other text string of your choice.

You may replace each found item individually, or you can use the "Replace All" button to perform a global search and replace operation.

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.

.topic 32220
The Settings command allows you to adjust the global program settings in a tabbed dialog. These settings will be remembered in the registry and apply to all current and future document windows.

For your convenience, an Apply button is available that lets you dynamically look at the changes you have made in the currently open document windows. Whenever you click the Apply button, the current settings are made permanent and you immediately see the effect in the background windows. This is especially useful when changing the font settings for the enhanced grid and source views.

.topic 32221
The file settings define the way XML Spy handles opening and saving of documents. You will also find related settings in the Encoding tab.

You can choose to open an existing file or create a new file either in the enhanced grid view or in the text view. If you select the grid view, you can optionally show the tree structure, and automatically expand all lines at the same time.
If you are working in a multi-user environment, or if you are operating with files that are dynamically generated on a server, you may instruct XML Spy to watch for changes to the files that you are currently editing. XML Spy will then prompt you to reload the file, whenever a change is detected.
If you are using document type definitions (DTDs) or schemas to define the structure of your XML documents, you can automatically check the document for validity whenever it is opened or saved. XML Spy can also cache these files in memory to save any unnecessary reloading (e.g. when the Schema being referred to is accessed through a URL).
When you start XML Spy, you can optionally open the last-used project automatically.
Normally XML Spy will used TAB-characters (0x09) to indent the individual elements forming the structure of the XML document so that it will be easily recognizable when viewed with a regular text editor. In certain situation this may, however, been undesirable and can therefore be turned off. You can also selectively turn off output formatting for certain elements by specifying them in the list provided (this is e.g. necessary for xsl:attribute when you are editing XSL Stylesheets).
When saving an XML document, XML Spy includes a short comment <!-- Edited with XML Spy 3.0 http://www.xmlspy.com --> near the top of the file. This option can be turned off only by licensed users.
Line-breaks 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).

.topic 32222
XML Spy allows you to edit all sorts of XML-related files and you can use this Settings page to customize the behavior of XML Spy on a per-file-type basis.

Choose any file type from the list on the left side to customize any of these functions for that particular file type:

You can modify the file type description and MIME-compliant content type that is used by the Windows Explorer and you can define, if you want XML Spy to be the default editor for this file type.
XML Spy lets you edit XML files as well as non-XML files and you must define the XML-Conformance setting for each new file type you add. Since XML allows for special grammar rules when dealing with external Document Type Definitions (DTDs) and external parsed entities, the exact grammar to be used can also be set here. You should not modify these settings unless you are adding a new file type and know exactly what you are doing.
For each file type you can define the default view to be used and you can define if the Enhanced Grid View should automatically build tables.
For certain non-XML files it may also be desirable to selectively turn off syntax-coloring for one particular file type.
If you are using partial XML-documents that are included in another file and cannot be validated individually, you can also turn off automatic validation per file type.
Some other XML tools may have problems understanding the short <Element/> form for empty elements defined in the XML 1.0 Specification. For your convenience you can instruct XML Spy to save elements in the longer (but nonetheless also valid) <Element></Element> form.

You can also add new file types or remove file types with the respective buttons provided near the bottom of this dialog page.

.topic 32223
The editing settings define the behavior of the enhanced grid view when exchanging data with the clipboard and moving items using drag & drop.

While you are editing your documents, XML Spy will provide Intelligent Editing help based on your current selection. You can customize various aspects of the behavior of these entry helpers here.
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.
You can also control, how XML Spy decides when to display repeating elements in the Table View.

.topic 32224
The view settings let you customize some of the details of the presentation of XML documents in the four-view architecture of XML Spy.

For collapsed elements in the enhanced grid view you can choose to activate the attribute preview, which will show the attributes and their values in gray in the same line as the element.
XML Spy lets you automatically apply the Optimal Widths command while you are editing and lets you limit the maximum cell width and height.
The integrated Text View supports syntax-coloring, which can be updated dynamically as you are typing or can also optionally be disabled entirely.
For your convenience you can show the browser view in a separate window, which makes side-by-side placement of an editing view and the browser view possible.
If you frequently use XML Spy, you may want to turn off the splash screen upon program startup so that XML Spy can launch a couple milliseconds faster.
The window title for each document window can be shown using the file name only, or using the full path name.

.topic 32225
The Grid Font settings allow you to customize the appearance of text in the enhanced grid view.

You can select the font face and size to be used for displaying the various items in the enhanced grid view. The same fonts are also being used for printing and consequently only TrueType fonts can be selected.

If you want to use the same font face or size for all items, you can enforce this by clicking on the appropriate check box.

The style and color can be set using the buttons on the right. The current settings are immediately reflected in the list so that you can easily preview the way your document is going to look.

In the Windows 95/98 version of XML Spy it is also possible to select a "Script" for some fonts. This is especially necessary when editing documents with a non-Roman writing systems. The script selected in the font settings dialog needs to match the character set code-page selected when opening a document (i.e. when editing a Cyrillic  ISO-8859-5 document, the code-page being used to edit the file should be set to 1251 and the font script needs to be set to "Cyrillic").

.topic 32226
A similar settings tab is available for adjusting the text display in the text view.

Again you can choose the font face, style and size, but this time the same font, style and size is always being used for all elements. Only the color can be adjusted individually to provide full customization of the syntax coloring option.

Setting the background color is only supported when RichEdit 3.0 is available on your system.

.topic 32227
To customize the colors used by XML Spy, a similar settings tab is available for adjusting the display in the Table view.

In addition to the colors you define here, XML Spy will use the regular selection and menu color preferences you have set in the Display Settings on the Control Panel of your Windows installation.

.topic 32228
The encoding settings specify the kind of character-set encoding to be used when creating new files as well as the encoding to be assumed when opening files that lack and encoding declaration.

The default encoding for new files can be pre-determined in the Settings dialog so that each new document is automatically created with a proper XML-declaration and includes the encoding-specification that you most commonly need. The encoding for existing files will, of course, always be remembered independently of this setting and can only be changed by the "Encoding" command on the "File" menu.
If a two- or four-byte encoding is selected as the default encoding (i.e. UTF-16, UCS-2, or UCS-4) you can also choose between little-endian and big-endian byte-ordering for the XML files.
You may also choose how an XML file is to be interpreted that is missing an encoding-specification and whose encoding also cannot be auto-detected. In most cases this will very likely be UTF-8 or ISO-8895-1, even though the XML specification theoretically only allows UTF-8 files to come without an encoding-specification.
Sometimes is can be convenient to also use XML Spy for editing non-XML files (such as Active Server Pages (ASP) or similar web-related document. Since these files do not contain any encoding statements, you must specify a default Windows CodePage to be used for accessing these files.

.topic 32229
XML Spy includes full support for XSL Transformations and can either use the MSXML module or any external XSLT processor for this purpose.

If you are using Internet Explorer 5 (i.e. the MSXML module) for XSLT processing, you must specify, if the resulting output is to be generated as and XML-compliant document (such as XHTML or WML), or if you are generating non-XML text files.

If you are using an external XSL processor, you must specify a command-line string that is to be executed by XML Spy in order to initiate the XSL Transformation. In this case, please use the following variables to build your command-line string:

%1	the XML instance document that is to be processed
%2	the output file that is to be generated
%3	the XSL Stylesheet to be used (optional, if the document contains an <?xsl-stylesheet ...?> reference

You can also choose to show the result of the external XSLT processor directly within XML Spy in a message box.

Please see the technical background information ons XSLT Processors for further details.

.topic 32300
XML Spy uses the familiar folder-tree paradigm that most people already know from Explorer or Visual Studio to manage multiple files or URLs in XML projects. Files and URLs can be grouped into folders by common extension or any arbitrary criteria to allow easy structuring and batch manipulation.

Please see the description of the Project Window for a general introduction to the XML Spy project management.

Also note, that most project-related commands are also available on the context-menu that is available when you right-click on any item in the project window.

.topic 32301
This lets you create a new project in XML Spy. If you are currently working with another project, the previous project is closed first.

.topic 32302
This lets you open an existing project in XML Spy. If you are currently working with another project, the previous project is closed first.

.topic 32303
If you are working in a multi-user environment, if can sometimes become necessary to reload the project from disk if another user has made changes to the project.

Also please note, that XML Spy project (.spp) files are actually XML documents that you can also edit just like any regular XML File using XML Spy. This is, however, not recommended and should only be attempted by advanced users!

.topic 32304
Closes the active project. If the project has been modified (i.e. the project title is shown with an asterisk [*] in the end), you will be asked if you wish to save the project first.

.topic 32305
Saves the current project.

.topic 32306
Use this command to add files to any folder in your project. You can either select a single file or any group of files using the common Open dialog.

If you are adding files to the project itself, they will be distributed among the folders contained therein based on the File Type Extensions defined in the Project Properties of the respective folders.

.topic 32307
XML Spy also allows you to add any URL to the project. Whenever a batch operation is performed on a URL or on a folder that contains a URL item, XML Spy will retrieve the document from the URL and perform the requested operation.

.topic 32308
If you have just opened a file from your hard disk or through any URL, you can easily add the active file to the current project using this command.

.topic 32309
When you are working on an XML document that is based on a DTD or Schema, XML Spy also lets you conveniently add both the XML document and all related files (e.g. the DTD and all external parsed entities referred to from there) to the current project.

.topic 32310
Use this command to add a new folder to the current project. You can also access this from the context-menu that is available when you right-click on any folder in the project window.

.topic 32311
The properties command lets you set important aspects for the individual folders in your project.

The File extensions you enter help to determine the automatic file-to-folder distribution that occurs when you add new files to the project itself (as opposed as to one particular folder).

You can define the DTD or Schema document that should be used for validation of all files in the folder.

You can define the XSL Stylesheet to be used for XSL Transformation of all files in the folder.

If you are developing XSL Stylesheets yourself, you can also assign an example XML document to be used to preview the XSL Stylesheet in response to an XSL Transformation command issued from the stylesheet document instead of the XML instance document.

For batch XSL Transformations you may also want to define an output directory that the resulting files should be put into.

If you have added one file or URL to more than one folder in your project, you can use the properties command to set the default folder, whose settings should be used when you choose to validate or transform the file in non-batch mode.

.topic 32312
Shows the file name and path information for the nine most recently used projects so that they can be accessed more quickly and easily the next time XML Spy is started.

Also note, that XML Spy can automatically open the last project that you used, whenever you start XML Spy.

.topic 32400
The XML menu contains all commands necessary for manipulating XML documents with XML Spy. You'll find operations to insert or append elements, modify the element hierarchy, and set a namespace prefix for items.

You can also check documents for well-formedness or validate them against any support Schema or DTD.

.topic 32410
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.

.topic 32411
Insert a new attribute before the selected item. If the current selection is any element other than the first element, the attribute is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32412
Insert a new element before the selected item. If the current selection is an attribute, the new element is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32413
Insert new text content before the selected item. If the current selection is an attribute, the text is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32414
Insert a new CDATA block before the selected item. If the current selection is an attribute, the CDATA is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32415
Insert new Comment before the selected item. If the current selection is an attribute, the Comment is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32416
Insert new XML declaration <?xml version="1.0" encoding="UTF-8"?> before the selected item.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.

.topic 32417
Insert a new Processing Instruction (PI) before the selected item. If the current selection is an attribute, the PI is still inserted before the first element to satisfy the well-formedness constraints of XML.

.topic 32418
Insert a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - before the selected item.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.

You may also want to use the Assign DTD command instead, which lets you quickly create a DOCTYPE statement that refers to an external DTD document.

.topic 32419
Insert an external ID (SYSTEM or PUBLIC) into a DOCTYPE declaration before the selected item.

.topic 32420
Insert an element declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.

.topic 32421
Insert an attribute list declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.

.topic 32422
Insert an entity declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.

.topic 32423
Insert a notation declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) before the selected item.

.topic 32430
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.

.topic 32431
Append a new attribute after the last element within the same parent.

.topic 32432
Append a new element after the last element within the same parent.

.topic 32433
Append a new text content block after the last element within the same parent.

.topic 32434
Append a new CDATA block after the last element within the same parent.

.topic 32435
Append a new Comment after the last element within the same parent.

.topic 32436
Inserts a new XML declaration <?xml version="1.0" encoding="UTF-8"?> as the first item in a document.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.

.topic 32437
Append a new Processing Instruction (PI) after the last element within the same parent.

.topic 32438
Append a new Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - after the last element within the same parent.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.

.topic 32439
Append an external ID (SYSTEM or PUBLIC) in a DOCTYPE declaration after the last element of the same parent.

.topic 32440
Append an element declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32441
Append an attribute list declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32442
Append an entity declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32443
Append a notation declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32450
Adds a child item to the currently selected element. This is especially useful for adding attributes to an item or creating child elements.

.topic 32451
Insert a new attribute as a child of the selected item.

.topic 32452
Insert a new element as a child of the selected item.

.topic 32453
Insert new text content as a child of the selected item.

.topic 32454
Insert a new CDATA block as a child of the selected item.

.topic 32455
Insert new Comment as a child of the selected item.

.topic 32456
Insert a new XML declaration <?xml version="1.0" encoding="UTF-8"?> as a child of the selected item.

Just kidding, since each XML document may only contain one XML declaration and since it must appear at the very top of the file, this command is only available, when you are actually looking at a totally empty file....

.topic 32457
Insert a new Processing Instruction (PI) as a child of the selected item.

.topic 32458
Insert a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD) - as a child of the selected item.

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document and consequently this command is only available, if you are looking at a total empty file.

.topic 32459
Insert an external ID (SYSTEM or PUBLIC) into a DOCTYPE declaration as a child of the selected item.

.topic 32460
Insert an element declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.

.topic 32461
Insert an attribute list declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.

.topic 32462
Insert an entity declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.

.topic 32463
Insert a notation declaration into a DOCTYPE declaration or into an external Document Type Definition (DTD) as a child of the selected item.

.topic 32470
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.

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.

.topic 32471
Convert the selected item into a new attribute.

.topic 32472
Convert the selected item into an element.

.topic 32473
Convert the selected item into text content.

.topic 32474
Convert the selected item into a CDATA block.

.topic 32475
Convert the selected item into a Comment.

.topic 32476
Convert the selected item to an XML declaration <?xml version="1.0" encoding="UTF-8"?>.

Please note, that each XML document may only contain one XML declaration and that it must appear at the very top of the file.

.topic 32477
Convert the selected item to a new Processing Instruction (PI)

.topic 32478
Convert the selected item to a Document Type Declaration - or more precisely, the DOCTYPE block for the internal subset of a Document Type Declaration (DTD).

Please note, that a DOCTYPE block may only appear at the top of an XML instance document between the XML Declaration and the root element of the XML document.

.topic 32479
Convert the selected item to an external ID (SYSTEM or PUBLIC) in a DOCTYPE declaration.

.topic 32480
Convert the selected item to an element declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32481
Convert the selected item to an attribute list declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32482
Convert the selected item to an entity declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32483
Convert the selected item to a notation declaration in a DOCTYPE declaration or in an external Document Type Definition (DTD).

.topic 32490
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.

.topic 32491
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.

.topic 32492
When you are editing textual data, it is often convenient to insert a new sub-element that contains some text, which is already present in the document. The Enclose in Element command lets you accomplish this with any text selection within another element. Once you select this command from the menu or toolbar, the currently selected text is cut from its parent element and inserted into a newly created child element.

If you are editing a document based on a Schema or DTD, you will automatically be presented with a list of valid choices for the kind of element you are allowed to insert in this position.

.topic 32493
This command checks the document for well-formedness by the definitions of the XML 1.0 specification. Every XML document must be well-formed and therefore XML Spy also automatically checks for well-formedness whenever a document is opened, saved, or the view mode is switched from source to grid or browser.

If the well-formedness check succeeds, a brief message is displayed at the bottom of the main window:

If any error is encountered during the well-formedness check, the source of the problem is highlighted and a corresponding error message is shown:

Normally it is not permitted to save a mal-formed XML document, but XML Spy gives you a "Save anyway" option when the automatic well-formedness check upon saving fails. This can be useful, when you temporarily want to suspend your work and later resume it without being able to make the intermediate version of the file well-formed.

The Check well-formedness command normally operates on the frontmost main window, but you can also use the Check well-formedness command on any file, folder, or group of files in the active project window.

.topic 32494
XML Spy can validate an XML document against the rules set forth in its Schema or Document Type Description (DTD) or it can validate any XML Schema or DTD against the rules set forth in the corresponding specification

XML Spy uses its built-in incremental validating parser that supports all major Schema dialects, such as DTD, DCD, XDR, XML-Data, BizTalk, and the new W3C XML Schema Definition Language (XSD) .

If the validation succeeds, a brief message is displayed at the bottom of the main window:

If any error is encountered during the validation, the source of the problem is highlighted and a corresponding error message is shown:

The Validate command also automatically includes a well-formedness check, so there is no need to first use the Check well-formedness command manually before validating a file.

Please note that you can use this command to validate XML instance documents and for validating XML schemas or DTDs.

This command normally operates on the frontmost main window, but you can also use the Validate command on any file, folder, or group of files in the active project window, where you can also define the Schema or DTD to validate with on a per-folder basis in the project properties.

.topic 32497
When you are validating an XML document, XML Spy first tries to locate any reference to a supported schema dialect within the document. It then loads the corresponding schema or DTD into memory and uses its definitions to validate your XML instance document.

Once the Schema or DTD has been loaded into memory, XML Spy also provides you with intelligent editing functions in the Info Window and Entry-Helpers.

As long as your are keeping your XML instance document open, XML Spy will also keep the Schema or DTD in memory (see the Flush Memory Cache command on the DTD/Schema menu).

.topic 32498
XML Spy supports all major Schema dialects, such as DTD, DCD, XDR, XML-Data, BizTalk, and the new W3C XML Schema Definition Language (XSD) and also lets you  validate these schemas against their specification to make sure that they can be used for the creation, editing, and validation of XML instance document that are based on these schemata.

.topic 32495
If you have modified the Schema or DTD that an open XML document is based on, it can sometimes become desirable to reload that Schema or DTD so that the intelligent editing information (such as the Entry-Helper and Info windows) presented in the XML document reflects your changes.

This is what the Update Entry-Helpers command does.

.topic 32496
To make working with XML namespaces a bit easier, XML Spy provides a "Set Namespace" command that lets you set the namespace identifier for a group of selected elements (including their children).

You can choose to set the namespace prefix on either elements, attributes, or both - but do keep in mind that attributes normally don't need to have the same prefix as their parent elements, since attributes always inherit the element's namespace, if no prefix is given.

.topic 32500
XML Spy 3.0 contains many commands that let you operate with Schemas and Document Type Definitions (DTDs) efficiently.

You can assign DTDs or Schemas to be used for validation with any XML instance document, you can generate a Schema from an example XML document (or from a group of files in the project window), you can convert between all major schema dialects, and XML Spy lets you quickly locate the definition of any element or attribute in the corresponding schema while you are editing your XML documents.

.topic 32501
This command allows you to quickly assign a Document Type Definition (DTD) to an XML document that is to be used for Validation and intelligent editing.

It will open the common Assign File dialog to let you specify the DTD file you wish to assign and will insert the required DOCTYPE statement into your XML document:

<!DOCTYPE main SYSTEM "http://link.xmlspy.com/spyweb.dtd">

.topic 32502
This command allows you to quickly assign a Schema to an XML document that is to be used for Validation and intelligent editing.

It will open the common Assign File dialog to let you specify the XSD, XDR, or BizTalk schema file you wish to assign and will insert the required namespace declaration attributes into your XML document:

xmlns="http://www.xmlspy.com/schemas/icon/orgchart"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xsi:schemaLocation="http://www.xmlspy.com/schemas/icon/orgchart http://schema.xmlspy.com/schemas/icon/orgchart.xsd"

The actual declarations generated by XML Spy depend on the Schema kind and - in case of the new W3C XML Schemas - also on the potential use of a targetNamespace in the Schema document.

.topic 32503
This command allows you to quickly include another Document Type Definition (DTD) or external parsed entity either in the internal subset of a document type definition or in any DTD document. This is done by defining a corresponding external parsed entity declaration and using that entity in the following line:

<!ENTITY % navigation.dtd SYSTEM "S:\xml\navigation.dtd">
%navigation.dtd;

When you use this command, it will open the common Assign File dialog to let you specify the DTD file you wish to include in your DTD.

.topic 32504
If your XML instance document is based on a certain Document Type Definition (DTD) you can use this command to quickly go to the corresponding DTD file.

.topic 32505
If your XML instance document is based on a certain Schema you can use this command to quickly go to the corresponding Schema definition file.

.topic 32506
While you are editing an XML document it can sometimes be very valuable to look up the exact definition of an element or attribute in the corresponding Document Type Definition or Schema document.

Simply select the item you are interested in and use this command to locate the corresponding definition in the defining DTD or Schema.

.topic 32507
If you are defining a new schema or DTD it is often helpful to create a few example XML documents as a starting point. XML Spy then allows you to generate a new schema from this document (or from a set of documents in the project window) as a first step.

If you are targeting one of the modern schema kinds (e.g. XSD or BizTalk), XML Spy can automatically detect datatypes (such as date, time, number, uri, etc.) being used in your XML documents and create the corresponding restrictions in the schema.

XML Spy will also optionally detect typical enumeration scenarios, where an element or attribute can only contain items from a predefined list of values.

This command normally operates on the frontmost main window, but you can also use the Generate DTD/Schema command on any file, folder, or group of files in the active project window.

.topic 32508
Especially in today's world of ever-changing schema versions it is important to have a tool at hand that can easily convert your content model between the various schema dialects.

Simply open your existing Schema or DTD and use this command to turn your DTDs into XML Schemas compliant with the new April 7, 2000 draft - or any other way round.

.topic 32509
To speed up validation and intelligent editing, XML Spy caches all recently used DTD, external parsed entity, and Schema documents in memory. Information from these documents is also displayed, when you are using the Go to Definition command.

If memory is tight on your system, or if you have been using many different documents based on different schemas recently, you can use this command to flush all cached Schema and DTD documents from memory.

.topic 32600
The eXtensible Stylesheet Language (XSL) and in particular the XSL Transformation (XSLT) lets you specify, how an XML document shall be converted into other XML documents or text files, such a HTML, XHTML, or WML pages.

XML Spy supports XSL and XSLT through both its intelligent editing features in the Text and Enhanced Grid Views as well as through a set of commands that lets you perform common XSL-related operations.

Please see the technical background information ons XSLT Processors for further details.

.topic 32601
To perform an XSL Transformation of any XML document, XML Spy can either use the Microsoft-supplied MSXML module or you can specify any external XSLT processor in the XSL tab on the Settings dialog.

If your XML document contains a reference to an XSL stylesheet, which can be easily assigned using the Assign XSL command, this is automatically used by the XSLT transformation command. Alternatively you can also define the XSLT stylesheet to transform with on a per-folder basis in the project properties.

This command normally operates on the frontmost main window, but you can also use the XSL Transformation command in batch-processing mode on any file, folder, or group of files in the active project window.

Please see the technical background information ons XSLT Processors for further details.

.topic 32602
This command allows you to quickly assign an XSL stylesheet to an XML document that is to be used for XSL Transformation or rendering by any XML-compatible browser.

It will open the common Assign File dialog to let you specify the XSL or XSLT file you wish to assign and will insert the required processing instruction into your XML document:

<?xml-stylesheet type="text/xsl" href="http://link.xmlspy.com/main.xsl"?>

.topic 32603
If your XML document contains a reference to an XSL stylesheet, this command lets you quickly open the corresponding XSL or XSLT document.

.topic 32700
XML Spy 3.0 contains several powerful data exchange functions on the Convert Menu that allow you to easily convert back and forth between text, word processing, databases, and XML files.

.topic 32701
This command lets you import any structured text file into XML Spy and convert it to XML format immediately. This is especially useful when you want to import legacy data from older systems, because most software products support a text export interface of some sorts.

In order to convert the data into Unicode (which is the basis of all XML documents), you need to specify which character-set the file is encoded in. For US or Western European Windows systems this will most likely be Codepage 1252, which is also referred to as the ANSI encoding. If you are importing 16-bit or 32-bit Unicode (UCS-2, UTF-16, or UCS-4) files, you can also switch between little-endian and big-endian byte order.

To successfully import a text file, you need to specify the field delimiter that is used to separate columns or fields within the file. XML Spy will auto-detect common row separators (CR, LF, or CR+LF).

Some text files exported from legacy systems enclose textual values in quotes to better distinguish them from numeric values. If this is the case, XML Spy lets you specify what kind of quotes are being used in your file and will remove these quotes automatically when the data is imported.

It is also very common for such text files to contain the actual field names in the first row within the file. XML Spy gives you a checkbox so that you can automatically set your XML element or attribute names according to this information.

Click on the "Choose file" button to select a file to be imported. This file will be remembered the next time you enter this dialog again, so that you can easily change settings and reimport a file if the resulting XML file does not match your expectations.

Once you have selected the file to be imported, XML Spy will automatically give you a preview of the data contained in the file. Any change in the above options will be reflected in the preview immediately.

You can simply rename any field or column by clicking on its title to edit the name.

XML Spy also lets you choose, whether you wish to import a column as an attribute, element, or if you'd rather skip the column entirely. Simply click on the symbols to the left of the column titles to toggle between these three options.

.topic 32702
The database import allows you to either select an existing Microsoft Access (i.e. Jet Engine) file or specify any ActiveX Data Object (ADO) data source (such as SQL Server, Oracle, or any other ODBC-conformant database).

Once you have selected your data source, you can either choose a database table to be imported from a list, or enter any arbitrary SELECT statement to create the record-set you intend to import.

When you have configured the data source you are about to import, click the Preview button to verify that this is indeed the correct data that you wish to import. Please note, that for security reasons, the OK button will only be enabled after you have actually previewed the data.

XML Spy also lets you choose, whether you wish to import a column as an attribute, element, or if you'd rather skip the column entirely. Simply click on the symbols to the left of the column titles to toggle between these three options.

XML Spy also lets you choose different representations for date and number formats - depending on whether you intend to use the resultant XML file in conjunction with the new unified datatypes proposed by the most recent XML Schema draft or if you want to keep those formats corresponding to the locale in use in your country.

If you need help in entering an ADO connection string, you can use the Build button, which brings up the ADO Data Link properties dialog:

Select the corresponding OLE DB Provider from the list and click on the Next button to enter the connection properties:

XML Spy relies on the ActiveX Data Object (ADO) interface for much of the basic database connectivity. ADO is included with Windows 2000 and Microsoft Office 2000, but you may need to install it if you are using an older version of Windows or Office. Please refer to our FAQ for more information on ADO and to download the Microsoft Data Access Components (MDAC) which allow you to upgrade to the latest ADO version. We can also recommend that you visit the Microsoft Universal Data Access site on the Internet.

After you have imported your data and converted it to XML format, you may also want to use the Schema Generation function to get all the datatype information you need from your database into your XML documents.

.topic 32703
If you have Microsoft Word or Microsoft Office installed on your system (Version 97 or 2000 is required), you can directly import any Word document and convert it to XML format, if you have been using paragraph styles in Microsoft Word.

When you select this command, you can choose any existing Word file and XML Spy will automatically generate an XML document with included CSS stylesheet that represents each paragraph as an element, whose name is set to be the name of the corresponding paragraph style in Microsoft Word.

.topic 32704
It may sometimes become necessary to export XML data into other formats for exchange with databases or legacy systems. Depending on the output data format required, you may either want to use XSLT Transformations or this Export command to export your XML data.

You will first need to tell XML Spy how you would like your exported data to be structured. Since XML is structured hierarchically and most database and legacy systems are using the relational model, XML Spy will help you in producing output that can be interpreted in a relational context.

You can choose to export the entire XML document or restrict your export to the currently selected element (and its children).

Depending on your XML data, you may want to export only elements, attributes, or the textual content of your elements into the fields common to structured text files or databases.

The list of available element types lets you choose which elements you wish to export and also shows you how many records and fields this will actually produce once the export operation is started.

XML Spy will then produce one output file or table for each element type selected and you can choose to automatically create primary/foreign key pairs to link your data in the relational model.

When you are done defining the scope of your export operation, click on one of the two target buttons to export your data to a set of text files or into any database.

.topic 32705
If you are exporting your XML data to text files, you must specify the desired character-set encoding to be used and can also set the same options that are also available in the Import text file dialog.

The set of text files will be generated in the folder you specify and each file name will be generated form the corresponding element name. You can also specify the file extension to be used.

.topic 32706
You can now specify whether you intend to create a new Microsoft Access (Jet Engine) database file, whether you would like to add the data to the tables in an existing Access file, or if you want to export the data to any other ADO-compliant database system (such as SQL Server or Oracle).

The Build button again lets you create the necessary ADO connection string - for more information please refer to the information on ADO in the description of the Import Database command.

.topic 32800
The Table menu contains all commands relevant to the Database/Table View in XML Spy.

.topic 32801
XML Spy lets you alternatively view repeated elements in the regular Enhanced Grid View or in the new Database/Table View:

If you select the first element of any sequence of repeated elements, you can use this command to display the elements in a tabular fashion. This will effectively break out all attributes and sub-elements and show them as columns in a way similar to any spreadsheet- or database-like application.

.topic 32802
If you are displaying repeated elements in the Database/Table View, you can add new items conveniently by using the Insert Row command. This will insert a new row (i.e. a new element) before the currently selected row.

.topic 32803
If you are displaying repeated elements in the Database/Table View, you can add new items conveniently by using the Append Row command. This will add a new row (i.e. a new element) at the end of the table.

.topic 32804
If you are displaying repeated elements in the Database/Table View, XML Spy lets you sort these elements by any column (i.e. by any attribute or sub-element).

XML Spy will automatically try to determine, what kind of data you are using in the selected column and choose an alphabetic or numeric sort method accordingly. However, if XML Spy is not sure which sort order to prefer, it will present this dialog to ask for your input:

.topic 32805
If you are displaying repeated elements in the Database/Table View, XML Spy lets you sort these elements by any column (i.e. by any attribute or sub-element).

XML Spy will automatically try to determine, what kind of data you are using in the selected column and choose an alphabetic or numeric sort method accordingly. However, if XML Spy is not sure which sort order to prefer, it will present this dialog to ask for your input:

.topic 32900
The View menu controls the display of the frontmost Main window and allows you to manipulate the way that XML Spy displays your information.

.topic 32901
Switches the current document into Enhanced Grid View. This view includes an (optional) tree and structured grid display and is the preferred view for editing XML documents. If the previous view was the Text View, the document is automatically checked for well-formedness.

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.

.topic 32902
Switches the current document into Text View. This view allows you to edit the XML source in a source-code fashion and includes syntax-coloring. If the previous view was the Enhanced Grid View, the document is automatically formatted according to same settings that are used when saving a file (these can be modified in the "Save File" section of the File page of the Settings dialog).

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.

.topic 32903
Switches the current document into Browser View. This view uses an XML-enabled browser (preferably Internet Explorer 5) to render the XML document using information from potential CSS or XSL style-sheets. When switching to browser view, the document is checked for validity first, if you have selected to automatically perform validation upon saving.

For further information on this view, please see the detailed description of the various views in the Main Window section in the XML Spy Reference.

.topic 32904
To quickly locate an item in a larger document, the combination of tree and grid in the Enhanced Grid View can be very helpful in navigating. The "Synchronize" command allows you to quickly locate the selected item in the tree or grid by opening the element hierarchy in the other one to exactly the same level and highlighting the selected item.

As a shortcut you may also double-click on an element in the tree to navigate to that very item in the grid.

.topic 32905
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.

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.

You can also expand and collapse any element by clicking on the gray bar to the left of each element.

.topic 32906
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.

You can also expand and collapse any element by clicking on the gray bar to the left of each element.

.topic 32907
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 to expand the item one level after the other.

.topic 32908
Sometimes it can be necessary to focus on one element and its children and ignore all the other surrounding elements. This is what the collapse unselected command lets you do!

Simply select the item that you want to work with and choose this command to collapse all other (unselected) elements.

.topic 32909
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.

.topic 32910
If you are working with an external XSLT processor (see the XSL page on the Settings dialog for details) you may often get error messages by line number and character position. XML Spy lets you quickly navigate to that spot by using this command:

This command works in both the Text View and Enhanced Grid View, but will only be able to show an approximate position in the grid view by highlighting the element closest to the character position specified.

.topic 32911
It is often convenient to open another document in XML Spy that is being referred to from within the file you are currently editing. This is what the "Go to File" command will let you do.

All you need to do is select the file name, path name, or URL you are interested in and choose this command from the View menu.

You can either select an entire element or attribute in the Enhanced Grid View, or you can select some characters from within any item in the Text or Enhanced Grid Views. If you cursor is position between quotes, XML Spy will automatically use the entire string that is actually enclosed by the quotes.

.topic 33000
This menu contains commands that are only available in the Browser View of an XML document.

.topic 33001
Go back to the previously displayed page. This can be useful if you accidentally click on a link in your XML document and want to return to it.

.topic 33002
Once you have used the Back command, you can later decide to go forward again, which simply follows the last link you have clicked on.

.topic 33003
Instructs the browser to stop loading your document. This can be useful if large external files or graphics would be loaded over a slow Internet connection.

.topic 33004
Updates the Browser View by reloading the XML document and potential external CSS or XSL style-sheets as well as DTDs. You can also use the F5 key to trigger this command.

.topic 33005
Let's you choose the default font site for rendering the text of your XML document. This is similar to the Font-Size command in most browsers.

.topic 33006
Sometimes it can be convenient to see the document side-by-side in a browser and editing (i.e. text or enhanced grid) view. This command lets you open the browser view in a separate window so that side-by-side viewing is possible.

If you have separated the browser view, you can now press F5 in the editing view to automatically refresh the corresponding browser view.

.topic 33100
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.

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 easily toggle the various additional windows (such as Project, Info, or Entry-Helpers) or switch to each open document window directly from the menu.

.topic 33101
This command rearranges all open document windows so that they are all cascaded (i.e. staggered) on top of each other.

.topic 33102
This command rearranges all open document windows so that they are all visible at the same time and the main window area is tiled horizontally.

.topic 33103
This command rearranges all open document windows so that they are all visible at the same time and the main window area is tiled vertically.

.topic 33104
This command lets you quickly toggle the state of the Project Window.

.topic 33105
This command lets you quickly toggle the state of the Info Window.

.topic 33106
This command lets you quickly toggle the state of all three Entry-Helper Windows.

.topic 33107
This command lets you  toggle the state of all additional windows:

the Project Window
the Info Window
the three Entry-Helper Windows

This is very useful if you want to quickly hide all non-document windows to get more screen real-estate for viewing the actual document you are working on.

.topic 33108
The customization feature of XML Spy lets you define your toolbars, create new toolbars, and assign all major commands to these toolbars to suit your personal editing style.

Use the Toolbars tab to define or modify the list of toolbars you would like to have. The New... button creates a new empty toolbar that you can then populate using the Commands tab. The Reset button allows you to return each toolbar to its predefined state.

The Commands tab lets you assign commands to toolbars by simply dragging the available command buttons to the toolbars on your screen. You can select commands from many different categories and will always see a short description of each command in the dialog.

To remove a button from a toolbar, simply drag the button back to the customize dialog.

.topic 33109
This list shows all currently open windows and lets you quickly switch between them. You can also use the Ctrl-TAB keyboard shortcut to cycle through all open windows.

.topic 33200
The Help menu contains all commands required to get help or more information on our product as well as links to information and support pages on our web server.

In addition the Help menu contains the Registration dialog, which lets you enter your license key-code once you have purchased the product.

.topic 33201
XML Spy 3.0 includes a context-sensitive online help system that is based on the Microsoft HTML Help Viewer and lets you directly access information on each menu command, dialog and window from within XML Spy.

You can simply press the "F1" button on your keyboard anytime to access the context-sensitive help information for the currently open dialog or you can press "F1" while you are browsing through the menus with your mouse.

At the same time, all dialogs include a little question mark (?) symbol on the right-hand side in their window title bar. Simply click on this symbol to access the context-sensitive help topic for that dialog.

If you would like to learn more about any topic, you can also use the Table of contents and Index commands on the Help menu or search through the entire text of the electronic documentation using the Search command.

.topic 33202
The table of contents is displayed on the left-hand side of the help window and shows a hierarchical representation of all the chapters and topics contained in the online help system. You can use this command to jump to the table of contents directly from within XML Spy.

Once the help window is already open, you can use the three leftmost tabs above the this area of the help window to toggle between the table of contents, index, and search panes. The Favorites tab also lets you bookmark certain pages within the help system.

.topic 33203
If you are looking for specific information on a certain topic, you can access the keyword index of the XML Spy 3.0 Online Help using the Index command from within XML Spy or using the Index tab within the left pane of the online help system.

The index lists all relevant keywords and lets you quickly jump to a topic by double-clicking the respective keyword. If more than one topic match the selected keyword, you are presented a list of available topics to choose from:

.topic 33204
The Search command lets you perform a full-text search on the entire text of the electronic documentation for fast access to all the information available in the online help system.

Once you enter your search term into the query field and hit the Return key on your keyboard, the online help system displays a list of available topics that contain the search term you've entered. Simply double-click on any item in the list to display the corresponding topic.

.topic 33205
When you start XML Spy for the first time, you are automatically presented the Registration dialog, which lets you register your software product in order to be eligible for technical support and activate your license, which is done by entering a unique key-code to unlock the software.

FREE Evaluation Version

If you have just downloaded the XML Spy from our web server and would like to activate your FREE 30-day evaluation version, please enter your name, company, and e-mail address and click on the "Request FREE evaluation key..." button. XML Spy then uses your Internet connection to transmit the information you have just entered to our web server, where a personal unique evaluation license will be generated for you. The license key-code, which is necessary to unlock your software, will then be sent to the e-mail address you have entered - it is therefore important, that you enter your real e-mail address in the registration dialog!

Once you have clicked the request button, please go to your favorite mail software  and retrieve the license key-code from our e-mail message, which you should be receiving in a matter of a few minutes (depending on transient Internet conditions).

If you have requested a key-code and it didn't arrive in time, the process may have failed due to Firewall restrictions in your network. If this is the case, please send a short message with your information via e-mail to evaluate@xmlspy.com and our support staff will generate a key-code for you manually.

When you have received your evaluation key-code, please enter it into the key-code field in the registration dialog and click on OK to start working with XML Spy.

Whenever you want to place an order for a licensed version of XML Spy, you can also use the "Order license key..." button in the registration dialog or the Order form menu command to proceed to the Secure XML Spy Online Shop on the Internet.

Licensed Version

If you have purchased a single-user license for XML Spy, you will receive an e-mail message from us that contains your license-data and includes your name, company and key-code. Please make sure that you enter all fields from your license e-mail into the registration dialog. The key-code will only be able to unlock your software installation, if the values in the name and company fields match the name and company entered into our order form.

If your company has purchased a multi-user license for XML Spy, you will receive an e-mail message from us that contains your license-data and includes your company name and key-code. Please make sure that you enter the company name and key-code from your license e-mail into the registration dialog and also enter your personal name into the name field. The key-code will only be able to unlock your software installation, if the value in the company field match the company name entered into our order form.

Please note that the XML Spy License-Agreement does not allow you to install more than the licensed number of copies of XML Spy on the computers in your organization (per-seat license).

.topic 33206
This takes you directly to the XML Spy web-server http://www.xmlspy.com where you can find out about news, product updates and additional offers from the XML Spy team.

.topic 33207
Whenever you want to place an order for a licensed version of XML Spy, you can use this menu command or the "Order license key..." button in the registration dialog to proceed to the Secure XML Spy Online Shop on the Internet, where you can choose between different single- and multi-user license packs.

Once you have placed your order, you can choose to pay by credit card, send a cheque by mail, or use a bank wire transfer.

.topic 33208
If you have any questions regarding our product, please feel free to use this command to come to our support center on the Internet at any time. This is the place where you'll find links to the FAQ, support form, and e-mail addresses for contacting our support staff directly.

.topic 33213
To help you in getting the best support possible, we are providing a list of Frequently Asked Questions (FAQ) on the Internet, that is constantly updated as our support staff encounters new issues that are raised by our customers.

Please make sure to check the FAQ before contacting our technical support team. This will allow you to get help more quickly and at the same time help us keep our support staff available for real support incidents.

We regret that we are not able to offer technical support by phone at this time, but our support staff will typically answer your e-mail incidents within one business day.

If you would like to make a feature suggestion for a future version of XML Spy or if you wish to send us any other general feedback, please use the questionnaire form.

.topic 33209
You can help us improve our product by filling in this questionnaire form on the Internet to tell us what you like and what additional features you want to see in a future release of XML Spy.

Before filling in the questionnaire to suggest a new feature, please make sure that you have checked the Search command of our online help system to make sure that you haven't simply overlooked a feature that is already present in the new 3.0 version.

.topic 33210
If you prefer a printed manual over the online help system (or if you'd like to have it in addition to the online help), you can always download the full documentation in Adobe Acrobat PDF format from our web server (requires the Adobe Acrobat Reader software, which you can download for free from the Adobe web server) and print it out to your favorite printer.

.topic 33211
If you are located in Japan, you may prefer to contact our Japanese distributor on the Internet by using this menu command.

.topic 33212
This command shows the XML Spy splash screen and copyright information dialog, which includes the XML Spy logo.

Please note that this dialog always shows the version number 3.0 - to find the number of the actual build you are using, please look at the status bar, which always includes the full version and build number.

.topic 34000
The XML Spy toolbars 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 and the status bar shows a more detailed description of the command.

You can also drag the toolbars from their standard position to any location on the screen, where they will be available as a floating palette window. Alternatively you can also dock them to the left or right edge of the main XML Spy window.

Please note that XML Spy 3.0 lets you fully customize all toolbars to assign any frequently used command to a button.

.topic 35000
Most dialogs in XML Spy are shown in response to a certain menu command or click on a toolbar button and are, therefore, explained in the individual chapters that describe the respective commands.

This chapter talks about common dialogs, that are used by more than one command.

.topic 35100
The Assign File dialog is presented by the Assign DTD, Assign Schema, or Assign XSL commands and asks you for a file or path name to be used for the requested process:

You can either enter a path name into the text box, select from a list of most recently used filenames using the drop-down arrow to open a combobox, you can browse for a file on your computer (using the common Open dialog), or you can use the Window button to select any currently open window or any file that is part of the current project.

.topic 35200
The Select File dialog lets you choose any currently open window or any file from your current project as a convenient way to locate a file to be used for the various Assign commands.

Both file lists will only show available files based on their extensions and the corresponding command that this dialog was opened from: Assign DTD, Assign Schema, or Assign XSL.

.topic 40000

For your convenience we are providing many services through our web site, which you can directly access from the Help Menu within XML Spy or through this help system.

Please visit our XML Spy Home Page frequently to learn about product updates, news, and other XML related information.

The Support Center shows available support options that you can access freely as a registered user.

The FAQ contains a collection of frequently asked questions and their answers. Please make sure that you check this resource, before submitting a new incident to our technical support staff.

Please fill in the Questionnaire to provide us with valuable feedback on how we can further improve our product or what additional features you'd like to see in a future version.

If you have been using the evaluation version and want to buy the fully licensed product, or if you need to purchase additional license for your colleagues, please visit our Order Pages to access our secure online shop.

.topic 50000
This chapter contains useful background information on the technical aspects of XML Spy. If you run across a technical term in the remainder of this help system you may occasionally find a link to some of the background materials provided here.

.topic 54000
Unicode is the new 16-bit character-set standard defined by the Unicode Consortium that provides a unique number for every character,

no matter what the platform,
no matter what the program,
no matter what the language.

Fundamentally, computers just deal with numbers. They store letters and other characters by assigning a number for each one. Before Unicode was invented, there were hundreds of different encoding systems for assigning these numbers. No single encoding could contain enough characters: for example, the European Union alone requires several different encodings to cover all its languages. Even for a single language like English no single encoding was adequate for all the letters, punctuation, and technical symbols in common use.

These encoding systems also conflict with one another. That is, two encodings can use the same number for two different characters, or use different numbers for the same character. Any given computer (especially servers) needs to support many different encodings; yet whenever data is passed between different encodings or platforms, that data always runs the risk of corruption.

Unicode is changing all that!

Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. The Unicode Standard has been adopted by such industry leaders as Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase and many others. Unicode is required by modern standards such as XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc., and is the official way to implement ISO/IEC 10646. It is supported in many operating systems, all modern browsers, and many other products. The emergence of the Unicode Standard, and the availability of tools supporting it, are among the most significant recent global software technology trends.

Incorporating Unicode into client-server or multi-tiered applications and websites offers significant cost savings over the use of legacy character sets. Unicode enables a single software product or a single web site to be targeted across multiple platforms, languages and countries without re-engineering. It allows data to be transported through many different systems without corruption.

Even though XML is clearly defined to be based on the Unicode standard, XML Spy is still one of the few XML development tools that fully implements Unicode!

.topic 54002
Unfortunately these Windows versions do not include full Unicode capabilities on the operating system layer. Instead support for non-roman writing-systems is provided through so-called code-pages that contain all the required characters mapped to either the available byte-values in the range of 0x80 to 0xFF (in case of single-byte systems, such as Cyrillic or Hebrew) or as double-byte values, where the first most significant bit of the first byte is typically used to indicate that this is a so-called "wide character" (in case of CJK writing-systems).

Therefore we are providing a special Windows 95/98 version of XML Spy that is automatically installed whenever you are using the Setup program on these operating systems. This version of XML Spy supports the following code-pages for viewing and editing XML documents (for excellent background information about code-pages please refer to http://czyborra.com/charsets/codepages.html):

Code-page	Equivalent XML Encoding
1252	ISO-8859-1 (Western, Latin-1)
1250	ISO-8859-2 (Eastern Europe, Latin-2)
1251	ISO-8859-5 (Cyrillic)
1253	ISO-8859-7 (Greek)
1254	ISO-8859-9 (Turkish)
1255	ISO-8859-8 (Hebrew)
1256	ISO-8859-6 (Arabic)
874	ISO-8859-11/TIS-620 (Thai)
932	Shift-JIS (Japanese)
936	GB2312 (Chinese)
949	EUC-KR (Korean)
950	Big5 (Taiwanese)

Whenever you open an XML file, XML Spy detects the character-set encoding used in that file, expands the file to an internal full Unicode representation and then transforms the document to a code-page supported by Windows 95/98 in order to enable viewing and editing of the document.

In most cases this process will be entirely automatic, as the available ISO-8895-x encodings as well as some of the CJK encodings often correspond with a certain code-page. However, if you open a Unicode encoded file (e.g. UTF-8 or UTF-16) XML Spy will be unable to determine which code-page to use and will thus bring up a dialog that asks you to specify a code-page to be used for editing.

In order to correctly view and edit a Unicode file under Windows 95/98 it is extremely important that you use this dialog to:

a)	choose the correct code-page that includes all characters contained in the file and
b)	later select a font and script from the settings dialog that also supports the same code-page.

If the file contains any characters that are not available in the selected code-page, the user will receive an error message including a detailed list of offending characters before they will be replaced by a '_' (under-score).

We therefore highly recommend using only the Windows NT/2000 version of XML Spy for editing XML files that make full use of Unicode!