April 2004 Archives
Hey, just look at that:
Michael Kay, author of the famous "XSLT : Programmer's Reference" book, developer of Saxon XSLT and XQuery processor and Editor of XSLT 2.0 spec, has announced his next generation books. He has splitted XSLT 2.0 and XPath 2.0, which sounds quite reasonable considering huge growth of XPath on the schema steroids. The books are not available yet (August 2004), but Amazon sells them already with big discounts.
Once back in 2000 I've been learning XSLT and XPath with first edition of the "XSLT : Programmer's Reference". Four years latter this book still on my table, I still use it (mostly as reference though). Ok, I just ordered those new books and let's wait August. Btw, does publishing the books means XSLT 2.0 Recommendation is coming? As XSLT 2.0 editor Michael definitely should know it better.
I did it again. My second article has been published at MSDN. It's about XInclude itself and XInclude.NET project. It's named "Combining XML Documents with XInclude".
It gives quite comprehensive introduction to the XInclude and XPointer processing model, syntax and semantics. Also practical questions of combining XML documents using XInclude.NET library are discussed. XInclude.NET v1.2 release accompanies the article.
While the article is based on November's XInclude Last Call Working Draft, none is obsoleted, happily I managed to avoid discussing of all small XInclude features, which were likely to be changed. It's my understanding that no significant changes to XInclude are expected anymore, it has crystallized already and is going to be published as Recommendation this year. So go read this article if you want to get ready for another XML Core technology.
Needless to say - any comments would be greatly appreciated!
I like these things. Looks like Daniel solved the famous in-memory XML document validation problem (which I thought is unsolvable!) with XPathNavigatorReader.
Well, I'm probably the last one on this, but anyway: Microsoft released new pack of Office XML schemas and related documentation. What's included? WordprocessingML (Word), SpreadsheetML (Excel), FormTemplate XML (InfoPath) and (new!) DataDiagramingML (Visio) XSD schemas, overviews and other reference docs. Good one. Installed.
Funny thing happened with XInclude.NET 1.2 release. Somehow it appeared on Microsoft Downloads and the "mindless link propagation" has started - Mike Gunderloy in "The Daily Grind 350" has called it "XInclude.NET 1.2 - Microsoft implementation of the November 2003 working draft of XInclude.", James Avery forwarded it in the ".NET Nightly 150" as "XInclude.NET 1.2 - Microsoft's implementation of XInclude. (The old spec, not the new one)".
I think it should be stated clearly to avoid further confusions - XInclude.NET isn't "Microsoft's implementation". It's open source project, hosted on Gotdotnet Workspaces. Its homepage is http://workspaces.gotdotnet.com/xinclude and everybody invited to join the development. I mean nothing, just wanted to clear things for those how consider it important.
I'm not aware of XInclude implementation from Microsoft yet (as XInclude spec itself is still work in process). I'm sure they will ship it once W3C promotes XInclude to the Recommendatin stage, but for a while you can use XInclude.NET, which isn't bad one. I'm currently updating it to the latest Candidate Recommendation as I was talking ablout. And my article about XInclude and XInclude.NET should be published at MSDN XML DevCenter soon. So stay tuned - subscribe to MSDN XML DevCenter RSS feed.
There is a severe problem when using Mozilla Mail and News client (and derivatives such as Thunderbird Mail) - they don't support multiple accounts on the same NNTP server. You know what I mean, right? Yeah, that's about Microsoft private newsgroups. They are using the same news server - privatenews.microsoft.com, while different accounts to manage an access to different newsgroups. One day I found myself struggling with creating 3 accounts on privatenews.microsoft.com. Mozilla seems to be treating news server name as a unique key, so whenever you add another news account, providing already existing news server name - bad and weird things happen. Ooops, new account isn't added and old one is broken. Too bad.
Happily I found the solution. On Windows one can create as many as needed local aliases to an IP address using old good hosts file, living in system32/drivers/etc directory. So all you need is to add an alias to 126.96.36.199 IP (static IP of privatenews.microsoft.com), e.g.:
Then "whidbey" can be used as full-fledged domain name - you can use it as news server in Mozilla mail to create Whidbey private news account. The only difference between real domain name and an alias is that alias will be resolved to IP locally, while real domain name - on remote DNS. Not bad workaround. May be I'm the last one who found it, abut anyway I just wanted to share this info.
Hey, look at this cool stuff:
On to something more pleasant: Microsoft is continuing to advance on the
openness front. There are all those weblogs that I've mentioned a time
or six, there's the open-source release of the WiX installer tools
(http://sourceforge.net/projects/wix/) and now (as of today, in fact)
there's another addition to the Microsoft Open and Royalty-Free Office
2003 XML reference schema program (say THAT fast three times!), because
Microsoft just announced the release of DataDiagramML.
DataDiagramML, as you might guess from the name, is the XML schema
that's used when you save a Visio document as XML. Having this
documented has the same great interoperability benefits as
WordProcessingML offers for Word or SpreadsheetML offers for Excel.
Knowing the complete structure of the document, it's easy to modify it -
for example, you can grab information from a database and use it to
modify an existing Visio document, all through standard XML tools. The
other half of the equation is that you don't even need Visio to build a
DataDiagramML document; you can use whatever XML tool you like to output
a document that conforms to the schema, and it should open fine in
For many years, we complained that Microsoft insisted on using
all-proprietary formats for its Office documents. Now that Word, Excel,
InfoPath, and Visio all have the capability of saving into open,
documented formats, this criticism is losing some of its sting. (Though
not all of it...*cough* Access *cough*). The next step, I think, would
be a world where the XML formats are the default, and Microsoft commits
to open up every file format they create, from Outlook Express to
Project. Then we'd have a world where your data was yours, and you could
move it to any tool you liked. I'll bet Microsoft would compete pretty
hard to keep our business on a features and benefits basis in that
world, instead of depending on format lock-in.
Anyhow, today's release is a big step forward. More details at
Mike Gunderloy, ADT Mag's Developer Central Newsletter.
Well, nothing to add, Mike said enough.
I've been told privately this book is going to be totally a killer:
"Office 2003 XML: Integrating Office with the Rest of the World"
by Evan Lenz, Mary McRae, and Simon St. Laurent
This book explores the relationship between XML and Office 2003, examining how the various products in the Office suite both produce and consume XML. Beginning with an overview of the XML features included in the various Office 2003 components, Office XML 2003 provides quick and clear guidance to anyone who needs to import or export information from Office documents into other systems.
Authors are real XML and Office experts. The book is not published yet (expected in June), but worth to preorder. AFAIK should be some links to my blog in this book, must to buy it only to see it :)
XInclude reminds me a little poor ant, which climbs up a wall, falls, climbs, falls again and climbs anyway. Today XInclude became Candidate Recommendation for the third time!
W3C is pleased to announce the advancement of XML Inclusions (XInclude) Version 1.0 to Candidate Recommendation. XInclude introduces a generic mechanism for merging XML documents (information sets) using existing XML constructs-elements, attributes and URI references. Comments and implementation reports are welcome through 28 May.
Let's see what's new. Oh no! They are changing the namespace back. It was "http://www.w3.org/2001/XInclude" untill latest Wordking Draft, which made it deprecated and introduced "http://www.w3.org/2003/XInclude". Today's Candidate Rec reverts previous "http://www.w3.org/2001/XInclude" namespace back. No fun at all. Happily XInclude.NET already supports both namespaces. Other changes are minor ones - accept-charset attribute removing, clarifications, editorial improvements, and minor bug fixes. No big deal so I'm going to update XInclude.NET and nxslt.exe next week.
In related news - The XML Core Working Group has released the First Public Working Draft of xml:id Version 1.0.
The specification introduces a predefined attribute name that can always be treated as an ID and hence can always be recognized.
What can be said? At last! Finally!
xml:id Version 1.0 defines core predefined attribute xml:id you can use anywhere in XML documents (with or without DTD or schemas attached) to annotate elements with unique identifiers. Great stuff. I'm going to investigate possibilities of creating experimental implementation of xml:id for .NET. Mark wrote about it recently.
Something new and intriguing has been published by W3C - XML Processing Model and Language Requirements.
This specification contains requirements on an XML Processing Model and Language for the description of XML process interactions in order to address these issues. This specification is concerned with the conceptual model of XML process interactions and the language for the decription of these interactions.
So in simple words it's a new XML language to describe XML processing. Say you want to get XML document out of Web Service, validate it, resolve XIncludes, XQuery some data and accordingly to the results apply some XSL transformation. Of course you can write custom application to do so (and keep doing so for each new XML processing scenario), but having XPL (or may be XPML) processor available you can just define the processing flow in XML document an run it. Cool. Similar to Apache Cocoon
's XSP and BizTalk orchestrations.
Some teasing use cases:
Style an XML document in a browser with one of several different stylesheets without having multiple copies of the document containing different xml-stylesheet directives.
Apply a sequence of operations such XInclude, validation, and transformation to a document, aborting if the result or an intermediate stage is not valid.
Allow an application on a handheld device to construct a pipeline, send the pipeline and some data to the server, allow the server to process the pipeline and send the result back.
Norm Walsh is in editors, so I'm sure it's gonna be great new XML family member.
Don Box runs HTTP-based ASMX services without IIS (in Whidbey of course). Really cool.
So Dare said it - unfortunately XmlAdapter and XPathChangeNavigator won't make it into System.Xml v2.0. Funny enough, but looks like I was right in my assumption about what's gonna be cut. Well, without these System.Xml v2.0 probably won't be so harmonious and beautiful as Mark has described in his "First Look at ADO.NET and System Xml v 2.0" book, but real world disctates other criterions - "both APIs was complex to implement yet could be satisfied through other mechanisms".
Ok, once I volunteered to make Russian translation for RSS Bandit - my favorite RSS aggregator, so finally I had to do it. It took me couple of days of my vacation time and it wasn't easy. There are just no established Russian translations for RSS terms, even for basic ones such as "feed" and "syndication". RSS is still extremely new stuff for Russian Web community, and very very few sites provide RSS feeds. So I had to discuss terms in Russian-speaking XML community and to invent the rest :) I did it once I translated XPath spec into Russian and I hope it will be successful translation again.
I believe it's a good one. I really hope somebody will find it useful. AFAIK RSS Bandit is going to be the very first news aggregator with Russian UI. Here is how it looks like:
So let's wait till next version of RSS Bandit is out. Needless to say: comments, suggestions, reports of typos and bad wordings - I appreciate all that stuff.
Microsoft has released another WordML to HTML transfromer - Word 2003 XML Viewer (thanks to Sal for pointing that). As I expected due to images issue it won't be single XSLT stylesheet such one as was released for Word 2003 Beta 2. This time it's complete viewer application, not just XSLT stylesheet you can use in your stuff. How it's implemented? It's kinda plugin for Internet Explorer, which transforms WordML to HTML using word2html.xsl stylesheet and handles images (wordml:// URL schema) somehow. It also substitutes standard context menu in Internet Explorer when vieweing WordML docs. Basically I like it, good stuff.
So whenever you want to browse a WordML document without Word 2003 installed you can just open it in Internet Explorer (provided Word 2003 XML Viewer is installed) an let it do the job. You can also include Word 2003 XML Viewer along with your document to let users install it. Sounds not bad, but not without some deficiencies. First of all your users must have viewer installed. Second - they must use IE, third - be on Windows platform. So the question is should I proceed with my WordML to HTML stylesheet or should it be abandoned? Basically my stylesheet produces pure HTML, thus placing no prerequisites on client side. But it's XSLT processor-dependent due to image processing (.NET version is only available yet, MSXML and Saxon versions were expected). Basically I believe it's still highly useful in custom WordML processing scenarios(e.g. for Word-based blog editors). I'd like to hear your comments though.
/. reminds it's 40-years anniversary of IBM mainframes tomorrow. Read "IBM's Mainframe Dinosaur Turns 40" thread. Mainframes still host 70% of the world's data and applications (well, IBM says that, granted) and they feel good in modern PC world. "PCs were supposed to kill off the mainframe" he-he-he. Not so fast.
Almost all projects I involved at my day job are mainframes connected. Couple years ago we built DOM and XPath/XSLT engine for mainframes and the latest one we did was about exposing of mainframe applications as Web Services, that was an interesting one. And having Cobol apps to be Web Services enabled allows to not touch them and the mainframes for another 40 years! You know, "if it ain't broke...".
Btw, I'm on Passover vacation this week, so don't expect me to blog much.
The BizTalk Server 2004 SDK Refresh contains updates and additions to samples, utilities, headers, and other developer artifacts to aide in the development of BizTalk Server 2004 applications.
[Via Bryant Likes]
Good news for MSDN subscribers: be notified of new downloads available from MSDN Subscriber Downloads via this RSS feed.