XPath

What's new in XMLSpy Version 2015 Release 3

I'm very excited to announce the new v2015r3 release of XMLSpy today. XMLSpy continues to be the de-facto industry standard for XML Editing and we take that responsibility very seriously by adding support for new standards, improved technologies, as well as features that just make our users' work more productive every release.
This latest version of XMLSpy adds the following new features:
  • Support for XPath 3.1 and XQuery 3.1
  • Significantly extended XPath/XQuery tab
  • Support for Web Services Security and other security extensions
  • Support for XBRL Extensible Enumerations 1.0
  • Support for custom fonts in Output Windows
Improved XPath/XQuery tab in XMLSpy 2015r3
Let me tell you a little bit about each one of those features...



Support for XPath & XQuery 3.1

The RaptorXML engine at the core of XMLSpy now fully supports the updated XPath 3.1 and XQuery 3.1 specifications, which were published as W3 Candidate Recommendations in December of 2014. New capabilities in XPath and XQuery 3.1 include:
  • Maps
  • Arrays
  • Support for JSON: parse-json, json-docs, serialize to JSON
  • Lookup operator “?”
  • Arrow operator “=>”
  • New functions, e.g., sort, contains-token, parse-ietf-date
Maps and arrays increase flexibility and processing speed of XPath and XQuery statements significantly, while JSON support is important as adoption of the standard continues.

Significantly extended XPath/XQuery tab

The XPath/XQuery tab, which was augmented with innovative support for XQuery Update Facility in XMLSpy 2015, just got even more powerful for XSLT and XQuery developers. The new features - shown in the screenshot above - include:
  • Builder mode, offering a list of operators, expressions, and built in functions, which you can insert in your current expression by double clicking. Functions are inserted with their arguments indicated by “#” placeholders, making it easy to build expressions quickly and error-free. You can view a description of each item by hovering your mouse over it in the list. When you’re finished building an expression, click over to Evaluator mode to test the results.
  • Enhanced entry helpers now display the description of built in functions, and then show helpful function and listentrymeter details as you type, speeding development and ensuring accuracy.
  • Ready-to-use code snippets for complex statements such as FLWOR and XQuery Update expressions are provided in the Operator/Expression pane in Builder mode, allowing you to read a description of each and insert the expression at the cursor by double clicking.
  • Nine tabs are even more useful for developing and testing complex expressions. Once you have composed an XPath or XQuery statement on one tab, switching to a new tab lets you build and analyze the results of a new expression – but when you switch back to the previous tab, the expression and results are still there. This allows you to switch back and forth between multiple expressions that you develop side-by-side and incrementally make changes to each one of them, preserving both the expression AND the result for each tab.
     

Support for Web Services Security & other extensions

In response to increasing demand for end-to-end security of Web services transactions, XMLSpy 2015r3 now supports authentication based on the WS-Security (Web Services Security) standard via client certificates and calling Web services via HTTPS.
Published by OASIS, Web Services Security is an extension to the SOAP protocol designed to add security functions such as authentication to SOAP messages themselves for end-to-end security of complex Web services transactions. These measures add to those provided on the transport layer by HTTP security.
New options have been added to the SOAP Request Settings Dialog - shown in the screenshot below - which is accessed via the SOAP menu, allowing you to enable and edit HTTP security settings and WS-Security settings.

Support for XBRL Extensible Enumerations

XML Schema's xs:enumeration feature allows enumerated types to be defined. Such types have a fixed list of allowed values that cannot be changed until the next version of the schema is published.
XBRL projects often require "extensible enumerations", which leave extension taxonomy editors free to augment the list of allowed values for a concept. This is particularly important for allowing enumeration values in multiple languages as well as reusing existing domain hierarchies as fact enumeration values.
XMLSpy 2015r3 now supports extensible enumerations with multi-language labels in the XBRL Taxonomy editor.

For more information on What's New in the other products of the Altova MissionKit desktop developer tools and our Server product family, please take a look at the "What's new" page on our website and at the Altova Blog.

Extracting useful data from HTML pages with XQuery

When building in-house solutions or mobile enterprise applications, you are often faced with having to deal with legacy systems and data. In some ancient systems, the data might only be available as CSV files, in other cases it might be arcane fixed-length text reporting formats, but if the legacy system is less than 20 years old, chances are pretty good that someone built and HTML front-end and so the data is available through a browser interface that renders it in some poorly formatted HTML code that loosely follows the standard. And very likely you will find the data intermixed with formatting and other information, so extracting the useful data is usually not as easy as it sounds.

In addition, when you are building mobile solutions, you may sometimes need some government data that is not yet available in XML or another structured format, so you again are faced with having to extract that information from HTML pages.

Common approaches to extracting data from HTML pages, such as screen-scraping and tagging are cumbersome to implement and very susceptible to changes in the underlying HTML.

In this video demo I want to show you a better way of extracting useful and reusable data from HTML pages. In less than 15 minutes we will build a mobile solution that - as an example - takes Consumer Price Index data from the US Bureau of Labor Statistics, parses and normalizes the HTML page, and then uses an XQuery expression to build nicely structured XML data from the HTML table that can then be reused to build a CPI chart. I will walk you through the creation of the XQuery expression step-by-step so that you can easily apply this method to similar problems of HTML data extraction:



As you can see in the above video, it was fairly easy to create nicely structured XML data from a table in the HTML page and to create a first simple chart that plots the CPI data over time.

But the true power of this approach is that you have much more flexible charting capabilities in MobileTogether and the XML data is now reusable, so you can calculate annual inflation rates directly from the underlying CPI data and plot it as well.

In this next video demo I want to show you just how to do that in less than 10 minutes. We will add a year-range selector to our chart where we can define which years to plot, and we will add an overlay chart that derives the annual inflation rate based on the underlying CPI data using XPath calculations and the plots that data:



Using this technique, you can not only extract data from singular HTML pages, but easily build a modern mobile front-end experience for many legacy systems that just offer an HTML-based browser interface at present. This will enable you to make your workforce a lot more productive and efficient, as they can now use a friendly mobile app experience to access your system rather than having to deal with a couple of HTML pages and forms in a browser on their tiny smartphone screens.

XQuery Update Facility in XMLSpy

A really cool new feature in XMLSpy 2015 is the interactive XQuery Update Facility support, which lets you make changes to XML instance documents in a programmatic way - using XQuery statements - that exceed the typical regular expression based Find/Replace capabilities by far. The XQuery Update Facility specification provides a mechanism to insert nodes, delete notes, and modify nodes within instance documents. In XMLSpy 2015 you can now apply these updates either to the current file, all open files, all files in a project, or to entire directories.

This video explains the most important XQuery Update Facility commands and demonstrates how easy it is to put the power of XQuery Update Facility to work for you:



The new XQuery Update Facility support is one of the many new features introduced in the new Altova version 2015 product line last week, which includes new versions of XMLSpy, MapForce, all the other MissionKit tools, and all Altova server products.

Introducing MobileTogether - Build mobile in-house solutions faster

It's about time that I start talking about our next major product here: Altova MobileTogether is an exciting new cross-platform mobile environment that lets you build in-house mobile solutions for your workforce much faster and more productively than any other mobile cross-platform method out there. You can use MobileTogether to bring your in-house data — be it in SQL databases, XML, available as web services, etc. — to your employees on the device of their choice, be it business intelligence dashboards, elegant enterprise forms, or any other business processes from graphs for sales analytics to monitoring of business-critical data.


There are, of course, many ways to develop mobile solutions, and for external customer-facing apps the native platform approach or other multi-platform SDKs may make sense. But for in-house solutions the math just doesn't work. You need to be able to build these in a few days rather than weeks or months in order to stay on budget.


MobileTogether makes this rapid development possible by using a unique system architecture that consists of the following three components:


MobileTogether Designer

MobileTogether Designer is the IDE where you build your mobile solutions. It comes with full database-support for all major database servers as well as the ability to connect to any XML files, web services, HTML pages, or other data sources directly. If that's not enough, you can connect to FlowForce and MapForce server as an interim data transformation platform to get your data from EDI or other formats into XML easily.


Once you've defined your data sources, you then drag & drop UI controls onto your design surface and connect them with the data model. You can build powerful program logic using visual ActionTrees and for data manipulation the full power of XPath and XQuery is at your disposal.

This way you can build a powerful mobile solution in just a few hours and can test it right inside MobileTogether Designer using the built-in simulator that supports the iOS, Android, Windows Phone 8, and Windows 8 look&feel as well as many screen sizes and device options.

We have put together a few video demonstrations that show how easy it is to build a mobile solution with MobileTogether Designer.

MobileTogether Mobile App

Once you are satisfied with the way your mobile solution looks, it is time to get it onto your mobile device. The MobileTogether Mobile App is what runs your solutions on your device, and it is available for free form the respective app stores. The Mobile App is available for iOS, Android, Windows Phone 8, and even desktop Windows 8, so you can deploy your solutions to all mobile workers, no matter if they prefer a smartphone, tablet, or laptop!


Normally the MobileTogether Mobile App connects to a MobileTogether Server (see below), but for an initial trial run, you can simply connect the MobileTogether Mobile App directly to your MobileTogether Designer. Instead of starting the simulator in the designer, you select "Trial Run on Client" from the toolbar, and then you can see your mobile solution on your device and test it there, provided your mobile device is on the same local network as the computer where you are running MobileTogether Designer.

MobileTogether Server

Once you're ready to deploy your solution to your entire workforce, it is time to install and configure MobileTogether Server. This server acts as a conduit between your mobile clients and your database servers and other data sources in your IT infrastructure.


If you only want your mobile solutions to be available while the mobile devices are connected to your corporate Wi-Fi network, then it is sufficient to install the server in-house and your employees can immediately run your mobile solutions, once you've deployed them from the Designer to the Server.

If you want your employees to also be able to access your solutions while you are on the road, you will need to designate and open a port in your firewall so that the client devices can reach your server from the public Internet when they are traveling. We recommend installing an SSL certificate for that purpose so that the data connection between the clients and your MobileTogether Server is encrypted. In addition, we recommend securing the MobileTogether server with user authentication. You can choose between built-in user management, or the MobileTogether server can talk to your Active Directory server to integrate with your enterprise user management.

Alternatively, you can also install MobileTogether Server into a private cloud with a cloud provider of your choice, if you prefer to have your server running in a cloud rather than on your on-premises infrastructure.

Timeline

In May this year we first introduced Altova MobileTogether at TechEd in Houston, TX. In July we launched beta 1 of the MobileTogether Designer. In August we launched the beta 1 version of all the MobileTogether clients in the respective App Stores. And last week we launched beta 2 of MobileTogether Designer, Server, and the Apps. We expect MobileTogether to be commercially available later this fall.

Getting Started

You are invited to participate in the beta 2 and try it for yourself.


Just download the MobileTogether Designer from our website, download the MobileTogether Client from the App Store on your device, and you can be up and running and have your first solution on your device in 1-2 hours. Then, when you want to scale out to have your colleagues run it on their devices, you can download MobileTogether Server so that others can connect to it.

The Power of RaptorXML - now available in XMLSpy 2014

The RaptorXML Story

As you probably know by now, RaptorXML, our new 3rd generation high-performance XML, XPath, XSLT, XQuery, and XBRL processing engine, was a little over 2 years in the making. When we embarked on this mission in 2011, we set out to create a new processor that was highly optimized for multi-core CPUs, high throughput, and a reduced memory footprint. As part of that redesign we incorporated all our experience with the evolution of XML over the last decade and focused on adding support for all the latest standards, including XML 1.1, XML Schema 1.1, XPath 3.0, XSLT 3.0, XQuery 3.0, XBRL 2.1, XBRL Dimensions, XBRL Formula, and many others.

Our decision to first launch the new RaptorXML engine as a stand-alone server product in June rather than waiting for our annual product release in the fall was certainly not an easy decision to make. We knew that all our existing XMLSpy and MissionKit customers were eagerly awaiting support for XML Schema 1.1 as well as the 3.0 versions of XPath, XLST, and XQuery.

At the same time we knew that the engine was ready for large-scale production use, while the refactoring of our existing tools and integration of the new engine would still take another 3-4 months, so we decided to introduce RaptorXML as a stand-alone server product first. The initial RaptorXML announcement happened at the XBRL International conference in Dublin, Ireland, in May this year and commercial availability of the server followed in June, when RaptorXML joined the growing family of Altova Server products.

And it turns out we made the right decision. At this time RaptorXML+XBRL Server is already being used by over 50 customers, including a major banking regulator in Asia, to validate large amounts of XBRL data on high-end servers using XBRL 2.1 and XBRL Formula validation.


Altova MissionKit 2014 Launch

Now the long-awaited day has finally come and we are very excited to introduce our new Altova MissionKit 2014 product line that incorporates the RaptorXML engine in XMLSpy and many other MissionKit tools. This means you get immediate access to XML Schema 1.1, XPath 3.0, XSLT 3.0, XQuery 3.0, and XBRL Formula validation - in addition to all the previous standards - right from within the new XMLSpy 2014 XML Editor and you get a huge performance boost for all your projects due to the faster engine.

And we have, of course, extended our graphical XML Schema editor to include support for XML Schema 1.1 as well as adding the powerful SmartFix validation to the schema editor, so XMLSpy will now make intelligent suggestions on how to fix common XML Schema errors directly in the graphical schema editor.





Due to the new capabilities of RaptorXML you also get a cool new feature that has been requested by many users: the ability to display multiple validation errors at once!

And for all XBRL users we have included better XBRL Formula support as well as XBRL Concept Types in the XBRL Taxonomy editor. This makes XMLSpy Enterprise Edition the single most powerful XBRL development tool with taxonomy editing and powerful RaptorXML-based XBRL instance validation all available in one easily affordable tool.

Bottom-line: having RaptorXML inside of XMLSpy is just awesome and you will love the speed as well as the improved standards-conformance! And if you want to include RaptorXML-based validation in your own projects you can now deploy RaptorXML Server on Windows, Linux, and MacOS X. Check out the RaptorXML Server datasheet for more information.

But the good news doesn't stop with XMLSpy. Version 2014 of the Altova MissionKit includes several new features in MapForce as well, such as support for XML wildcards <xs:any> and <xs:anyAttribute> as well as the ability to generate comments and processing instructions in any XML output files.

Additional new features that are available across all major Altova MissionKit 2014 tools are: Integration with Eclipse 4.3, as well as updated support for new databases, including SQL Server 2012, MySQL 5.5.28, PostgreSQL 9.0.10, 9.1.6, 9.2.1, Sybase ASE 15.7, IBM DB2 9.5, 9.7, 10.1, Informix 11.70, and Access 2013.

Last, but not least, to help you take advantage of the powerful new XML Schema 1.1 capabilities, such as assertions, conditional type alternatives, default attributes, and open content, we are also launching a comprehensive new FREE XML Schema 1.1 online training course today.

For more information, please check out today's announcement on the Altova blog as well as the What's New page on the Altova website.

Altova MissionKit 2013

Just in case you missed these announcements last month, here is a quick recap of some of our blog posts about the new major features in the Altova MissionKit 2013:

But there is so much more included in version 2013 of the various developer tools across the entire MissionKit tools suite in terms of new features that we added in direct response to customer feedback:

  • Seamless integration options in Java applications for XMLSpy, MapForce, StyleVision, Authentic
  • Support for embedded XML Schemas in WSDL files
  • Enhanced WSDL documentation options
  • Flexible integration of external programs into XMLSpy
  • Support for CamelCase words in spell checker
  • Option to strip unnecessary whitespace
  • Support for Team Foundation Server MSSCCI Provider for version control systems
  • Table row and column conditions
  • XPath Evaluator extension of XPath Builder
  • Integration with Eclipse 4.2 (adds to support for earlier versions)
  • Support for US GAAP 2012 XBRL taxonomy (adds to support for earlier versions)
  • Support for UML 2.4
  • Support for SysML 1.2
  • Support for displaying .NET properties as UML associations
  • Spell checker for UML model components
  • Print results of directory comparisons in DiffDog
  • Significant performance improvements in DiffDog
  • Authentic browser plug-in for Google Chrome
  • Authentic push installer for browser plug-ins

More information on all of these new features can be found on our "What's New" page

JSON and XML

Listening to bloggers over the last couple of years and also in talking to several developers in the industry it appeared to me that the JSON vs. XML debate seemed to primarily be a “religious” conflict – much like the “PC vs. Mac” or “Java vs. .NET” are to a large extent. I call it a religious conflict simply because there are fanatics on either side and they try to convert the masses and get them to agree with their point of view. But if you look at both XML and JSON with an unbiased mind and take each approach seriously, you’ll quickly find out that there are tons of applications where XML makes more sense and then there is a ton of other applications where JSON makes more sense. I would argue that XML has the better infra-structure of surrounding standards (like XML Schema, XSLT, XPath, etc.) that makes is a much richer platform and provides more flexibility, but there is something to be said about the elegance, efficiency, and simplicity of JSON, too. Instead of viewing JSON and XML as competing technologies we decided in our v2010 release to support them side-by-side and give our users the choice: XMLSpy 2010 now includes a JSON editor and supports JSON editing in its text and grid views with full syntax coloring, syntax checking, etc. This makes XMLSpy the first and only XML Editor to support JSON:

Just like we find some of our customers using XMLSpy as a plug-in within Eclipse and doing code-generation for Java, whereas other customers are using XMLSpy embedded within Visual Studio and doing primarily code-generation for C#, we expect that some of our customers will user our tools for JSON work, and others won’t. As a standards-focused developer tools vendor we simply want to give them the choice.

So let’s talk a bit more about the JSON vs. XML devate. For some background reading, I’d recommend doing a Google search for “JSON vs XML” and you will find various different opinions.

Here is my take on the matter: XML by itself appears to be similar to JSON only when you ignore all the surrounding XML-related standards. At its core, both JSON and XML are used to capture and describe structured and unstructured data. JSON mainly focuses on storing or transmitting that data efficiently, i.e. with very little overhead, whereas XML focuses on a rich environment that includes entities and a mechanism to support metadata and extensibility. The extensibility is really the huge difference: XML includes concepts on how existing XML data can be augmented, extended and enriched by additional data and metadata from other domains using XML Namespaces. Furthermore, XML data can be processed with XSLT, queried with XQuery, addressed and extracted via XPath, etc. – none of those supporting technologies are really available for JSON in such rich diversity. However, when it comes to just capturing simple structured data and expressing it either in files or in a transmission between client and server, JSON shines with its simplicity and – some argue – better human readability.

So once we made the decision to support JSON in XMLSpy in addition to XML, the next question became obviously how you get data from one format into the other, and so we added a JSON <=> XML conversion option to our Convert menu.

For example, take the following bit of JSON data:

And you can now easily convert that into an equivalent piece of XML data:

Our main logic to include easy one-click conversion was that we figured people would sometimes want to experiment to see what approach works best for their application or their data. As such, they can simply take existing XML data and easily convert it to JSON to test with their new app, or conversely if they run into an issue with a JSON based application and need to convert existing data files to XML because they need the extensibility, meta-data, attributes, or the processing capabilities of XSLT and XQuery, they can easily do that with XMLSpy now.

But make no mistake: we are not saying that JSON is better than XML. On the contrary, I continue to be a huge fan of XML, which is why this blog is called the XML Aficionado, not the JSON Aficionado!

So the fact that there is a conversion function from XML => JSON in XMLSpy now doesn’t mean that people should necessarily convert from one format to the other. Rather, I see people who use either one or both formats wanting to occasionally move data from one world into the other or experiment with the other format and to make that process very convenient we’ve added the ability to convert from one to the other whenever you need to. But mainly we expect people will work either with JSON files or with XML files – depending on what is most suitable for their particular application or use-case.

So go ahead, use the comment section and let me know how you feel about the JSON vs  XML debate and what you think of our approach to support both…

P.S. My thanks go to Peter Zschunke, because a lot of material for this blog post came from a discussion and e-mail interview we recently conducted for his German blog XML-Ecke.

Intelligent XPath auto-completion

There are literally hundreds of reasons to love the new Altova v2009 product lineup, and today we'll look at one that Brian Reisman recently called "the coolest new feature": intelligent XPath auto-completion in XMLSpy 2009.

XPath auto-completion

As you’re composing an XPath expression in Text View, Grid View, or in the XPath Analyzer window, XMLSpy now provides you with valid XPath functions, as well as element and attribute names from the associated schema and XML instance documents. Intelligent XPath auto-completion accounts for namespaces when listing options and even provides deep path suggestions when the required node is not in close proximity to the current context. As such, it goes far beyond similar functions in competing tools.

This is such a huge benefit when writing XSLT or XQuery expressions - and will frequently save you hours otherwise spent in the debugger.

IBM Information-On-Demand XML Highlights

I am writing this quick report from the airport lounge in San Francisco, as I am waiting for my flight to Frankfurt and onward to Vienna for a week of meetings at Altova GmbH's headquarters in Austria. You just have to love Wi-Fi access - how did we ever get anything done before the Internet, laptops, Wi-Fi networks, and blogs?

With a week of conference sessions and trade show work in Las Vegas behind me, here is a quick summary of what I perceived to be some of the highlights of IBM's Information-On-Demand show from an XML Aficionado's perspective:

IBM announced DB2 version 9.5 (scheduled to ship October 31st), which contains several feature enhancements to the pureXML functionality, including inlining of XML, compression, several performance improvements for transactional XML, and the first implementation of XQuery Update in a major database. The last bit is probably the most interesting, because of the lack of updating capabilities in the original XQuery specs, which was exclusively focused on queries (analog to the SELECT statement in SQL). XQuery Update provides the ability to insert, delete, or update any node, i.e. potentially just one single element or attribute in the database, which should provide a huge difference to current implementation, where the entire XML document typically needs to be written back to a column in the database.

Altova's Nick Nagel, spoke on XML-Driven Data Management in a Developer Den session on Wednesday, which was well-attended. Nick's presentation addressed a "top-down" approach to data modeling using XSD (XML Schema Definition language) as a data modeling language with implications for data storage and retrieval as pureXML in DB2. Nick spoke on how XSD in turn can drive process implementation serving as formal design document, and how XML facilitates process development by enabling automated data binding, data mapping, as well as storage and retrieval with XPath 2.0 and XQuery. He also showed several screenshots on how Altova's tools can make working with XML in DB2 easier for developers.

IBM's Berni Schiefer conducted a Birds of a Feather session on Performance Tips, Conundrums and Experiences with DB2, where he answered customer questions and spoke in-depth about performance tuning of DB2, including tuning for pureXML. He also gave a few other interesting talks, but I did unfortunately not have time to attend those.

There were also plenty of interesting customer talks about how they are using XML, as well as more in-depth sessions on various aspects of pureXML in DB2, but my flight is boarding in a few minutes, so I don't have enough time to report on those anymore.

XMLSpy Tip: Using the XPath analyzer to quickly find information in files

One of my favorite features in the Altova XMLSpy XML Editor continues to be the XPath analyzer, which lets you quickly locate information in any XML file by typing an XPath 1.0 or 2.0 expression. Introduced first by Altova in 2001, the XPath analyzer gained XPath 2.0 awareness in version 2004 and was turned into a new dynamic window with multiple output tabs in version 2007.

The XPath analyzer is really convenient and easy to use. Located within the bottom information/output window, the XPath analyzer is found in a separate tab, right next to the Validaton results and the Find in Files function. You can configure it for XPath 1.0 or 2.0 with the click of a button, and can immediately see the result of any XPath expression, by typing it into the text input line - the XPath expression is evaluated immediately and the resulting nodeset is displayed in the output window:


In this example I have used the XPath expression //expense-item[@type="Lodging"] to locate all <expense-item> elements that have a type attribute with the value of "Lodging".

The resulting nodeset is evaluated dynamically as you type, so you can always see whether or not you have entered a correct XPath expression (in addition, the text entered turns red, if there is any error in the expression). You can quickly navigate to any of the found nodes by clicking on them, and the corresponding node in the document will be highlighted in the main editing window (irrespective of which view you are using).

One of the cool new features that was just added in the new XMLSpy 2008 version this month is the ability to also evaluate XPath expressions across multiple files. This is great if you are working on a larger project and need to quickly see where certain information is located. Sure, there is always Find in Files, which has powerful Regular Expressions, but a true XML Aficionado always prefers to use XPath :)


In this screenshot I was searching for all elements in any of my project files that have an xml:lang attribute - this can be expressed in XPath as //element()[@xml:lang] - and the resulting nodeset shows nodes found in several different files in my project. I can, of course, open any of these files and immediately view the found nodes just by clicking on them.

Here is another nifty trick: if you often work with larger files and want to persistently bookmark certain positions in those files, you can also use the XPath analyzer to quickly navigate to those locations. All you need to do is add comments to the XML file to mark those locations, e.g. <-- Bookmark #1 --> and then you can use the XPath expression //comment() to show all comment nodes in your file. Now you can click on each one and you will see them displayed in the editing view. You can even quickly reestablish bookmarks by clicking on each one and hitting Ctrl-F2 to set a new bookmark:


To see more useful information about the XPath analyzer, watch this cool flash video or read the XPath Evaluation chapter in the online manual.