Microsoft loses XML patent appeal, Word injunction upheld

As reported by Bloomberg and Reuters, the US Federal Circuit Court of Appeals today upheld a verdict by a lower Texas court that Microsoft infringed on an i4i patent by embedding “Custom XML” functionality in Word 2003 and 2007. As part of the verdict Microsoft has to pay $290 million and must stop selling infringing products on January 11, 2010.

Here is the full text of the court decision issued by Judge Prost today (PDF), which gives some insight into the matter especially claim construction, what the court considers separate files to be, and what constitutes “independent manipulation”.

Also of great interest is the discussion of the damages calculation starting on 27 of the court decision, which goes into detail of how i4i’s expert came up with a $98 royalty rate multiplied by the copies of Word used in an infringing manner (2.1 million).

This patent isn’t so much about Office Open XML as a file format, as it is about the one feature in Word 2003 and 2007 that allows the use of a custom XML Schema inside a Word document. As Mary-Jo Foley reported in her blog, Microsoft may have the option to simply disable that feature by releasing a new update to Word 2007.

Alternative to the removal of that feature, a settlement between Microsoft and i4i seems likely that would allow Microsoft to continue supporting that feature in exchange for paying royalties to i4i.

More blog reactions and discussions here

UPDATE: Microsoft has responded with its own press release and said that it will remove the “little-used” disputed feature from Word 2007 and Office 2007 as well as the beta versions of Word 2010 and Office 2010 and is further considering legal options including a request for a rehearing by the Federal Circuit Court of Appeals en banc or a request for a writ of certiorari from the U.S. Supreme Court.

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.


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…

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 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 for more coverage on this…

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.


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


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.

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…

MOST WANTED: over 70 new features in 2010 Altova product lineup

I'm very excited that Altova has announced version 2010 of our entire product line today. This new release of our most popular XML, Database, UML, and Web Services tools includes over 70 new features that our customers have asked for.
Instead of pushing some proprietary platform or other hidden agenda, we at Altova believe in delivering exactly those features that our users need the most. We’ve listened to your feedback via our discussion forums, support requests, and social networking sites and put together a list of the MOST WANTED features that will help you stay at the cutting edge of technology and deliver the best results.
Several key feature areas are: a totally new design paradigm in StyleVision that makes stylesheet design more productive and enables a whole new generation of electronic forms based on Authentic; WSDL 2.0 support; substantial XBRL enhancements; schema comparison/differencing for XML and databases; SysML support in UModel; JSON support in XMLSpy; and much, much more.
I will be writing more about individual features in the future, but for now I suggest you go to the Altova Blog and read the announcement and also check out the press release.

Get Twitter and Facebook results (and much more) in your search

OK, so the news are abuzz in recent days about Google adding real-time Twitter data to their search results and there is also a lot of blogging going on about Microsoft adding Twitter search to Bing. But the real news has been totally overlooked by the majority of tech blogs and news media until now: earlier this week kikin announced the start of their public beta on their blog by posting “we are live!

KikinLogo I’ve long been following kikin and was lucky enough to be one of their early testers, so I’ve been using the service for several months now – and I wouldn’t know what to do without it anymore. Kikin does one thing that neither a Google nor a Bing native Twitter or Facebook search can do: it gives me personalized and relevant search results from my feeds and my favorite websites right within the standard Google or Bing results and it lets me customize and select those personalized results in a very intuitive manner.

For example, since I shop on Amazon a lot, when I search for “Marblehead” on Bing, kikin will display personalized search results above the normal bing results that are relevant for me – in this case I find a great book by Ulrike Welsch that captures Marblehead in awesome photos:


As you can see, kikin has added these results above the normal search results, so you don’t have to change your browsing or surfing behavior or use a different search engine. There are several tabs that let you pick from which source you want to see relevant results, for example if I do the same search in Google and click on the Facebook tab in kikin, I see results directly from my Facebook news feed (i.e. only results posted by my friends on Facebook):


And obviously, if I click on Twitter, I can see relevant results only from people whom I follow, or I can even go a step further and only see relevant results that are directly addressed to me on Twitter:


By default, kikin only takes up very little space, so you still see your natural search results below, but if you want to focus on more results from one of your sources, you can expand the kikin box by clicking on the green plus sign in the lower right corner:


The truly remarkable thing about kikin is that it is non-invasive. If there are no relevant results in any of your feeds or favorite websites, then it won’t interfere and will just display the natural search result. Even if that is the case, kikin still adds tremendous value to that result, because it has a built-in video player enhancement that lets you watch every video you find within the natural search result directly within your result page rather than having to click through to the site:


So how does kikin do all of that? Kikin is a free browser plug-in that is currently available for Safari (on the Macintosh), Internet Explorer and FireFox (on WIndows). You can directly download and install the kikin plug-in from their website. Once you’ve installed the plug-in, you can use the Settings page to connect to your Facebook and Twitter accounts:


In all my recent testing I’ve found kikin to be invaluable in unearthing highly relevant content that is otherwise hidden in my social stream: by augmenting every Google or Bing search with results from my social media interactions, I find valuable information that would otherwise remain hidden, or would only be accessible if I repeated my search in three places.

And it is this deeply personalized addition to the search results that makes kikin so valuable. All those newly announced Search partnerships between Twitter and Bing or Google may be great, if you want to search the entire public stream for information (e.g. ski conditions in Colorado), but the results are not going to be as important to you, as results specifically from your actual friends on Facebook or information from people you follow on Twitter or from other websites you frequently visit. That is the true power of kikin: to augment search results with highly relevant and deeply personalized content.

So is kikin perfect? Of course not, it is just the first public beta version and I’m sure that they’ll iron out some minor issues over the next several months as they get reported by users. My only two complaints about kikin at this point in time are (a) that is doesn’t work with Chrome yet (but they’ve already announced that Chrome support will be coming) and (b) that if you use multiple browsers or multiple computers you have to connect your Facebook and Twitter accounts separately for each installation. I would probably have preferred to create one account on the kikin website, connect with my other social media accounts, and then just provided that one account login for each installation.

Altova at Oracle OpenWorld 2009

Today was the first big day at Oracle OpenWorld 2009 in San Francisco and Altova is exhibiting at booth# 3750 in the Moscone West hall this year.

We had great traffic at our booth already on the first day and lots of people were interested in how MapForce can help them to move data into and out of the database and how to transform different data formats quickly and efficiently. Especially the new XBRL and HL7 data formats supported by MapForce 2009 appeared to be exactly what people wanted.
There was also a lot of interest in the database differencing features of DiffDog and DatabaseSpy - it appears that a lot of people are in the process of migrating data between systems, and that is exactly where these tools can add tremendous value.
There is a also a lot of talk about MySQL at the show this year - due to Oracle's acquisition of Sun - and I'm happy to report that all our tools do, of course, work great with both Oracle and MySQL as well as all other major databases.
If you are at the show this year, make sure you visit our booth and say hello. I am usually at the booth every morning...

Using the iPhone to pay at Starbucks

There is no use denying: I've been a big fan of Starbucks' coffees for many years and have had a Starbucks Gold card ever since it came out. But I was intrigued to learn a few weeks ago that Starbucks announced Starbucks Card Mobile - an iPhone app that lets you enter your Starbucks card# on the iPhone and you can then use that app to not only check your card balance, but also to pay at certain select Starbucks locations. These test locations are currently only in the Seattle and Silicon Valley areas, and since I am staying in San Francisco for Oracle World this week and met with some friends in the Valley for brunch yesterday, I headed to a Starbucks in Mountain View before driving back to the city.
The iPhone app has a nicely designed user interface and is extremely easy to use. When you are ready to pay, you start the app, enter a PIN code and hit the "Touch to Pay" button. Then you wave your iPhone in front of the scanner of the register at the checkout while it displays this screen.

Once you are done, you hit the "Touch when done" button and the app returns to the balance screen, where you can immediately see the balance after your payment has been processed.

And you can also get a journal of all recent transactions on your card - both those done via the iPhone app and does that were completed using the regular Gold Card in stores that don't yet accept the iPhone app.

All I can say is that this app makes total sense. No more digging for your wallet and fidgeting with the plastic card. Instead - since I use the iPhone all the time when standing in line - I just open the app and wave my iPhone at the scanner to pay. Very cool. I hope Starbucks rolls this out in stores all across the country soon....

Microsoft Word injunction: court grants motion to stay

As reported on The Microsoft Blog, the court has granted Microsoft’s motion to stay the injunction in the i4i patent case until the appeal process is complete. Also, Microsoft’s request for an expedited appeal process has been granted already on August 21, so this will continue to be very interesting to watch.

See also my previous coverage on the i4i vs. Microsoft patent case on the XML Aficionado blog:

Learn XML with XMLSpy

For some of us, who have been working with XML for ten years now, it seems almost inconceivable that there are still people who are learning XML now. But the fact of the matter is that XML is being used in so many different domains now, that every day new people get introduced to XML and have a need for training.

To help them get up to speed quickly, we’ve launched a new free online training class that focuses on learning XML and learning how to use XMLSpy to work with XML more productively. This is a great beginner class and we hope that it will help newcomers to the field of XML:

Learn XML and XMLSpy

In this training we cover basic XML principles, how to edit an XML document, and how to create and XML schema. For further information, please see the Altova Blog post on this topic, and the Learn XML page on the Altova website.

Sign of the times: different media used to relay birthday wishes

It is perhaps a sign of these times that birthday wishes are being relayed through different media than before and social media is clearly the winner in this. I did indeed celebrate my 42nd birthday yesterday, and just for fun I kept track of how the birthday wishes arrived:

  • 19th century technology (and earlier)
    • Postal mail: 1
    • Telephone: 3
  • 20th century technology
    • E-Mail: 14
  • 21st century technology (mostly social media)

What I find interesting about this is the huge difference between Twitter and Facebook – especially since I have 3,310 followers on Twitter vs. “only” 583 friends on Facebook. So on Twitter a total of 0.2% of my followers sent birthday wishes, whereas 9.3% of my friends on Facebook did. I guess the terms “follower” vs. “friend” are indeed quite accurate in describing the actual relationship on these two sites. Oh, and it does, of course, help that Facebook has this birthday reminder feature built-in…

While Twitter is getting a lot of buzz these days in the media, and while I really like it for news information, rapid dissemination of important links, and other trending topics, there is no doubt that the real winner in terms of where the actual social interactions are happening is Facebook.

In either case, if you are not yet on Twitter or Facebook, I highly recommend that you try and use both. And when you do, feel free to connect with me: afalk on Facebook / @afalk on Twitter.

More on the Microsoft and i4i XML patent issues

Rick Jelliffe published two great posts on the O’Reilly Blogs yesterday and today that deal with an in-depth technical reading of both the patent that Microsoft received recently and also the i4i patent that it was sued over. Rick’s analysis contradicts some of the perfunctory statements in various news media and other blogs:

I highly recommend reading both…

Injunction to prevent Microsoft from selling Word due to XML

It appears that there are just a handful of truly ubiquitous PC applications out there that exist on almost every single computer on the planet and Microsoft Word is certainly among that bunch. So it is an interesting twist that a Texas judge ruled yesterday in an injunction that Microsoft can no longer sell Word (version 2003 and 2007) starting in 60 days because they can handle XML data.

In a lawsuit filed in 2007 i4i (based out of Canada) said that Word violated its 1998 patent No. 5,787,449 on a method for reading XML.

If you are like me and prefer to read all the legal details yourself, here are the relevant links (thanks to The Microsoft Blog for the PDFs):

Needless to say, Microsoft will either appeal the injunction, try to invalidate the patent, or – most likely – settle and write a big check to i4i, but this just shows yet another aspect of the broken patent system when it comes to software patents especially in relations to standards such as XML.

It is interesting to note that the patent appears to deal primarily with representing any document in XML, which appears to be slightly ludicrous given the long history of SGML prior to 1998. Also interesting is that the injunction doesn't just talk about XML, but rather specifically mentions .DOCX (i.e. Open Office XML), which is used by Word 2007 as its default storage format.

More coverage on

Facebook has acquired FriendFeed

I’ve liked and used FriendFeed for a long time now, and I also enjoy using Facebook – mainly to stay in touch with family and friends.

So I was positively surprised to learn that Facebook acquired FriendFeed today. This has been confirmed on the FriendFeed Blog as well as in a Facebook press release.

This seems to be an excellent match, as Facebook has already “borrowed” quite a few features from FriendFeed and it seems that together these services can indeed achieve a lot more than as separate systems. Also, FriendFeed has been directly competing with Twitter in a lot of ways, so this acquisition furthers Facebook’s assault on Twitter. This will be very interesting to watch to see who comes out on top in the long-term.

More info can be found on TechMeme and TechCrunch

Portable 1TB drive from WD

Western Digital announced a portable 1TB drive today – the highest capacity portable drive so far. The My Passport Essential SE 1TB drive comes with USB 2.0 and built-in synchronization and encryption software (for Windows). They also have a model that can be built into laptops as an internal 1TB drive.

Theoretically it should be shipping today as per their announcement, but it is not yet listed in either the WD online store, nor on Amazon. Can’t wait to place my order…

Also see other blog reactions.

UPDATE:The drive is now available for sale in the WD Online Store