I recall saying recently that "this is my last post for 2009." Whoops... I don't think I was anticipating this. I watched with interest yesterday the coverage and reaction to the i4i judgment. I am not keen to share my own thoughts about the case here, but I would like to offer clarity around the specific area of Word in question, and suggestions for what people can do about it if they are using that functionality today. There is much confusion about the part of Word that is actually affected.
First, some things to understand:
We do not anticipate any interruption in the availability of Word or Office 2007. Additionally this ruling has no impact on the scheduled availability of the 2010 Office version which is planned for the first half of CY2010.
Current users are not affected. If you are using the custom XML tags in Word 2003 or 2007 (these show up in Word as Pink Tags around tagged content), you are free to continue doing so with the products you have already purchased.
Open XML standards (all ECMA and ISO versions) are not affected. Even if Word's specific implementation of custom XML support does infringe the i4i patent (which Microsoft does not believe to be the case), i4i has never claimed that its patent is essential to the OXML standard.
Content Controls of Word (screen shot below) are not affected. In Word 2007 and Word 2010, this is a common method of binding document content to data stored in a custom-defined schema within a document.
The functionality that is in question is indicated by the screen shot below. Custom XML Tags in Word documents are visible in the Word user interface as Pink Tags surrounding tagged content in a document.
What you can do if you have questions about your solutions that use Custom XML Tags:
First, download the Office 2010 beta and test your solution. If your solution works in Office 2010, it does not depend on the functionality in question. If your solution does utilize Custom XML Tags, consider re-implementing the solution using Content Controls. Detailed guidance on the use of Content Controls in Word 2007 can be found here. Also note the Word Content Controls Toolkit on CodePlex. The Open XML SDK, of course, is quite useful for getting people up to speed on developing solutions for Word and Open XML.
Update: Additional Detail
In response to several inquiries on the topic, I have included additional text describing the feature area that is affected vs. what is not affected, including links to KB articles which illustrate the capabilities in more detail.
Word 2003 and Word 2007 distributed prior to 1/11/2010 can read files that contain XML markup (ref: “Understanding Word's XML Markup [Word 2003 XML Reference]”, http://msdn.microsoft.com/en-us/library/aa212889(office.11).aspx. When custom XML markup is present, Word delineates this content in a Word document which allows it to later save the file to .DOCX, .DOCM, or .XML with that content marked up.
The Word 2007 product distributed by Microsoft after 1/10/2010 will no longer read the Custom XML markup contained within .DOCX, .DOCM, or .XML files. These files will continue to open, but the Custom XML markup tags will be removed. Custom XML markup stored within .DOC files will not be affected by these changes. Word 2003 and existing installations of Word 2007 will not be affected by this change.
Word 2007 also added features allowing Content Controls to map to XML data stored in a DOCX or DOCM file (ref: “Mapping Word 2007 Content Controls to Custom XML Using the XML Mapping Object”, http://msdn.microsoft.com/en-us/library/bb510135.aspx). Content Controls and XML data stored within DOCX or DOCM files will not be affected by this change.
From my initial tests, I think the impact willl be very much more serious than you seem to be implying.
My application processes Word XML documents (and fragments thereof) on the server, and puts hidden XML tags inside the document, then allows the user to edit the document and return it to the server for further processing.
From my initial investigations of the KB974631 patch, it seems that if the user simply opens and saves the document from word, all extra XML information is deleted from the document. Surely this basically stop all applications that use custom XML tags dead in their tracks?
To all commenters, please accept my apologies for the quietness. I have been out of the office and am now back, I will attempt to answer your questions as soon as possible.
Correct, the .DOC format is not affected, so using the .DOC format is one option to keep your solution going.
@Robert te Kaat,
Yes, you will still be able to attach a schema to .DOC documents files and insert custom XML tags into .doc documents using the updated version of Word 2007. Note that you will also still be able to save these files to XML based file formats such as .docx and the tags will be saved. However if you open that .docx file again in the updated version of Word 2007, any custom XML markup will be removed at that point.
You are correct, Ribbon and XML-based extensibility is not affected.
Unfortunately there is no reliable way to tell from looking at the file dates or file version numbers. The easiest way to check will be to open a very simple xml file containing customXML markup, as in the screen shot above. If the “pink tags” do not appear then that version of Word does not have the ability to load custom XML markup.
The Open XML format (including document properties) are not affected. Typically these would be bound to a document using content controls, which are also not affected. So your metadta solutions should be in the clear.
Let me direct you toward some more resources for using content controls, which can help you in migrating your soution:
I don't really want to talk too much about the case itself, only the outcomes. Right now my focus is helping people understand the impact (non impact) to their solutions.
Thanks for fielding these questions. A few for you:
(1) Given a valid Word .xml file with custom XML tags, when opened by a revised Word 2003 or 2007, it will remove the custom tags... but will it reliably leave the content within those tags?
(2) Given existing .xml files with custom XML tags, is there any way to have a revised Word 2003 or 2007 load up that .xml file and save out a .doc file without losing the custom XML tags?
(3) I understand why Microsoft must remove the existing implementation of custom XML tags... and why that means removal of the functionality FOR NOW... but will Microsoft be developing an alternative (non-infringing) implementation of that functionality in the near future?
Thanks for any guidance you can provide,
This blog post was just what I've been looking for. Thank-you for taking the time to write this up in a simple and easy to understand way.
Hi Rick, thank you for your comment. First, let me just say that it's great to see PHP development with Open XML. The best place you can go to get help with this question is to http://www.openxmldeveloper.org. There you will find a very large community of developers working with the formats, and can give you pointers on how to implement custom-defined schema as part of your solutions.
I am not in a position to evaluate your specific solution, but I can offer some guidance in areas of technology that may benefit the scenario you are describing.
Content Controls can be used to indicate placeholders for editing in a document, and those can be bound to XML schemas. I would also encourage you to look at the new co-authoring capability of Word 2010, which allows sections or fragments of documents to be edited by multiple users (while locking down the remainder of the document). Lastly, I would suggest Word Services of SharePoint Server 2010 along with the Open XML SDK for server-side document automation.
I think it would be best to focus on migrating solutions to content controls and Open XML. If you have solutions that use the CustomXML functionality today, this is a good solution you can move toward as a replacement.
I am unaware of any tool that will scan documents for the existence of CustomXML today.
As we near the ship date for the patch, we will make more informaiton available about its deployment.