Friday, November 13, 2009

XBRL Enhancements in XMLSpy 2010

I have written about XBRL on this blog a lot, and you probably already know that we’ve added support for XBRL across several of our products already in version 2009, when we introduced the XBRL Taxonomy Editor and XBRL validation in XMLSpy, added XBRL data mapping and instance document creation to MapForce, and XBRL rendering, report generation, and presentation to StyleVision.

So what’s new in version 2010? We have enhanced the XBRL support in our award-winning XML Editor based on direct customer feedback and added four frequently requested XBRL features to XMLSpy:

XBRL Taxonomy Wizard

The new XBRL Taxonomy Wizard makes extending an industry-standard XBRL taxonomy, or even creating a new taxonomy a breeze.

You simply use the File/New dialog to begin a new XBRL Taxonomy Schema, and XMLSpy prompts you to select the existing base taxonomy (e.g., US-GAAP, IFRS, etc.) you wish to extend (if any).

Once you enter the company ticker or name, XMLSpy automatically creates and saves all the required taxonomy files, including all the various linkbase documents.

XBRL Taxonomy Wizard

In Step 2 of the wizard you get to pick one or more entry points of the taxonomy you are extending.

XBRL Taxonomy Wizard

Once you click finish, XMLSpy 2010 displays the newly created taxonomy files in XBRL view, where you can continue editing and refining the taxonomy in a graphical manner.

The new XBRL Taxonomy Wizard is an invaluable time-saver when you need to create a new taxonomy for your organization.

XBRL documentation generation

To further facilitate XBRL taxonomy development in its graphical XBRL Taxonomy Editor, XMLSpy 2010 now supports the generation of comprehensive XBRL documentation.

Multiple options for what information to include in documentation (below) are available, and documentation may be generated in HTML, Microsoft® Word, or RTF.

XBRL documentation

A snippet from generated documentation is shown below. Related components are hyperlinked in the onscreen output, allowing users to easily navigate from component to component.

XBRL documentation

Generation of XBRL documentation is a must-have feature for anyone creating, editing, or extending an XBRL taxonomy.

Printing graphical XBRL view

This new feature allows you to print the graphical representation of your XBRL taxonomy as it is displayed in the graphical XBRL View. Below is an example of the print-preview of an XBRL taxonomy:

Print XBRL

Find in XBRL, XBRL sorting

When working in XBRL View, the new Find in XBRL tab of the XMLSpy 2010 output window (which you can also activate using Ctrl-F) allows you to search an entire XBRL taxonomy or document, with advanced options for narrowing your results. Results are listed in the output window, where multiple tabs let you store numerous queries. Clicking any item in the results window navigates to that specific location in the document.

Find in XBRL

This functionality makes finding information in XBRL files, which tend to be rather large and complex, much easier.

The XBRL sorting in XMLSpy 2010 also makes it easier to view and navigate your file in XBRL view, allowing you to sort elements by name, substitution group, or type.

Sort XBRL

All these enhancements make XMLSpy the ideal XBRL Taxonomy Editor for your next XBRL project. As always, you can download a free 30-day evaluation version from our website to see for yourself…

Wednesday, November 11, 2009

Electronic Forms design with StyleVision 2010

With version 2010 we’ve added some very exciting new features to StyleVision, but perhaps the most important one is the new forms-based design paradigm that is based on absolute positioning.

Specifically, StyleVision now gives you the option to create templates within layout containers and even optionally upload a blueprint image. This feature adds a whole new flexibility to the design process, letting you approach StyleVision in the same way that you use other design applications - specifying layout first and adding data connections later.

This new feature turns StyleVision from a pure stylesheet designer into a powerful tool for true electronic forms design.

new design

Layout containers can:

  • Be inserted within document templates or encompass the entire document.
  • Inherit the dimensions of the document section or have user-defined dimensions.
  • Be assigned any number of style properties (borders, background color, font, etc.).
  • Contain a blueprint image to serve as a reference template for the design.

Layout container characteristics are accessible through the Properties and Styles windows.

layout properties

In order to accurately produce stunning electronic forms that realistically mirror printed form designs, StyleVision now includes the ability to absolutely position all layout elements, boxes, containers, etc. Instead of having content and layout elements flow on the page automatically like a typical web page layout, you can now specify exact x and y coordinates for each element to absolutely position them on a page.

This feature gives designers and developers more control in their form design in the manner of desktop publishing applications, but also adds the powerful single source publishing capabilities for XML, XBRL, and database data that have always been present in StyleVision.

form design

Read more about What’s New in StyleVision 2010 on our website, or download a free 30-day trial version to see for yourself how important these enhancements are.

Bing to integrate results from WolframAlpha

Very interesting announcement today by Microsoft that bing.com will now include computational results from WolframAlpha directly within the bing search result:

This has the potential to be really cool and might drive more people to give bing a try over sticking with Google. However, I haven’t been able to actually see this in the live bing search results yet, so we’ll need to wait for a bit before it gets rolled out.

See techmeme.com for more coverage on this…

Tuesday, November 10, 2009

Altova at DevConnections

DevConnections in Las Vegas is always a great little conference and trade show. I say little because the show is a bit smaller than PDC or TechEd, but the talks are always excellent and there is a diverse mix of topics and tracks.

When the show floor opened today, the show certainly didn’t feel little at all: there was a huge rush of people coming to our booth, and the traffic remained fairly constant for over an hour and a half.

photo 

So if you happen to be in Las Vegas at DevConnections, make sure to stop by our booth and get a demo of the new features in version 2010 of our product line.

 photo 2

Also check out the Twitter stream about DevConnections

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.

Monday, November 2, 2009

Database Schema Comparison

In our announcement of version 2010 last week I mentioned over 70 new features that we have added based on customer feedback. As I was talking with journalists through the course of the week, I came to quickly realize that people automatically assume that if it is 70 features in one release then those must be fairly small features. But in each case my conversation partner got more and more excited, as they realized that we are really talking about over 70 substantial new features.

So let me begin this series of individual feature articles by talking about database schema comparison, which we’ve added to both DatabaseSpy and DiffDog in version 2010.

We had originally introduced database comparison or differencing in version 2009 of our product line, but originally thought that users would primarily want to compare the actual data being stored in two separate databases. And people did indeed like that new feature and used it to synchronize data between production and development servers or between different types of database servers, and they were very excited that we allowed them to match columns with a drag&drop mapping interface in those cases where the tables were not entirely identical. One of the most frequent requests, however, that quickly emerged was to add the ability to also compare different database structures or schemas themselves.

This led to the new Database Schema Comparison feature of version 2010. Just like before the first step for a database schema comparison is to connect to two databases and select the tables that you want to compare:

We do, of course, automatically map any columns that have matching names, but you can also change the mapping and designate that columns are equivalent even if their names differ or follow other naming conventions e.g. due to a server migration.

Once you have connected the right columns and are ready to start the comparison process, click the compare button in the toolbar. The results will be displayed right away, and in this example DatabaseSpy is highlighting the differences with respect to data types as well as columns that are missing:

In addition to visually displaying the differences between the database schemas, DatabaseSpy also allows you to generate a merge script that will synchronize the schemas between the different databases, and you can choose if you want to merge the changes from left to right or vice versa.

Once you have selected one of the options, a new script window opens and shows you the SQL statements needed to make the changes, and you can execute them directly from within DatabaseSpy.

The same process can also be used to compare databases running on different database servers, which is ideal when you want to migrate from one database backend server platform to another.

And this is just one of the over 70 exciting new features in our version 2010 product line…