On XSLT 2.0 and Office 2007 : Words Of Wisdom From The Trenches

by M. David Peterson

As I've mentioned before, I have worked with Bruce D'Arcus in the past, and we are once again teaming up on some more work that I'm pretty excited about. We have been trading emails over the last few weeks, and since his return from South America a week ago the email volume and overall results has been increasing and improving respectively.

This morning he shot me a ping and asked if I could look into whether or not his recently discovered reference to an APA.xsl file was, in fact, something that was accessible to the end user, and if so, what did it look like.

I hadn't realized that MS was using XSLT inside of Word 2007, so to see this question from Bruce, as you can imagine, got me pretty excited.

As it turns out, its not just the citation stuff, as they have implemented their entire Bibliography XML processing support in XSLT.

WooHoooooooooooooooooooooooooooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!!! :D

Bruce agrees:


Bruce D'Arcus
2006-06-11 07:38:58
It's worth emphasizing that while I am speaking from practical experience implementing this sort of software, more importantly, I am speaking from the perespective of an end user. I was only motivated to solve the technical puzzle because frustrated with existing tools. Am really hoping to avoid MS making some of the same mistakes.
Rick Jelliffe
2006-06-11 22:46:46
You write there is "existing support for XSLT 2.0 as part of the .NET platform," but your link is to a third party open source product that is not part of the .NET platform at all. Also, how, from inside Office 2007, do you select to use a third-party XSLT engine?
M. David Peterson
2006-06-12 18:16:46
@Rick > "existing support for XSLT 2.0 as part of the .NET platform,"

Yikes! I completely misphrased that. For what I assume is an obvious reason (I developed the Saxon.NET project before handing it over to Dr. Kay who has since designed and integrated the existing JAXP-influenced native .NET API and is now releasing this side-by-side with the native Java product) I have come to think of Saxon.NET (now Saxon on .NET) as part of the .NET platform given thats its been a part of my personal toolset for 2 years now. Thats actually not was caused the slip-up... I didn't mean to imply it was actually a part of the MS-blessed .NET platform... just poor selection of words.

Regarding the usage of a third-party transformation engine. No, there are no hooks that I am aware of... But -

a) With the Open XML format, The XML internals are available to edit, update, etc...
b) Writing an extension and adding this to the ribbon is mind-numbingly simple.
c) a + b = third-party extension to process the XML is in the works. Need to finish out my current task list first, but this is then next.

Of course, the ability for this to happen transparently via a native interface would obviously be the preference. But maybe its not to late?

I'll see what I can find out :D

By the way... Been spending some quality time with Schematron as of late...

I've only dabbled with it before, but a conversation with Uche about 2 months back convinced me it was time to start digging in to see what I was missing.

If posssible, can you please add me to the list of official converts? (if such a list exist :D)

Actually, what I've really come to discover is that Schematron fills a rules processing space that XML Schema nor RelaxNG can even come close to, where as XML Schema pretty much owns the object serialization space for OOP-based Web Services.

RelaxNG is obviously a much cleaner, simpler notation, but I don't think XML Schema is going to be dethroned from the Web Services space anytime soon.


M. David Peterson
2006-06-12 18:22:11
@Bruce > "Am really hoping to avoid MS making some of the same mistakes."

Obviously theres no one better to tell the story, so if anybody can pursuade the MS Office insiders not to make the same mistakes, its obviously you.

Let's hope that the current "signs of life" are in fact just that! :D