<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All About Interop : Java</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx</link><description>Tags: Java</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Geneva supports OASIS WS-Trust, SAML</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/11/07/geneva-supports-oasis-ws-trust.aspx</link><pubDate>Fri, 07 Nov 2008 19:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9051139</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/9051139.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=9051139</wfw:commentRss><description>&lt;FONT face=Calibri size=3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Last week at the PDC 2008, Microsoft released the public beta of “Geneva”.&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;“Geneva” is three things:&lt;/P&gt;
&lt;P class=MsoCommentText style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;STRONG&gt;Geneva Server.&amp;nbsp; &lt;/STRONG&gt;This is a security token service (STS), as defined in the &lt;A class="" href="http://en.wikipedia.org/wiki/WS-Trust" mce_href="http://en.wikipedia.org/wiki/WS-Trust"&gt;OASIS WS-Trust&lt;/A&gt; specification.&amp;nbsp; This thing issues and transforms claims, manages user access, and enables automated federation.&lt;/P&gt;
&lt;P class=MsoCommentText style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;STRONG&gt;Geneva Framework.&amp;nbsp; &lt;/STRONG&gt;This is a managed (.NET) Framework that helps developers build claims-aware applications and services, that connect to the STS.&amp;nbsp; You can use it to process claims&amp;nbsp;on&amp;nbsp;either side of an authorization transaction (requestor or responder).&lt;/P&gt;
&lt;P class=MsoCommentText style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;STRONG&gt;Windows CardSpace Geneva.&amp;nbsp; &lt;/STRONG&gt;This is just an extension of the &lt;A href="http://msdn.microsoft.com/en-us/library/aa480189.aspx"&gt;CardSpace&lt;/A&gt; thing in Windows you know and love today.&amp;nbsp; chances are, you've seen it, but you don't use it. In a nutshell - CardSpace is a set of Windows features and user-interface that lets users navigate access decisions and control how personal information is used. Everyone has multiple claims as part of their identity: you are a student at UW, you are an employee of BigCorp, you are a member in good standing of a particular club, you have received a particular security clearance, You have a bank account with number 4444-444-44 at BigBank, etc. CardSpace lets you decide which of the many &lt;I&gt;claims&lt;/I&gt; you can make about your identity, to disclose to a particular service or server. Rather than disclosing "everything" about you to every server or service, you disclose only what you need to disclose for the particular transaction. That is one aspect of the identity model, and CardSpace is the thing in Windows that makes that possible. &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;CardSpace technology, and actually, the Identity Metasystem concept, is pretty cool. If you haven't looked at it, you should. &amp;nbsp; The problem with CardSpace and more generally, using claims-based access control (CBAC) in an application, has always been that &lt;B&gt;&lt;I&gt;it was impractical&lt;/I&gt;&lt;/B&gt;. Microsoft delivered a client (CardSpace), but we didn't deliver an STS! And we didn't deliver an easy way for the server to evaluate and verify claims. Therefore developers didn't have an easy way to employ CBAC in their apps. Geneva will change this. &lt;/P&gt;
&lt;P&gt;Now, some of you are thinking, &lt;I&gt;"ok, this sounds interesting but I don't know what you are talking about with this WS-Trust thing and 'claims based access control'&lt;/I&gt;. And I can understand that. Here's the thing - instead of hand-crafting access-control logic into your application, instead of managing your own user list and access control list, you can "outsource" this job to an STS. The &lt;A href="http://msdn.microsoft.com/en-us/library/ms952386.aspx"&gt;Authorization Manager&lt;/A&gt; (sometimes called AzMan) is similar in philosophy, so if you understand the utility of AzMan, then you will get the idea of CBAC. But AzMan is not standards based, not federated, not truly claims-based (it is role based, which is less general than claims-based), and not usable in Web services transactions. Imagine generalizing AzMan and federating it and using only standard protocols, and that's where we're headed with Geneva. You're gonna want to use this. &lt;/P&gt;
&lt;P&gt;I said "Geneva is standards based." The key to standards is support by the vendors, in tools, frameworks, servers, and so on. Currently, WCF from Microsoft supports WS-Trust, as does the WSIT from Sun. WebSphere App Server v7.0 announced support for WS-Trust just last month, but I haven't had the time to test it with Geneva. Not sure of other frameworks. The key is, with Geneva, the server is now here, and people can and will start building on this. I think with the release of the Geneva CTP, we'll start to see broader adoption of WS-Trust and standards-based CBAC among frameworks.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;One last thing to point out: In the cloud, the Microsoft Services Connector and the .NET Access Control Service, both announced at PDC as well, are built on “Geneva” technology and share the same claims architecture. &lt;/P&gt;
&lt;P&gt;More Information:&lt;BR&gt;&lt;SPAN style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;A href="http://www.identityblog.com/"&gt;Kim Cameron’s blog&lt;/A&gt; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;A href="http://blogs.msdn.com/vbertocci/"&gt;Vittorio Bertocci’s blog&lt;/A&gt; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=122266"&gt;Get the Geneva beta&lt;/A&gt; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;A href="http://www.microsoft.com/geneva"&gt;Single stop resource on Geneva&lt;/A&gt; &lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;A list of “Geneva” sessions recordings at PDC:&lt;/P&gt;
&lt;TABLE class="" border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class=""&gt;code&lt;/TH&gt;
&lt;TH class=""&gt;Title&lt;/TH&gt;
&lt;TH class=""&gt;Presenter(s)&lt;/TH&gt;
&lt;TH class=""&gt;Link&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;BB11&lt;/TD&gt;
&lt;TD class=""&gt;Identity Roadmap for Software + Services&lt;/TD&gt;
&lt;TD class=""&gt;Kim Cameron and Vittorio Bertocci&lt;/TD&gt;
&lt;TD class=""&gt;&lt;A href="http://channel9.msdn.com/pdc2008/BB11/"&gt;http://channel9.msdn.com/pdc2008/BB11/&lt;/A&gt; &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=""&gt;BB42&lt;/TD&gt;
&lt;TD class=""&gt;Identity: "Geneva" Server and Framework Overview &lt;/TD&gt;
&lt;TD class=""&gt;Stuart Kwan and Caleb Baker &lt;/TD&gt;
&lt;TD class=""&gt;&lt;A href="http://channel9.msdn.com/pdc2008/BB42/"&gt;http://channel9.msdn.com/pdc2008/BB42/&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;BB43&lt;/TD&gt;
&lt;TD class=""&gt;Identity: "Geneva" Deep Dive &lt;/TD&gt;
&lt;TD class=""&gt;Jan Alexander &lt;/TD&gt;
&lt;TD class=""&gt;&lt;A href="http://channel9.msdn.com/pdc2008/BB43/"&gt;http://channel9.msdn.com/pdc2008/BB43/&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;BB44&lt;/TD&gt;
&lt;TD class=""&gt;Identity: Windows CardSpace "Geneva" Under the Hood &lt;/TD&gt;
&lt;TD class=""&gt;Rich Randall &lt;/TD&gt;
&lt;TD class=""&gt;&lt;A href="http://channel9.msdn.com/pdc2008/BB44/"&gt;http://channel9.msdn.com/pdc2008/BB44/&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9051139" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Websphere/default.aspx">Websphere</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/SAML/default.aspx">SAML</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WS-Trust/default.aspx">WS-Trust</category></item><item><title>Connect WebSphere and Java applications to SQL Server</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/11/05/websphere-and-sql-server.aspx</link><pubDate>Thu, 06 Nov 2008 00:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9045267</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/9045267.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=9045267</wfw:commentRss><description>&lt;p&gt;FYI: The MS JDBC Driver is completely tested by IBM for use with WebSphere App Server v6.1 and v7.0. &lt;/p&gt;&lt;p&gt;From the &lt;a href="http://www-01.ibm.com/common/ssi/rep_ca/6/897/ENUS208-266/index.html" mce_href="http://www-01.ibm.com/common/ssi/rep_ca/6/897/ENUS208-266/index.html"&gt;IBM Announcement for WebSphere Application Server v7.0&lt;/a&gt;:&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;WebSphere Application Server V7.0 does not include the WebSphere Connect JDBC driver that had been provided in WebSphere Application Server V6.1. To replace the functionality provided by the WebSphere Connect JDBC driver, WebSphere Application Server V7.0 is tested with the DataDirect Connect for JDBC driver and the &lt;a href="http://msdn.microsoft.com/en-us/data/aa937724.aspx" mce_href="http://msdn.microsoft.com/en-us/data/aa937724.aspx"&gt;Microsoft SQL Server JDBC Driver&lt;/a&gt;, which may be obtained from DataDirect Technologies or Microsoft.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Connect your WebSphere/Java apps to SQL Server with this driver.&amp;nbsp; Actually, you can connect *any* Java application to SQL this way - it doesn't have to be running in WebSphere.&amp;nbsp; If you develop in Jetty or Tomcat or JBoss or Geronimo, the MS JDBC Driver will work fine for you.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;If you have .NET applications, or Office apps, of course you can connect them to SQL Server also. In this way, SQL Server can serve as a nice interop point between Java and .NET applications, or between Java and MS Office (Let's say... an Excel spreadsheet). &lt;/p&gt;&lt;p&gt;Some notes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the MS JDBC Driver is a &lt;a href="http://rds.yahoo.com/_ylt=A0oGkjdKFxJJ7hIA5YtXNyoA;_ylu=X3oDMTByZWgwN285BHNlYwNzcgRwb3MDMQRjb2xvA3NrMQR2dGlkAw--/SIG=144ld1cf6/EXP=1226008778/**http%3a//www.microsoft.com/downloads/details.aspx%3ffamilyid=C47053EB-3B64-4794-950D-81E1EC91C1BA%26displaylang=en" mce_href="http://rds.yahoo.com/_ylt=A0oGkjdKFxJJ7hIA5YtXNyoA;_ylu=X3oDMTByZWgwN285BHNlYwNzcgRwb3MDMQRjb2xvA3NrMQR2dGlkAw--/SIG=144ld1cf6/EXP=1226008778/**http%3a//www.microsoft.com/downloads/details.aspx%3ffamilyid=C47053EB-3B64-4794-950D-81E1EC91C1BA%26displaylang=en"&gt;free download&lt;/a&gt;.&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/li&gt;&lt;li&gt;It is a full type-4 (100% Java) JDBC 3.0 driver, fully tested and compliant with Sun's verification suite.&lt;br&gt;&lt;/li&gt;&lt;li&gt;It connects to SQL Server 2000, 2005 or 2008&lt;/li&gt;&lt;li&gt;It works from any JVM on any OS platform, including Linux&lt;br&gt;&lt;/li&gt;&lt;li&gt;It works with the &lt;a href="http://rds.yahoo.com/_ylt=A0oGkmoLGhJJ9jQBcdJXNyoA;_ylu=X3oDMTByZWgwN285BHNlYwNzcgRwb3MDMQRjb2xvA3NrMQR2dGlkAw--/SIG=12eehnovf/EXP=1226009483/**http%3a//www.microsoft.com/sql/editions/express/default.mspx" mce_href="http://rds.yahoo.com/_ylt=A0oGkmoLGhJJ9jQBcdJXNyoA;_ylu=X3oDMTByZWgwN285BHNlYwNzcgRwb3MDMQRjb2xvA3NrMQR2dGlkAw--/SIG=12eehnovf/EXP=1226009483/**http%3a//www.microsoft.com/sql/editions/express/default.mspx"&gt;Express version of SQL Server&lt;/a&gt; (which is also a free download) and it works with the Standard and Enterprise versions, too.&lt;/li&gt;&lt;li&gt;There is &lt;a href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=87&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=87&amp;amp;SiteID=1"&gt;forum support available for the driver&lt;/a&gt;&lt;/li&gt;&lt;li&gt;There's a tech preview of a JDBC 4.0 compliant driver, &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=f914793a-6fb4-475f-9537-b8fcb776befd&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=f914793a-6fb4-475f-9537-b8fcb776befd&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;If this is the sort of thing that interests you, be sure to check the &lt;a href="http://blogs.msdn.com/jdbcteam" mce_href="http://blogs.msdn.com/jdbcteam"&gt;team blog for the JDBC driver&lt;/a&gt;. &lt;br&gt;&lt;br&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9045267" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Websphere/default.aspx">Websphere</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IBM/default.aspx">IBM</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/SQL/default.aspx">SQL</category></item><item><title>It just got easier to build REST apps in .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/10/29/it-just-got-easier-to-build-rest-apps-in-net.aspx</link><pubDate>Thu, 30 Oct 2008 00:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9023083</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/9023083.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=9023083</wfw:commentRss><description>&lt;P&gt;The REST starter kit that we launched at PDC is now live! ::&amp;nbsp;&lt;A href="http://www.msdn.com/wcf/rest" mce_href="http://www.msdn.com/wcf/rest"&gt;http://www.msdn.com/wcf/rest&lt;/A&gt; . &lt;/P&gt;
&lt;P&gt;The WCF REST Starter Kit is a set of features, Visual Studio templates, samples and guidance that help people build REST apps using WCF.&amp;nbsp; WCF, part of the .NET Framework, got some enhancements for REST support in the .NET&amp;nbsp;3.5 release.&amp;nbsp; This starter kit is a bunch of blueprints and supporting material to make it easier to use what is in the Framework for REST. &lt;/P&gt;
&lt;P&gt;Like, blueprints and guidelines for how to do caching, security, error handling, help page support, conditional PUT, push style streaming, type based dispatch and semi-structured XML support.&amp;nbsp; Whoa! &lt;/P&gt;
&lt;P&gt;The WCF REST Starter Kit also provides Visual Studio templates for creating REST style services such as an Atom feed service, a REST-RPC hybrid service, Resource singleton and collection services and an Atom Publishing Protocol service. In addition, there are samples, documentation and other guidance that help to use these new capabilities. &lt;/P&gt;
&lt;P&gt;The goal is to provide a toolset that simplifies building RESTful services today, and to take feedback from the developer community on the features provided in the WCF REST Starter Kit that will shape future REST capabilities in WCF 4.0. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9023083" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/PHP/default.aspx">PHP</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/REST/default.aspx">REST</category></item><item><title>Eclipse tools for Silverlight and .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/10/13/eclipse-tools-for-silverlight-and-net.aspx</link><pubDate>Mon, 13 Oct 2008 23:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8998523</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8998523.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8998523</wfw:commentRss><description>&lt;P&gt;There is now an Eclipse project, &lt;A class="" href="http://www.eclipse4sl.org/" mce_href="http://www.eclipse4sl.org/"&gt;Eclipse4SL&lt;/A&gt;,&amp;nbsp;to produce tools that work with &lt;A class="" href="http://www.microsoft.com/silverlight" mce_href="http://www.microsoft.com/silverlight"&gt;Microsoft Silverlight&lt;/A&gt;.&amp;nbsp; See &lt;A class="" href="http://blogs.msdn.com/neilhut/archive/2008/10/13/eclipse-tools-for-silverlight.aspx" mce_href="http://blogs.msdn.com/neilhut/archive/2008/10/13/eclipse-tools-for-silverlight.aspx"&gt;Neil Hutson's blog post&lt;/A&gt; for some details. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;For those of you who have day jobs and find it hard to keep up with all the code-names and product names coming out of Microsoft, Silverlight is the name a cross-browser, cross-platform, and cross-device plug-in for rich interactive applications for the Web. &lt;EM&gt;Huh?&lt;/EM&gt;&amp;nbsp; Break it down: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Silverlight is a browser plug-in&lt;/STRONG&gt;: Runs in IE, Firefix, Opera, and more.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;As a plug-in, Silverlight provides a runtime&lt;/STRONG&gt;, which is at it's core, .NET based.&amp;nbsp; It is a lightweight version (subset) of the .NET Framework.&amp;nbsp;When you write declarative code, you'll be using a .NET langauge &amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Silverlight is cross-platform&lt;/STRONG&gt;: Microsoft produces versions to run on Windows and Mac and the Mono project is doing &lt;A class="" href="http://www.mono-project.com/Moonlight" mce_href="http://www.mono-project.com/Moonlight"&gt;Moonlight for Linux&lt;/A&gt;.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Silverlight is for Rich Interactive apps&lt;/STRONG&gt;.&amp;nbsp; This means high-def video, audio, hypertext, dynamic data.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Bottom line, Silverlight is like Adobe's Flash, but built on a broad platform (.NET and the CLR) with mainstream language support (C# and VB) as opposed to a relatively narrow platform and runtime requiring ActionScript. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Because Silverlight uses a lightweight NET runtime, if the &lt;A class="" href="http://www.eclipse4sl.org/" mce_href="http://www.eclipse4sl.org/"&gt;Eclipse4SL project&lt;/A&gt; succeeds, developers will be able to use Eclipse&amp;nbsp;tools to create .NET applications. How about that!&amp;nbsp; You will be able to edit &lt;A class="" href="http://www.eclipse4sl.org/images/About_xaml.png" mce_href="http://www.eclipse4sl.org/images/About_xaml.png"&gt;XAML&lt;/A&gt; and &lt;A class="" href="http://www.eclipse4sl.org/images/About_CS.png" mce_href="http://www.eclipse4sl.org/images/About_CS.png"&gt;C# in Eclipse&lt;/A&gt;!&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Milestone 1 for Eclipse4SL is set for this week: October 14th there'll be a CTP of the tools. Feature complete in December.&amp;nbsp; Nice!&amp;nbsp; I love to see this. Love it, love it, love it. &lt;/P&gt;
&lt;P&gt;From the Eclipse4SL website, Interop is a key criterion for success:&amp;nbsp; &lt;EM&gt;&lt;STRONG&gt;Increased Interoperability:&lt;/STRONG&gt; Eclipse will contain functionality that will help Java Developers build Silverlight applications that work better with Java Web Services using REST, SOAP, JSON and other standards.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/EM&gt;There's a company called Soyatec, a longtime Eclipse Foundation member,&amp;nbsp;doing the analysis and development work. &lt;/P&gt;
&lt;P&gt;For my part, I'm so glad we're getting to the point where we all can work together collaboratively to produce interesting stuff for customers.&amp;nbsp;&amp;nbsp; Next milestone:&amp;nbsp; when a proejct like this doesn't warrant blog posts entitled "&lt;A class="" href="http://dev.eclipse.org/blogs/mike/2008/10/13/interesting-times-indeed/" mce_href="http://dev.eclipse.org/blogs/mike/2008/10/13/interesting-times-indeed/"&gt;interesting times indeed&lt;/A&gt;."&amp;nbsp; &lt;/P&gt;
&lt;P&gt;:)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8998523" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Weblogic JMS with .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/10/09/weblogic-jms-with-net.aspx</link><pubDate>Thu, 09 Oct 2008 18:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8991973</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8991973.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8991973</wfw:commentRss><description>&lt;P&gt;This came out last month, I just learned about it from an email from&amp;nbsp;&lt;A class="" href="http://weblogs.asp.net/gsusx/default.aspx" mce_href="http://weblogs.asp.net/gsusx/default.aspx"&gt;Jesus&lt;/A&gt; today. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WebLogic Server 10gR3 now has &lt;A class="" href="http://edocs.bea.com/wls/docs103/jms_dotnet/overview.html" mce_href="http://edocs.bea.com/wls/docs103/jms_dotnet/overview.html"&gt;an officially-supported .NET client&lt;/A&gt; for its JMS provider&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;Very cool.&lt;/EM&gt;&amp;nbsp; Some of you might be wondering, &lt;EM&gt;just what does that mean?&amp;nbsp; &lt;/EM&gt;It means there is a queue mechanism in the WebLogic Server, for a long time this has been called "Weblogic JMS".&amp;nbsp; And you can connect to that queue subsystem&amp;nbsp;via .NET applications. James Bayer has a blog entry on it, which you should &lt;A class="" href="http://blogs.oracle.com/jamesbayer/2008/09/jms_with_net_weblogic_server_1.html" mce_href="http://blogs.oracle.com/jamesbayer/2008/09/jms_with_net_weblogic_server_1.html"&gt;check out&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;pet peeve alert!&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; Calling a queue "JMS" is strange and confusing.&amp;nbsp; It would be like calling the Oracle database "Oracle JDBC"&amp;nbsp;&amp;nbsp; or "Oracle ADO.NET".&amp;nbsp; Oracle Database is not the same as JDBC.&amp;nbsp; JDBC is an API.&amp;nbsp; ADO.NET is the name for an API.&amp;nbsp; The database is not the API.&amp;nbsp; The database (whether Oracle, Microsoft SQL Server, IBM DB2, or something else) exposes mutliple API families - some for Java, some for .NET languages, some for C and C++.&amp;nbsp; The programmatic interfaces are distinct from the implementation.&lt;/P&gt;
&lt;P&gt;With JMS, Sun and the Java guys have confused the issue.&amp;nbsp; Maybe even on purpose: remember back when JMS was conceived, Sun had aspirations to make Java itself &lt;EM&gt;a platform &lt;/EM&gt;- everything contained within Java as other things like the operating system and the database itself, and to the point, a messaging subsystem, recede into the background.&amp;nbsp; Well, that didn't really happen, despite the huge popularity of Java as a programming language.&amp;nbsp;&amp;nbsp; Operating systems still matter, databases still matter, message queues did not get subsumed into the programming language.&amp;nbsp; Java is a language and a VM and a base class library, but not a platform.&amp;nbsp;&amp;nbsp; Regardless, the side effect of Sun's unfulfilled platform aspirations for Java is that today, people call message and queue subsystems "JMS."&amp;nbsp;&amp;nbsp; Developers speak of JMS topics, JMS queues, JMS messages.&amp;nbsp; But it is clear: just as &lt;A class="" href="http://java.sun.com/javase/technologies/database/index.jsp" mce_href="http://java.sun.com/javase/technologies/database/index.jsp"&gt;JDBC is a Sun/Java&amp;nbsp;API for databases&lt;/A&gt;, &amp;nbsp;&lt;A class="" href="http://java.sun.com/products/jms/" mce_href="http://java.sun.com/products/jms/"&gt;JMS is a Java&amp;nbsp;API for Messaging subsystems&lt;/A&gt;.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;IBM has always been very clear about this with its &lt;A class="" href="http://ibm.com/software/mqseries" mce_href="http://ibm.com/software/mqseries"&gt;MQ product&lt;/A&gt;, later called MQSeries and then changed to "WebSphere MQ".&amp;nbsp;&amp;nbsp; (For this post I'll just call it &lt;STRONG&gt;MQ&lt;/STRONG&gt;.)&amp;nbsp;&amp;nbsp; MQ is the implementation, and MQ exposes a bunch of different APIs - for C, for .NET, for Java, and I'm sure, for other languages.&amp;nbsp; In what looks like a bit of schizophrenia, IBM also has &lt;A class="" href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/ucli_ovrvw.html#ucli_ovrvw" mce_href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.express.doc/info/exp/ae/ucli_ovrvw.html#ucli_ovrvw"&gt;message service within WebSphere Application Server&lt;/A&gt;, which is called WebSphere JMS if I am not mistaken, and which... you guessed it, exposes more than just a JMS programming interface.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For some reason, the queue infrastructure&amp;nbsp;for&amp;nbsp;&lt;EM&gt;some &lt;/EM&gt;products has been called "JMS" as if that is the only API that has ever mattered.&amp;nbsp; Seems like a result of shortsighted and wrongheaded product planning to me.&amp;nbsp; And it's darned confusing, to boot.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;A separate issue is that JMS is not merely an API!&amp;nbsp; JMS actually injects some&amp;nbsp;message protocol&amp;nbsp;behavior, specifically the RFH2 header formatting stuff, which makes for tricky interop with other, non-Java applications through queue subsystems.&amp;nbsp; Designing JMS this way presented a big, unnecessary obstacle to interop, and &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1" mce_href="http://blogs.msdn.com/dotnetinterop/search.aspx?q=JMS&amp;amp;p=1"&gt;I've blogged on it previously&lt;/A&gt;.&amp;nbsp;&amp;nbsp; IBM has had to introduce &lt;A class="" href="http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html" mce_href="http://www.ibm.com/developerworks/websphere/library/techarticles/0509_phillips/0509_phillips.html"&gt;new APIs&lt;/A&gt; for MQ and its other queue subsystems, specifically to work around this interop barrier.&amp;nbsp; I don't know a better way to solve it, than the way IBM did.&amp;nbsp; But make a note to yourself - if you ever design a queue system or queue API, keep the API separate from the application protocol and message formatting. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Check it out!&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8991973" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MQ/default.aspx">MQ</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JMS/default.aspx">JMS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Oracle/default.aspx">Oracle</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WebLogic/default.aspx">WebLogic</category></item><item><title>Using the WSDL-First design approach with WCF services</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/09/05/using-the-wsdl-first-design-approach-with-wcf-services.aspx</link><pubDate>Fri, 05 Sep 2008 17:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8923642</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8923642.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8923642</wfw:commentRss><description>&lt;P&gt;Couple of helpful posts from the archives for you.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;If you are care about interop, then you probably want to use a contract-first or WSDL-first design for your web services.&amp;nbsp; In other words, you will not simply decorate server-side code annotations (in Java) or attributes (in .NET) and generate WSDL dynamically from that running code.&amp;nbsp; That approach works in demonstrations, but it does not lend itself to good interoperability in the long run. &lt;/P&gt;
&lt;P&gt;So you start with WSDL.&amp;nbsp; Since you are WCF-savvy, you are confining yourself to&amp;nbsp;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/ms733112.aspx"&gt;the subset of XML Schema that is friendly to WCF&lt;/A&gt;.&amp;nbsp; The restriction isn't too onerous, though, especially as it improves&amp;nbsp;interoperability significantly, and also simplifies your life since you don't have to read and understand all of the XML Schema spec!&amp;nbsp; Ok, so following those rules, you write the WSDL. And&amp;nbsp;then you generate from that WSDL the server-side stub code, and the client-side proxy code, using the web services toolkits of your choice.&amp;nbsp; On the .NET side, that toolkit is obviously WCF (and the tool itself is svcutil.exe); on the Java side, maybe the JAXWS reference implementation, or AXIS2, and so on.&amp;nbsp; But the trick is, the generated code on the .NET side is muy bueno if you write your WSDL following a few additional simple rules, which are not mentioned in the above linked doc. &lt;/P&gt;
&lt;P&gt;For example, if you want to pass a collection in your interface, and you will be using WCF on one or both ends of the wire, then you want to use an explicit complexType for the array in the WSDL/XSD.&amp;nbsp; This is not required by WSI Basic Profile, nor is it mentioned anywhere in the official WCF doc as far as I know.&amp;nbsp; Nonetheless, follow this rule for best results.&amp;nbsp; &amp;nbsp;Do not define your arrays with an element and a @maxOccurs="unbounded" attribute in your schema; if you do, you will get the XmlSerializer with WCF, rather than the DataContract serializer, and that is&amp;nbsp;probably not what you want.&amp;nbsp; More on this tip &lt;A class="" href="http://kjellsj.blogspot.com/2008/03/wcf-datacontractserializer-schema-rules.html" mce_href="http://kjellsj.blogspot.com/2008/03/wcf-datacontractserializer-schema-rules.html"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Also, use only one part in each wsdl:message (to comply with&amp;nbsp;WS-I Basic Profile) and set the message part attribute @name = "parameters" to make the messages document/literal wrapped, versus bare.&amp;nbsp; If you're not sure, you want wrapped.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Finally, another tip: when using collections in service interfaces (or more specifically, data contracts), you can use the svcutil.exe tool to specify that collections be represented in the generated .NET code as one of the Generic collection types, rather than a vanilla array.&amp;nbsp; This is done with the /collectionType option on the svcutil.exe command line.&amp;nbsp; See &lt;A class="" href="http://www.request-response.com/blog/PermaLink,guid,ff5fab81-affb-4b2b-aa67-c80bdfc86cbd.aspx" mce_href="http://www.request-response.com/blog/PermaLink,guid,ff5fab81-affb-4b2b-aa67-c80bdfc86cbd.aspx"&gt;this post&lt;/A&gt; for more detail on that idea. &lt;/P&gt;
&lt;P mce_keep="true"&gt;I think there might be a similar codegen hint on other web services toolkits but I could not find the right switch on AXIS2.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8923642" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>Web services interop with WCF - Relevant Forum Questions</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/09/04/wcf-interop-forum-questions.aspx</link><pubDate>Thu, 04 Sep 2008 17:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8895668</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8895668.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8895668</wfw:commentRss><description>&lt;P&gt;I was just browsing the &lt;A href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=118&amp;amp;SiteID=1"&gt;WCF forum&lt;/A&gt; on MSDN. Here's a summary of the recent interesting threads dealing with interop:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3790715&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3790715&amp;amp;SiteID=1"&gt;How to map complex data types exposed by a J2EE web services, into a WCF client?&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3783287&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3783287&amp;amp;SiteID=1"&gt;How to use connect from an AXIS 2 client to a WCF service using SSL?&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3790825&amp;amp;SiteID=1"&gt;How to transfer a Hashtable or Vector&lt;T&gt; over web services?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3338236&amp;amp;SiteID=1"&gt;How to transfer a Fault from WebLogic/Java to a WCF client&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3831985&amp;amp;SiteID=1&amp;amp;mode=1"&gt;How to tell svcutil.exe to use existing types when generating proxy classes&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3655359&amp;amp;SiteID=1"&gt;Contract-first design with WCF and the svcutil.exe tool (Generating service stubs)&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Check it out.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8895668" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/AXIS/default.aspx">AXIS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Links/default.aspx">Links</category></item><item><title>HOW TO: Configure the jakarta Tomcat connector for IIS (serve JSP from IIS)</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/08/12/how-to-configure-the-jakarta-tomcat-connector-for-iis-serve-jsp-from-iis.aspx</link><pubDate>Tue, 12 Aug 2008 17:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8851759</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8851759.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8851759</wfw:commentRss><description>&lt;P&gt;Steve Sfartz &lt;A class="" href="http://blogs.msdn.com/silverlight_plus_java/archive/2008/08/12/tip-make-iis-serving-jsps-and-servlets-through-tomcat.aspx" mce_href="http://blogs.msdn.com/silverlight_plus_java/archive/2008/08/12/tip-make-iis-serving-jsps-and-servlets-through-tomcat.aspx"&gt;offers a tip&lt;/A&gt; for configuring the Tomcat connector on IIS, to allow IIS and Tomcat to run from the same domain.&amp;nbsp; This will allow numerous interop scenarios,&amp;nbsp; one of which is to allow IIS to serve Silverlight apps while the Tomcat engine can serve JSP and Servlets.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8851759" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Tomcat/default.aspx">Tomcat</category></item><item><title>Changing of the Guard: AXIS out, JAXWS in</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/07/30/changing-of-the-guard-axis-out-jaxws-in.aspx</link><pubDate>Wed, 30 Jul 2008 19:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8789718</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8789718.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8789718</wfw:commentRss><description>&lt;P&gt;I have come to a conclusion: I no longer want to deal with the hassle that has become Apache AXIS. &lt;/P&gt;
&lt;P&gt;Back in the day, when interconnecting Java to .NET was still novel, I started using Apache SOAP to show how interop between .NET and JAva was possible.&amp;nbsp; I was looking for something simple and easy, something that would allow interconnection without a ton of pain.&amp;nbsp; Apache SOAP was that thing.&amp;nbsp;&amp;nbsp; But Apache SOAP was brittle.&amp;nbsp; It had scads of problems with xsi:type and SOAP Section 4 encoding.&amp;nbsp; I needed something more flexible, something easier. &lt;/P&gt;
&lt;P&gt;Then came Glue from &lt;A class="" href="http://www.oreillynet.com/pub/d/506" mce_href="http://www.oreillynet.com/pub/d/506"&gt;The Mind Electric&lt;/A&gt;.&amp;nbsp; Glue was the easier, more flexible web services stack.&amp;nbsp; It was simple.&amp;nbsp; It worked.&amp;nbsp; It was actively maintained. &lt;A class="" href="http://grahamglass.blogs.com/about.html" mce_href="http://grahamglass.blogs.com/about.html"&gt;Graham Glass&lt;/A&gt; came regularly to Redmond to make sure the interop with .NET was good. &lt;/P&gt;
&lt;P&gt;Then TME got bought by WebMethods, and Glue disappeared.&amp;nbsp; I needed to pick a new Java&amp;nbsp;stack.&amp;nbsp;When AXIS came out, I switched, looking for better tools, and something that would be reliable, maintained longer term.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;At that time, I looked at Sun's web services stuff, but it was always bundled with a Web server or Open Office or a Sun Ray or something else from Sun I didn't want. It was like Scott McNealy's proverbial furball.&amp;nbsp; I just wanted a working web services stack, I didn't want to buy a Solaris Server.&amp;nbsp; I didn't want a furball.&amp;nbsp; So I went with AXIS.&amp;nbsp; I could use it on Tomcat, on JBoss, or on Jetty. I could use it client or server side.&amp;nbsp; I wrote a few pages on the AXIS&amp;nbsp;wiki, specifically around how to get it to work with .NET. I sat on the AXIS users mail list, responded to interop questions. &lt;/P&gt;
&lt;P&gt;AXIS (Version 1) worked great for a long time, still does in fact. It has connected to many different endpoints for me - &lt;A class="" href="http://msdn.microsoft.com/en-us/library/ms546696.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms546696.aspx"&gt;Excel Services&lt;/A&gt;, &lt;A class="" href="http://dinoch.dyndns.org:7070/axis1.4/" mce_href="http://dinoch.dyndns.org:7070/axis1.4/"&gt;WCF endpoints&lt;/A&gt;, .NET, SQL Server, and many other pieces.&amp;nbsp;&amp;nbsp;It was neat and clean; the tool options made sense.&amp;nbsp; The code it generated was pretty clean.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;But AXIS1&amp;nbsp;is no longer being maintained.&amp;nbsp; Any new standards (like &lt;A class="" href="http://en.wikipedia.org/wiki/MTOM" mce_href="http://en.wikipedia.org/wiki/MTOM"&gt;MTOM&lt;/A&gt; - heh, &lt;STRONG&gt;&lt;EM&gt;new since 2005&lt;/EM&gt;&lt;/STRONG&gt;) will not be supported in AXIS1. Also,&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2008/07/29/connecting-to-exchange-using-jax-ws-part-1.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2008/07/29/connecting-to-exchange-using-jax-ws-part-1.aspx"&gt;it didn't work so well when it came to connecting to Exchange. AXIS2 likewise&lt;/A&gt;.&amp;nbsp;And that allowed me to step back and re-evaluate.&amp;nbsp; AXIS2 is current, but has become very large, the doc is poor, the support is invisible, the &lt;A class="" href="http://c2.com/cgi/wiki?CodeSmell" mce_href="http://c2.com/cgi/wiki?CodeSmell"&gt;generated code smells&lt;/A&gt;, and the seams are everywhere.&amp;nbsp; Fifty nine jar files?&amp;nbsp; Really?&amp;nbsp;&amp;nbsp; Do I need this hassle?&amp;nbsp; With JAX-WS, do I need AXIS any longer? I think not.&lt;/P&gt;
&lt;P&gt;I'm switching to &lt;A class="" href="http://en.wikipedia.org/wiki/JAX-WS" mce_href="http://en.wikipedia.org/wiki/JAX-WS"&gt;JAX-WS&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This is kinda backwards, because my goal is to show customers that they can in fact connect disparate systems together.&amp;nbsp; Given that goal, my own interests should rank near the bottom in the list of criteria for selecting a web services library.&amp;nbsp; It should be - &lt;EM&gt;what are customers using&lt;/EM&gt;?&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;EM&gt;What do customers want to see&lt;/EM&gt;?&amp;nbsp; But I honestly cannot believe customers will continue to put up with the furball that AXIS2 has become. &lt;/P&gt;
&lt;P&gt;And if I am in a position to make a recommendation, I will recommend JAX-WS. &lt;/P&gt;
&lt;P&gt;It works. There is a single runtime jar file. The tools are better.&amp;nbsp; The interop is good. It's fast.&amp;nbsp; I'm happy.&lt;/P&gt;
&lt;P&gt;I'm changing my decision but I haven't changed my criteria.&amp;nbsp; I still want something that just works, simply.&amp;nbsp; Basically I want the closest philosophoical equivalent of .NET, but in Java.&amp;nbsp; &amp;nbsp; AXIS used to be that.&amp;nbsp; Now, JAX-WS fits that bill. &lt;/P&gt;
&lt;P mce_keep="true"&gt;I still love .NET and WCF.&amp;nbsp;&amp;nbsp; But if I need to connect to .NET from Java, I will use JAX-WS.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8789718" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/AXIS/default.aspx">AXIS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JAXWS/default.aspx">JAXWS</category></item><item><title>Connecting to Exchange using JAX-WS, part 1</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/07/29/connecting-to-exchange-using-jax-ws-part-1.aspx</link><pubDate>Tue, 29 Jul 2008 21:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8789662</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8789662.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8789662</wfw:commentRss><description>&lt;FONT face=Tahoma size=2&gt;
&lt;H3&gt;Yes, it is possible to Connect to Exchange using JAX-WS&lt;/H3&gt;
&lt;P&gt;The fear and trepidation I had when considering the effort to connect a Java application to Exchange Server 2007 was well founded. It wasn't easy. I'm going to spoil the ending and tell you, yes, it is possible to connect Java apps to Exchange Server via Web services, and you can do it securely and with good performance and reliability. But it took some starts and stops to make it happen. &lt;/P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H4&gt;Warning: Old Guy Reminiscing Ahead&lt;/H4&gt;
&lt;P&gt;Back a few years, I was a technical marketing guy for the Microsoft platform, and my main role Was talking to customers. One of the things I talked with customers about often, was interop. Pretty much every customer I talked to already had a signficant investment in information technology, they had a strategy that was in place and working, they had systems in place, working. They had off-the-shelf apps, they had some custom-built apps, and they had skillz. They were looking to make adjustments, to evolve their systems, to improve. It reminded me of the principles of Agile Development. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;Do you remember &lt;A href="http://en.wikipedia.org/wiki/Extreme_Programming" mce_href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;XP&lt;/A&gt;? Do you remember how trendy that was, like 3 or 4 years ago. Everyone was talking about XP, everyone was looking to apply XP principles into their approaches. That seems a long time ago. XP is &lt;B&gt;so 2004&lt;/B&gt;. &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The approach that companies took with their information systems architecture was something like what developers did in a different domain with XP. Lots of little iterations, constant improvement, and steadily you get closer to your goal. &lt;/P&gt;
&lt;P&gt;I remember talking to customers about web services technology, about using standard XML-based protocols to enable better connections between disparate information systems. Yes, Virginia, this was actually a theme of my conversations back only a few years ago. Now it seems so obvious. Now that everything speaks XML and interconnection is fairly easy, the wisdom of using standard protocols to gain efficiencies in IT is apparent. But only a short time ago this issue was not so clearly understood. &lt;/P&gt;
&lt;P&gt;To make my case that web services and XML based protocols were the future, I'd show customers the investments that Microsoft was making into them. I'd tell them about all the standards was Microsoft working on. But the thing that customers wanted was hard evidence - not standards or papers. They wanted proof of XML usage in Microsoft products. So I'd talk about all the XML-based protocols that were already in the existing Microsoft systems they had: the web services libraries in the .NET Framework, the tooling in Visual Studio (but these were fairly obvious). The XML shredding capability that was introduced in SQL 2000 and improved in SQL 2005. Actually with the &lt;A href="http://msdn.microsoft.com/en-us/library/ms191268.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms191268.aspx"&gt;FOR XML&lt;/A&gt; clause you can do some pretty nifty things with the data that is already in your database. The &lt;A href="http://en.wikipedia.org/wiki/MSXML" mce_href="http://en.wikipedia.org/wiki/MSXML"&gt;MSXML&lt;/A&gt; component - now sort of just accepted as part of the landscape, a key, if almost forgotten enabler of AJAX - but 6 or 7 years ago it was undergoing rapid development.&lt;/P&gt;
&lt;P&gt;These are all pretty good examples of Microsoft's investment in XML and WS-*. But one of the things that really surprised people was the web services capabilities we were introducing into Office (with WordML and ExcelML and so on), and the Exchange Server. &lt;/P&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H4&gt;Exchange Server 2007 and Web services &lt;/H4&gt;
&lt;P&gt;Exchange Server 2003 had some limited web services capabilities. With Exchange Server 2007, Microsoft delivered an email and collab server that &lt;A href="http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx"&gt;exposed all of its features through standard web services interfaces&lt;/A&gt;. Today if you have an Exchange Server, you can point your browser to http://my.exchange.server.com/ews/Exchange.asmx and get a WSDL for the server. Wow. That is pretty cool. &lt;/P&gt;
&lt;P&gt;Standards are standards, and complying to a standard doesn't guarantee interop. If you are designing a web services interface, you can get better interop by keeping your WSDL fairly simple, and constraining your interface definitions to avoid some of the more esoteric nooks and crannies of the XML Schema spec. This is advice we've all been following for years. It works. &lt;/P&gt;
&lt;P&gt;The problem with that advice is that it does not work if the information systems at the end of the wire are not simple, or if the requirements are not simple. For example, if you want WS-Addressing or delegated security, things can get complicated. And, similarly, Exchange Server is not simple. It stores lots of different types of things (email messages, contacts, tasks, notes, calendar entries, requests, resent items, recurrences, mime content type, cancellations, suggestions for new times, and so on). And then it compounds that complexity by adding in an unstructured aspect - document attachments and other unstructured data. Then there is stuff like impersonation, delegation (your admin assistant can update your calendar), out-of-office messages, and so on. It's pretty rich. &lt;/P&gt;
&lt;P&gt;With all that capability, necessarily, the interface to Exchange is not going to be simple. Look at the &lt;EM&gt;user&lt;/EM&gt; interface in Outlook - it is pretty rich. And the same is true with the &lt;EM&gt;network&lt;/EM&gt; interface on the wire, described in the WSDL. &lt;/P&gt;
&lt;P&gt;As a result, the WSDL for Exchange is complicated. It's big. It's got lots of nested structures. There are unions and restrictions and headers and bodies. It breaks all the rules for designing schema with interop in mind. &lt;/P&gt;
&lt;P&gt;Anyway, who needs web services, right? We can &lt;A href="http://blogs.msdn.com/dotnetinterop/archive/2008/07/21/connecting-java-to-exchange-over-webdav-with-apache-httpclient.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2008/07/21/connecting-java-to-exchange-over-webdav-with-apache-httpclient.aspx"&gt;use WebDAV&lt;/A&gt;! &lt;/P&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H4&gt;Interop and the Exchange Server web services interface &lt;/H4&gt;
&lt;P&gt;First decision: which web services library to use? My first thought was to use the tried-and-true &lt;A href="http://ws.apache.org/axis/" mce_href="http://ws.apache.org/axis/"&gt;Apache AXIS 1.4&lt;/A&gt; library that I had been depending on since 2006. It wasn't &lt;EM&gt;THAT&lt;/EM&gt; old, and it worked for all the other interop tasks I had tried it on. It &lt;A href="http://dinoch.dyndns.org:7070/axis1.4/" mce_href="http://dinoch.dyndns.org:7070/axis1.4/"&gt;connected to .NET systems using ASMX or WCF.&lt;/A&gt; It was simple. I knew the tools. &lt;/P&gt;
&lt;P&gt;My first step was to grab the Exchange.wsdl, the types.xsd and the message.xsd. I knew that I needed to add a service definition to the end of the Exchange.wsdl file, because most WSDL compilers want it: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;   &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;service&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ExchangeServices"&lt;/SPAN&gt;&amp;gt;
     &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;port&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ExchangeServicePort"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;binding&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"tns:ExchangeServiceBinding"&lt;/SPAN&gt;&amp;gt;
       &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;address&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;location&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"https://myexchange.company.com/EWS/Exchange.asmx"&lt;/SPAN&gt;/&amp;gt;
     &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;port&lt;/SPAN&gt;&amp;gt;
   &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;service&lt;/SPAN&gt;&amp;gt;

&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;definitions&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;But very early the work with AXIS 1.4 was hitting roadblocks. That library generated source code that did not compile. It choked on quite a few things. Other people have &lt;A href="http://forums.microsoft.com/technet/showpost.aspx?postid=2199009&amp;amp;siteid=17" mce_href="http://forums.microsoft.com/technet/showpost.aspx?postid=2199009&amp;amp;siteid=17"&gt;walked this path&lt;/A&gt; but custom modifications to the generated code did not sound like fun to me. I quickly decided that I'd need to move to something else. &lt;/P&gt;
&lt;P&gt;My next idea was to move to &lt;A href="http://ws.apache.org/axis2/" mce_href="http://ws.apache.org/axis2/"&gt;AXIS2&lt;/A&gt;, which, coincidentally, is also at version 1.4. Now why they chose to call it "AXIS2 1.4" instead of "AXIS 2.4" is beyond me. There is a significant breakage in back-compatability with the move to AXIS to AXIS2, but still the version numbers are very confusing. &lt;/P&gt;
&lt;P&gt;AXIS2 introduces a number of changes over AXIS (1). The AXIS guys improved the XML schema support, for one. Also, they made the XML serialization engine pluggable, so you can use the built-in simple library (called ADB), or you can switch to use &lt;A href="http://jibx.sourceforge.net/" mce_href="http://jibx.sourceforge.net/"&gt;JiBX&lt;/A&gt; or &lt;A href="http://xmlbeans.apache.org/overview.html" mce_href="http://xmlbeans.apache.org/overview.html"&gt;XMLBeans&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;As with AXIS1, I ran the Exchange WSDL through the AXIS2 tools to generate the client-side proxies. This time, the code actually compiled. I was pleased to see that there was just one giant Java file generated for the entire Exchange interface. In AXIS 1.4, there was a whole series of files, 447 of em. Too many, thought I. But AXIS2 v1.4 generated just one file. Cool! &lt;/P&gt;
&lt;P&gt;And it was a big one. Opening the file in emacs - emacs asked me, "are you sure you want to open this file? it's really big!" Seriously. And compiling that single file with javac, I actually got a heap overflow. Wow! That's a big file. I just used the -X heap magic incantations on that file and I was able to compile it. &lt;/P&gt;
&lt;P&gt;I wrote up a simple proof of concept Java class that used the generated AXIS stub classes to connect to Exchange Server. When I ran the code, I got a failure: &lt;B&gt;"required attribute localTraversal is null" &lt;/B&gt;I had no idea where that was leading me. I searched in the WSDL and schema for Exchange but couldn't find any elements or attributes by that name. I considered ripping open the AXIS2 source code to try to troubleshoot it. Wasn't real excited about that prospect. I had no idea where that was leading me. &lt;/P&gt;
&lt;P&gt;My next step was to try the XMLbeans serialization option in AXIS 2. With this, I was back to generating ~ 400 Java files. But I didn't care, as long as the interop worked. And I had to update my client application code, because switching from ADB to XMLBeans necessitates a change in the programming model. I didn't care, though. Interop! (The things I do for interop!)&lt;/P&gt;
&lt;P&gt;The AXIS2 + XMLbeans combo was looking promising, but also failed, this time with &lt;/P&gt;&lt;PRE&gt;java.lang.ClassCastException: org.apache.xmlbeans.impl.values.XmlComplexContentImpl cannot be cast to com.microsoft.schemas.exchange.services._2006.types.Folder
IdType
&lt;/PRE&gt;
&lt;P&gt;This is apparently a common error, if there is a duplication in classes. I don't think I had that. I keep a clean workspace. Some of the XMLBeans people suggested on forums to upgrade to the later version of XMLBeans. There was no better suggestion I found. The AXIS2 library bundles XMLBeans 2.3.0, but XMLBeans standalone was at v2.4.0. So I downloaded 2.4.0, and tried to manually compile the schema with the scomp tool. &lt;/P&gt;&lt;PRE&gt;c:\apache\xmlbeans-2.3.0\bin\scomp -out GeneratedTypes.jar contract\ExchangeServices.wsdl  -compiler c:\sunjdk\bin\javac.exe
&lt;/PRE&gt;
&lt;P&gt;But, then, another runtime exception:&lt;/P&gt;&lt;PRE&gt;Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/schemas/exchange/services/_2006/types/FolderIdType
        at ExchangeClient.Run(ExchangeClient.java:161)
        at ExchangeClient.main(ExchangeClient.java:217)
Caused by: java.lang.ClassNotFoundException: com.microsoft.schemas.exchange.services._2006.types.FolderIdType
        at java.net.URLClassLoader$1.run(Unknown Source)
&lt;/PRE&gt;
&lt;P&gt;It was one problem after another. Also, I had found the documentation and examples to be completely lacking for AXIS2. I couldn't find anyplace that gave me any hints. Why was it so hard to find information on this thing? And why did I have to use Class.Factory.Create(); instead of just calling new Class(). How dumb is this? And finally, there were 59 JAR files I needed to reference for AXIS2. That's what the doc told me. Commons-logging, xmlbeans, axis-api, axis-rt, corba, neethi, axiom, anogen, and on and on. I don't even know what those things are. The whole thing felt very... messy. I've already experienced JAR Hell and I don't want to go back there. I'm sure each one of those jars is required, but AXIS2 *could* be a little more seamless. As it is, it feels like a science project. &lt;/P&gt;
&lt;P&gt;Ok, time to switch horses. The AXIS Stuff was not giving me joy. My next attempt would be to use &lt;A href="https://jax-ws.dev.java.net/" mce_href="https://jax-ws.dev.java.net/"&gt;JAXWS&lt;/A&gt;. 
&lt;P&gt;With JAXWS, there is one runtime JAR. One. The code-gen produces... a JAR. How refreshing! I don't need 400 class files. I can just reference a JAR. (Yes, I know there are 400 classes inside the jar.&amp;nbsp; I don't care.&amp;nbsp; It's a single jar).&amp;nbsp; Hmm, someone ought to tell the AXIS project about this upstart JAXWS. The stub classes get generated and compile nicely. (small victory, cross fingers and hope for more). I am starting to like JAXWS. &lt;/P&gt;
&lt;P&gt;The programming model exposed by JAXWS-generated client-side classes is a little different than what I was used to. Rather than using return values from a stub method for the response, JAXWS has this idea of using the &lt;A href="http://search.msn.com/results.aspx?q=javax.xml.ws.holder&amp;amp;form=QBRE" mce_href="http://search.msn.com/results.aspx?q=javax.xml.ws.holder&amp;amp;form=QBRE"&gt;javax.xml.ws.Holder&lt;/A&gt; class for return values. Kinda odd, but... &lt;A href="http://uk.youtube.com/watch?v=Xz7_3n7xyDg" mce_href="http://uk.youtube.com/watch?v=Xz7_3n7xyDg"&gt;whatever&lt;/A&gt;. Maybe there is a way to change the client-side programming model, but I wasn't going to worry about that right then. &lt;/P&gt;
&lt;P&gt;There is some stuff in the Exchange interface (WSDL) having to do with impersonation and SerializedSecurityContext in each request on the EWS Service port, which is not useful. I'm using neither of those things, yet they are included in every Web services stub method. Passing null for these parameters does not satisfy, I get an error saying that I cannot set that to xsi:nil unless the schema has nillable='true'. I tried fiddling with the WSDL.. to set it to nillable in the right spots... That didn't work, so I just removed that stuff from the WSDL completely, from every wsdl:message in the WSDL file: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;message&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"GetFolderSoapIn"&lt;/SPAN&gt;&amp;gt;
                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;part&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"request"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;element&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"tns:GetFolder"&lt;/SPAN&gt; /&amp;gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;dinoch - change for JAXWS
                &amp;lt;wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/&amp;gt;
                &amp;lt;wsdl:part name="S2SAuth" element="t:SerializedSecurityContext"/&amp;gt;
                &amp;lt;wsdl:part name="MailboxCulture" element="t:MailboxCulture"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;part&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"RequestVersion"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;element&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"t:RequestServerVersion"&lt;/SPAN&gt;/&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;message&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;and also from every soap:operation:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;operation&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"GetItem"&lt;/SPAN&gt;&amp;gt;
                        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;operation&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;soapAction&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages/GetItem"&lt;/SPAN&gt; /&amp;gt;
                        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;input&lt;/SPAN&gt;&amp;gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;
                                &amp;lt;soap:header message="tns:GetItemSoapIn" part="Impersonation" use="literal"/&amp;gt;
                                &amp;lt;soap:header message="tns:GetItemSoapIn" part="S2SAuth" use="literal"/&amp;gt;
                                &amp;lt;soap:header message="tns:GetItemSoapIn" part="MailboxCulture" use="literal"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
                                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;header&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;message&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"tns:GetItemSoapIn"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;part&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"RequestVersion"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;use&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"literal"&lt;/SPAN&gt;/&amp;gt;
                                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;body&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;parts&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"request"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;use&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"literal"&lt;/SPAN&gt; /&amp;gt;
                        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;input&lt;/SPAN&gt;&amp;gt;
                        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;output&lt;/SPAN&gt;&amp;gt;
                                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;body&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;parts&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"GetItemResult"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;use&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"literal"&lt;/SPAN&gt; /&amp;gt;
                                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;header&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;message&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"tns:GetItemSoapOut"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;part&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ServerVersion"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;use&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"literal"&lt;/SPAN&gt;/&amp;gt;
                        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;output&lt;/SPAN&gt;&amp;gt;
                &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;operation&lt;/SPAN&gt;&amp;gt;
                &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;wsdl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;operation&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"CreateItem"&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;Ok, I was getting somewhere. With this change I was able to send a FindItem message over the wire to Exchange, and get message IDs back. &lt;B&gt;Very cool.&lt;/B&gt; The approach I was taking was to use findItem to get the item IDs, and then use GetItem on the Ids to get the full content. The FindItem() was working flawlessly, but the GetItem() was not. I was not getting the results I expected. No exceptions, but my data was not coming back. &lt;/P&gt;
&lt;P&gt;To troubleshoot this, I used &lt;A href="http://www.fiddler2.com/Fiddler2/" mce_href="http://www.fiddler2.com/Fiddler2/"&gt;Fiddler2&lt;/A&gt; to see the HTTP messages back and forth between Java and Exchange. Because the communication was using SSL for encryption, Fiddler2 does not work. Some people have used &lt;A href="http://www.charlesproxy.com/" mce_href="http://www.charlesproxy.com/"&gt;Charles&lt;/A&gt;, a similar web debugging proxy. But I already had Fiddler, so... With the fiddler tool I could see &lt;EM&gt;exactly&lt;/EM&gt; why the GetItem message was not giving me joy. (By the way, if you use Fiddler to decrypt SSL traffic, it's necessary to specify to the Java app that it should accept any SSL traffic - basically disable cert validation in the application. Only do this for testing purposes!!) &lt;/P&gt;
&lt;P&gt;Correct flow from a .NET app to Exchange:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Envelope&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;soap&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.xmlsoap.org/soap/envelope/"&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;soap&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Body&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;GetItem&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages"&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt;&amp;gt;Default&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Subject"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Body"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Categories"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ExtendedFieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertySetId&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"0006200E-0000-0000-C000-000000000046"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyId&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"35584"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyType&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Integer"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ExtendedFieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyTag&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"0x10F3"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyType&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"String"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ExtendedFieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyTag&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"0x3008"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;PropertyType&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"SystemTime"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemIds&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemId&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;Id&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"AAAZAERpbm8uQ2hpZXNhQG1pY3Jvc29mdC5jb20ARgAAAAAALBHixAbt0hGt6gCAX5/eGgcAd75VstDi0RGt3QCAX5/eGgAAAnopngAAEKx2OMNuVUuHEMvofVOxpwANFT4iewAA"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;ChangeKey&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"AAAAABQAAAAdMskaJAAzTpK1s6mN4vCnAAhyCw=="&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt; /&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;Broken flow from a JAXWS app to Exchange:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Envelope&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;S&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.xmlsoap.org/soap/envelope/"&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Header&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;RequestServerVersion&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;ns2&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;Version&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Exchange2007_SP1"&lt;/SPAN&gt; /&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Header&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Body&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;GetItem&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;ns2&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt;&amp;gt;Default&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Path&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;xsi&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xsi&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ns2:PathToUnindexedFieldType"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Subject"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Path&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;xsi&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xsi&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ns2:PathToUnindexedFieldType"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Body"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Path&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;xsi&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xsi&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ns2:PathToUnindexedFieldType"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Categories"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemIds&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;ItemId&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;ChangeKey&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"AAAAABQAAAAdMskaJAAzTpK1s6mN4vCnAAhyCw=="&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;Id&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"AAMkAGUwNmJhYWVjLTI1ZTgtMTFkMy05MDc5LTAwODA1ZjMxZjgyNgBGAAAAAAAsEeLEBu3SEa3qAIBfn94aBwB3vlWy0OLREa3dAIBfn94aAAACeimeAAAQrHY4w25VS4cQy+h9U7GnAA0VPiJ7AAA="&lt;/SPAN&gt; /&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;Exchange wasn't sending me the data I expected, because the JAXWS request message was not what Exchange expected it to be. With this understanding, I looked into the contract. For the element in question, the schema used a ref="type" structure, and this was the only use of the ref in the entire contract. Clearly causing a problem; JAXWS was formatting it strangely. I modified it to eliminate the ref, just as a test. &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;  &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;Arrays of paths &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;complexType&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"NonEmptyArrayOfPathsToElementType"&lt;/SPAN&gt;&amp;gt;
    &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;using choice here so that proxy generator will not flatten the array and thus lose the
                item element names &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choice&lt;/SPAN&gt; maxOccurs =&lt;SPAN style="COLOR: #bc8f8f"&gt;"unbounded"&lt;/SPAN&gt;&amp;gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;dinoch - change for jaxws &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;element&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Path"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"t:BasePathToElementType"&lt;/SPAN&gt;/&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;element&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"FieldURI"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"t:PathToUnindexedFieldType"&lt;/SPAN&gt; /&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;element&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"IndexedFieldURI"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"t:PathToIndexedFieldType"&lt;/SPAN&gt; /&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;element&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ExtendedFieldURI"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"t:PathToExtendedFieldType"&lt;/SPAN&gt;/&amp;gt;

&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;
      &amp;lt;xs:element ref="t:Path"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;

    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choice&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xs&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;complexType&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;After re-generating the client-side stubs, I was able to get the GetItem message to work nicely. Here's the message from JAXWS after the change in schema: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Envelope&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;S&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.xmlsoap.org/soap/envelope/"&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Header&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;RequestServerVersion&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;ns2&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;Version&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Exchange2007_SP1"&lt;/SPAN&gt; /&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Header&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;S&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;Body&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;GetItem&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/messages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;ns2&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/exchange/services/2006/types"&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt;&amp;gt;Default&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;BaseShape&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Subject"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Body"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;FieldURI&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;FieldURI&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"item:Categories"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;ns2&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;AdditionalProperties&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;ItemShape&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;ItemIds&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;After that, it was a matter of writing up the code to use the jaxws-generated stubs. It all works nicely now. It's pretty darn fast, too! &lt;/P&gt;
&lt;P&gt;Let me summarize what I did to get Java to talk to Exchange:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Modified the exchange.wsdl to include a service definition, and to remove all occurrences of impersonation, S2SAuth, and MailboxCulture from each wsdl:message.&lt;/LI&gt;
&lt;LI&gt;Modified the types.xsd to eliminate the ref="t:Path", and replace it with actual elements&lt;/LI&gt;
&lt;LI&gt;Use Fiddler2 to trace and debug the SOAP messages. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The bottom line is that web services interop is possible even with complicated schema and interfaces, if you are willing to get your hands dirty on the schema, and if you choose the right tools. &lt;/P&gt;
&lt;P&gt;In part 2 of this story, I'll show you some of the application code that uses the JAXWS-generated client classes, and I'll pack up the source code for everything too. &lt;/P&gt;
&lt;P&gt;Great resources: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://tp.its.yale.edu/confluence/display/EXCH/Introduction+to+MS+Exchange+Web+Services+via+Java%28JAXWS%29?focusedCommentId=3080591" mce_href="http://tp.its.yale.edu/confluence/display/EXCH/Introduction+to+MS+Exchange+Web+Services+via+Java%28JAXWS%29?focusedCommentId=3080591"&gt;Good hints from a Yaley&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc540448(EXCHG.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc540448(EXCHG.80).aspx"&gt;Tech article library on MSDN, covering Exchange Web Services&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.fiddler2.com/Fiddler2/" mce_href="http://www.fiddler2.com/Fiddler2/"&gt;Fiddler2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=838&amp;amp;SiteID=17" mce_href="http://forums.microsoft.com/TechNet/ShowForum.aspx?ForumID=838&amp;amp;SiteID=17"&gt;TechNet forum on Exchange Development&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Cheers, &lt;BR&gt;-Dino &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8789662" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/AXIS/default.aspx">AXIS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/JAXWS/default.aspx">JAXWS</category></item><item><title>Connecting Java to Exchange over WebDAV, with Apache HttpClient</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/07/21/connecting-java-to-exchange-over-webdav-with-apache-httpclient.aspx</link><pubDate>Mon, 21 Jul 2008 19:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8755503</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8755503.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8755503</wfw:commentRss><description>&lt;DIV style="FONT-SIZE: 11pt; MARGIN: 0in 0in 10pt; FONT-FAMILY: Calibri,sans-serif"&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/dotnetinterop/archive/2008/06/17/java-exchange-connector.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2008/06/17/java-exchange-connector.aspx"&gt;Earlier I mentioned a Java Exchange Connector&lt;/A&gt; I had seen, and in that post I also said that I had some code that connected from Java to Exchange Server via WebDAV. Some people have asked for the code, so here it is. &lt;/P&gt;
&lt;P&gt;I use a set of&amp;nbsp;Apache libraries to make this possible: &lt;A href="http://projects.apache.org/projects/commons_httpclient.html" mce_href="http://projects.apache.org/projects/commons_httpclient.html"&gt;Apache Commons HttpClient&lt;/A&gt; for the Java SSL client capability, and &lt;A href="http://jakarta.apache.org/slide/" mce_href="http://jakarta.apache.org/slide/"&gt;Apache Jakarta Slide&lt;/A&gt; for the WebDAV piece. As you may have heard, Slide was discontinued as a project a while ago. So maybe you are thinking, &lt;EM&gt;Slide? What good is that code if it depends on an abandoned Apache library?&lt;/EM&gt;. A reasonable point. Honestly though, the Slide stuff is really not that critical for this scenario. Basically, WebDAV is a standard for formatting queries that get sent over HTTP. But in my case, I am just cons-ing up strings that contain the queries. It would be pretty easy to factor out the WebDAV/Slide stuff, I think. I didn't bother to do it, only because I wrote the code a long time ago, well before Slide was discontinued, and I didn't really feel like investing the time to re-factor it now. &lt;/P&gt;
&lt;P&gt;The httpclient and slide jars also drag in the commons-logging and codec jars from Apache.&lt;/P&gt;
&lt;P&gt;I have the full working proof-of-concept code attached to this post as a zipfile. It is a JSP-based app that runs in Tomcat or Jetty or your favorite servlet container. Requires JDK 1.5 to build it. You can have a look and try it out yourself. Here's the code I use to send out a query to Exchange. &lt;/P&gt;
&lt;SCRIPT language=javascript src="http://cheeso.members.winisp.net/dp.SyntaxHighlighter/script/shCore.js"&gt;&lt;/SCRIPT&gt;

&lt;SCRIPT language=javascript src="http://cheeso.members.winisp.net/dp.SyntaxHighlighter/script/shBrushJava.js"&gt;&lt;/SCRIPT&gt;

&lt;SCRIPT language=javascript src="http://cheeso.members.winisp.net/dp.SyntaxHighlighter/script/shBrushXml.js"&gt;&lt;/SCRIPT&gt;

&lt;SCRIPT language=javascript defer&gt;
    dp.SyntaxHighlighter.ClipboardSwf = 'http://cheeso.members.winisp.net/dp.SyntaxHighlighter/script/clipboard.swf'; 
    dp.SyntaxHighlighter.BloggerMode();
    dp.SyntaxHighlighter.HighlightAll('code');
&lt;/SCRIPT&gt;
&lt;PRE class=java name="code"&gt;  public org.w3c.dom.Document search(String urlString, String request, int depth, String range) 
    throws Exception
  {
    Document doc= null;

    SearchMethod method = new SearchMethod(urlString, request); 
    try {
      //method.setRequestHeader("Content-type", "text/xml");
      method.setRequestHeader("depth", ""+depth) ;
      method.setRequestHeader("Translate", "f");

      // must set Content-Length explicitly.  Why doesn't the SearchMethod do this?  Who knows. . .
      method.setRequestHeader("Content-Length", String.valueOf(request.length()));

      if ((range!=null) &amp;amp;&amp;amp; (range !=""))
          method.setRequestHeader("Range", range);

      int rc = httpclient.executeMethod(method);

      doc = method.getResponseDocument();
    }

    finally {
      // release any connection resources used by the method
      method.releaseConnection();
    }            

    return doc;
  }

&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ok, that's just some boilerplate WebDAV stuff. Get a request, set the HTTP headers, send out the request. The magic really is in the request itself. This is what a WebDAV request looks like on the wire: &lt;/P&gt;&lt;TEXTAREA class=xml:nogutter name=code rows=5 cols=70&gt;SEARCH /exchange/dinoch/Inbox HTTP/1.1 
depth: 1 
Translate: f 
Content-Length: 370
Range: rows =0-3
Content-Type: text/xml; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: mail.microsoft.com
Cookie: $Version=0; sessionid=40e73022-93d3-4739-99ff-bf60fd60fcee; $Path =/
Cookie: $Version=0; cadata=1 gGfmglWDAmcLGmstqx3kSpuecb1BVBmjFwiD0IIem2hm6IsfCLr7DSo63ncgdM7xNi3E5A==; $Path= /

&amp;lt;searchrequest xmlns='DAV:' &amp;gt;
  &amp;lt;sql&amp;gt; 
    SELECT "DAV:id", "DAV:href" , "urn:schemas:httpmail:subject", "urn:schemas: httpmail:from", "urn:schemas:httpmail:datereceived" 
    FROM SCOPE('shallow traversal of "https://mail.microsoft.com/exchange/dinoch/Inbox"') 
    WHERE "DAV:ishidden"=False AND "DAV:isfolder"=False 
  &amp;lt;/sql&amp;gt;
&amp;lt;/searchrequest&amp;gt;
&lt;/TEXTAREA&gt; 
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 0px; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 0px; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;SEARCH /exchange/dinoch/Inbox HTTP/1.1 
depth: 1 
Translate: f 
Content-Length: 370
Range: rows =0-3
Content-Type: text/xml; charset=utf-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: mail.microsoft.com
Cookie: $Version=0; sessionid=40e73022-93d3-4739-99ff-bf60fd60fcee; $Path =/
Cookie: $Version=0; cadata=1 gGfmglWDAmcLGmstqx3kSpuecb1BVBmjFwiD0IIem2hm6IsfCLr7DSo63ncgdM7xNi3E5A==; $Path= /

&amp;lt;searchrequest xmlns='DAV:' &amp;gt;
  &amp;lt;sql&amp;gt; 
    SELECT "DAV:id", "DAV:href" , "urn:schemas:httpmail:subject", "urn:schemas: httpmail:from", "urn:schemas:httpmail:datereceived" 
    FROM SCOPE('shallow traversal of "https://mail.microsoft.com/exchange/dinoch/Inbox"') 
    WHERE "DAV:ishidden"=False AND "DAV:isfolder"=False 
  &amp;lt;/sql&amp;gt;
&amp;lt;/searchrequest&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In that request, I'm searching on my Exchange Inbox. I can also search on any folder: Calendar, Contacts, Notes, Tasks, any mail folder, and so on. The schema are different for different item types, so ya gotta be careful there. Anyway, in the above request, I search on the first 4 rows, and I ask for the fields: subject, id, href, from, and datereceived. &lt;/P&gt;
&lt;P&gt;In the proof of concept, I create these queries using a file-based template, one for each type of query. I have a template for the inbox query, another template for the query of the tasks folder, and so on. This is the template for the Tasks query, for example: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: 'Consolas', 'Courier New'"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;searchrequest&lt;/SPAN&gt;  &lt;SPAN style="COLOR: #b8860b"&gt;xmlns&lt;/SPAN&gt;='DAV:'&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;sql&lt;/SPAN&gt;&amp;gt;
    SELECT 
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:href"&lt;/SPAN&gt;, 
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:displayname"&lt;/SPAN&gt;, 
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:getlastmodified"&lt;/SPAN&gt;,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:schemas:httpmail:subject"&lt;/SPAN&gt;,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:schemas:httpmail:textdescription"&lt;/SPAN&gt;,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/0x00008517"&lt;/SPAN&gt; as DueDate2,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8101"&lt;/SPAN&gt; AS Status,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8102"&lt;/SPAN&gt; AS PercentComplete,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8104"&lt;/SPAN&gt; AS StartDate,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8105"&lt;/SPAN&gt; AS DueDate,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x810f"&lt;/SPAN&gt; AS DateCompleted,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x811c"&lt;/SPAN&gt; AS IsComplete,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8113"&lt;/SPAN&gt; AS State,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8110"&lt;/SPAN&gt; AS ActualEffort,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8111"&lt;/SPAN&gt; AS EstimatedEffort,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x8518"&lt;/SPAN&gt; AS Mode,
       &lt;SPAN style="COLOR: #bc8f8f"&gt;"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/0x811f"&lt;/SPAN&gt; AS Owner

    FROM SCOPE('shallow traversal of  &lt;SPAN style="COLOR: #bc8f8f"&gt;"##FOLDERPATH##"&lt;/SPAN&gt;')
    WHERE &lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:ishidden"&lt;/SPAN&gt;=False AND &lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:isfolder"&lt;/SPAN&gt;=False  
    ORDER BY IsComplete, DueDate ASC 

 &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;sql&lt;/SPAN&gt;&amp;gt;
&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;searchrequest&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One of the trickiest areas for me was just figuring out the MAPI schema for all the various fields that might be present in a given document type (like task, message, meeting request, contact, note, and so on) that can be stored by Exchange. The schema are not intuitive, nor did I find the documentation to be easily accessible. As you can see, there are some magic incantations above for the task document type. &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;EM&gt;Just so everyone is clear: The schema used is the same, regardless of the type of client. I am writing a Java app here. But you could use these same queries from a .NET app, a VBScript app, or a PHP app, or Ruby or whatever. The Exchange Server responds to the on-the-wire protocol, and doesn't care about the client you use. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Another key part is logging into the Exchange server. This is the method I use to login. &lt;/P&gt;&lt;PRE class=java name="code"&gt;  public void login (String destUrl, String username, String password) 
    throws Exception
  {
    Username= username;

    String[] urlParts=destUrl.split("/");
    String server= urlParts[2]; 
    String authDllPath= "/exchweb/bin/auth/owaauth.dll";
    String AuthUrl= Protocol + "://" + server + authDllPath;

    //System.setProperty("javax.net.debug", "all");  // too much information
    //System.setProperty("javax.net.debug", "ssl");

    // the class ionic.ssl.SSLSocketFactoryImpl must be available for the classloader,
    // eg, on &lt;JRE&gt;\lib\ext
    java.security.Security.setProperty("ssl.SocketFactory.provider",
                                       "ionic.ssl.SSLSocketFactoryImpl");

    if (!server.equals(Servername)) 
      throw new Exception ("Cross-site redirection attempt.");

    PostMethod method = new PostMethod(AuthUrl);

    try {

      //System.out.println("DavConnection: Logging in with u/p: " + username + " | " + password); 

      method.setFollowRedirects(false); // false == default

      NameValuePair[] data = {
        new NameValuePair("destination", destUrl),
        new NameValuePair("username", username),
        new NameValuePair("password", password)
      };
      method.setRequestBody(data);

      int rc = httpclient.executeMethod(method);
      int stat= method.getStatusLine().getStatusCode(); 
        
      if (stat== 302) {  // 302 = Moved Temporarily (this is success)

        // The response form Exch2003 says "Moved Temporarily" but 
        // if we are only logging in, we don't need to follow this link. 
        // The apache commons httpclient runtime will log an INFO
        // saying "302 received but followRedirects==false.  This is OK. 

        // String redirectLocation= null; 
        // Header locationHeader = method.getResponseHeader("location");
        // if (locationHeader != null) 
        // redirectLocation = locationHeader.getValue();
        // System.out.println("Redirect to: " + redirectLocation);

      }
      else 
        throw new Exception("Unexpected HTTP status code during login (" + stat +")");
    } 
    finally {
      // release any connection resources used by the method
      method.releaseConnection();
    }            
  }
&lt;/PRE&gt;
&lt;P class=Normal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=Normal&gt;This login method is exposed on a DavConnection object, the class/type that wraps all the interaction with Exchange server. After login, of course, I set the DavConnection into the http session. It gets returned as a cookie to the browser. Thereafter when the browser connects and presents its cookie, we have te active Exchange connection. We only login once. &lt;/P&gt;
&lt;P class=Normal&gt;At this point I want to talk about cookies. My favorite kind are oatmeal cookies, which I love to make. When I make 'em, I tend to eat them, all of them. So I don't make 'em that often. My second-favorite kind of cookies are HTTP Cookies. There are two sets of HTTP cookies in this application scenario. One set of cookies links the browser to the JSP app. Another set of cookies links the JSP app to Exchange Server. &lt;/P&gt;
&lt;P class=Normal&gt;The second set, the cookies that Exchange sends back to the client that is authenticating (in this case our JSP app) must be retained and presented back to the server on subsequent queries. Nicely for us, the Apache HttpClient library does that automagically for us. The DavConnection class embeds an HttpClient instance as a member; this HttpClient instance retains the cookies that keep the conversation with Exchange alive. mmm-kay? &lt;/P&gt;
&lt;P class=Normal&gt;Let's see what else? I guess you will want to have a look at a sample response from an Exchange WebDAV query. This is one response I got. &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;multistatus&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;b&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;d&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:schemas:httpmail:"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;c&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"xml:"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;a&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:"&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;contentrange&lt;/SPAN&gt;&amp;gt;0-9&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;contentrange&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/RE:%20Developing%20and%20debugging%20without%20admin%20rights.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47Tx0AAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/RE:%20Developing%20and%20debugging%20without%20admin%20rights.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;RE: Developing and debugging without admin rights&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Alun Jones"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;alunj@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T21:26:24.409Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/MarieHu%20team%20meeting:%20FY06%20plans%20%26%20budget.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxGAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/MarieHu%20team%20meeting:%20FY06%20plans%20%26%20budget.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;MarieHu team meeting: FY06 plans &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt; budget&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Marie Huwe"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;mariehu@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T21:23:44.107Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Repeater%20control%20%3CItemTemplate%3E%20question.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxMAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Repeater%20control%20%3CItemTemplate%3E%20question.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;Repeater control &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;ItemTemplate&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt; question&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Mike Burdick"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;mikebu@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T21:23:06.000Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Work%20on%20the%20update%20to%20the%20Business%20Section%20of%20the%20RTB%20Slide%20Deck.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxZAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Work%20on%20the%20update%20to%20the%20Business%20Section%20of%20the%20RTB%20Slide%20Deck.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;Work on the update to the Business Section of the RTB Slide Deck&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Paul Barcoe-Walsh"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;paulbwa@exchange.microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T20:52:48.000Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/RE:%20demo%20script%20updates%20-%2060min:%20403%20on%20notify%20ws.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxSAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/RE:%20demo%20script%20updates%20-%2060min:%20403%20on%20notify%20ws.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;RE: demo script updates - 60min: 403 on notify ws&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Jonathan Moons"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;jmoons@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T20:46:05.000Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/ACTION:%20New%20launch%20BOM%20in%20effect.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxQAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/ACTION:%20New%20launch%20BOM%20in%20effect.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;ACTION: New launch BOM in effect&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Bill Dunlap"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;bdunlap@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T20:43:09.000Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/You%20available%20to%20talk%20today_x003F_.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxRAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/You%20available%20to%20talk%20today_x003F_.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;You available to talk today?&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Terry Leeper"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;tleeper@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T20:07:57.694Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/MarieHu%20team%20meeting:%20Overview%20of%20the%20Connected%20Systems%20Generico%20application.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxYAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/MarieHu%20team%20meeting:%20Overview%20of%20the%20Connected%20Systems%20Generico%20application.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;MarieHu team meeting: Overview of the Connected Systems Generico application&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Marie Huwe"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;mariehu@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T20:02:45.693Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Blowfish%20implementations%20for%20.NET.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxKAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Blowfish%20implementations%20for%20.NET.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;Blowfish implementations for .NET&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Kevin Hammond"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;kevinha@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T19:48:00.000Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Out%20of%20Office%20AutoReply:%20SF%20and%20Interop.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;HTTP/1.1 200 OK&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;status&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;ARkAAAACUCbqAQAAQL47TxBAAAAA&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;id&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;https://mail.microsoft.com/Exchange/dinoch/Inbox/Out%20of%20Office%20AutoReply:%20SF%20and%20Interop.EML&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;href&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;Out of Office AutoReply: SF and Interop&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;subject&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;&lt;SPAN style="COLOR: #bc8f8f"&gt;"Mike Wons"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&lt;/SPAN&gt;mikewons@microsoft.com&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&lt;/SPAN&gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;from&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt; &lt;SPAN style="COLOR: #da70d6"&gt;b&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;dt&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"dateTime.tz"&lt;/SPAN&gt;&amp;gt;2005-04-11T19:35:23.673Z&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;d&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;datereceived&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;prop&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;propstat&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;response&lt;/SPAN&gt;&amp;gt;
&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;a&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;multistatus&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P class=Normal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=Normal&gt;Just standard XML. I use an XSL sheet to transform that into some readable HTML. In the interest of completeness, here it is: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;stylesheet&lt;/SPAN&gt; 
    &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;xsl&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"http://www.w3.org/1999/XSL/Transform"&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #b8860b"&gt;version&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"1.0"&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;a&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"DAV:"&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;m&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:schemas:httpmail:"&lt;/SPAN&gt; 
    &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;c&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"urn:schemas:contacts:"&lt;/SPAN&gt; 
    &lt;SPAN style="COLOR: #da70d6"&gt;xmlns&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #b8860b"&gt;java&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"java"&lt;/SPAN&gt; 
  &amp;gt;

&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;Contacts.xsl                                                         &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!--                                                                      --&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;This sheet is used to Transform XML obtained from an Exchange        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;webdav query into html.                                              &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!--                                                                      --&amp;gt;&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;Tue, 12 Apr 2005  15:11                                              &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;


&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;param&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"PageNumber"&lt;/SPAN&gt;/&amp;gt;
&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;param&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"UserName"&lt;/SPAN&gt;/&amp;gt;
&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;param&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"FolderName"&lt;/SPAN&gt;/&amp;gt;
&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;param&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"PageName"&lt;/SPAN&gt;/&amp;gt;
&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;param&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"CurrentTimeFormatted"&lt;/SPAN&gt;/&amp;gt;


&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;output&lt;/SPAN&gt; 
    &lt;SPAN style="COLOR: #b8860b"&gt;method&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"html"&lt;/SPAN&gt; 
    &lt;SPAN style="COLOR: #b8860b"&gt;indent&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"yes"&lt;/SPAN&gt; /&amp;gt;

  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;template&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;match&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:multistatus"&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;variable&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"FolderDecoded"&lt;/SPAN&gt;
              &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"java:net.URLDecoder.decode($FolderName, 'UTF-8')"&lt;/SPAN&gt; &amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;variable&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;test&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"number($PageNumber) &amp;gt; 1"&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"href"&lt;/SPAN&gt;&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$PageName"&lt;/SPAN&gt;/&amp;gt;?action=itemizeFolder&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;ref=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$FolderName"&lt;/SPAN&gt;/&amp;gt;&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;page=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"number($PageNumber)-1"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt;&amp;gt;
            &lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;lt;&amp;amp;lt;&lt;/SPAN&gt;prev&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt;&amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
      &amp;amp;#160; &amp;amp;#160; &amp;amp;#160; &amp;amp;#160; &amp;amp;#160;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;

    &amp;amp;#160;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"href"&lt;/SPAN&gt;&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$PageName"&lt;/SPAN&gt;/&amp;gt;?action=itemizeFolder&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;ref=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$FolderName"&lt;/SPAN&gt;/&amp;gt;&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;page=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"number($PageNumber)+1"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt;&amp;gt;
           next&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;gt;&amp;amp;gt;&lt;/SPAN&gt;
    &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
    
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;h2&lt;/SPAN&gt;&amp;gt;Folder:&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$FolderDecoded"&lt;/SPAN&gt;/&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;h2&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;h3&lt;/SPAN&gt;&amp;gt;User: &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$UserName"&lt;/SPAN&gt;/&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;br&lt;/SPAN&gt;/&amp;gt;
    as of: &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$CurrentTimeFormatted"&lt;/SPAN&gt;/&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;h3&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;table&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;border&lt;/SPAN&gt;='1'&amp;gt; 
    &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;apply-templates&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"*"&lt;/SPAN&gt; /&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;table&lt;/SPAN&gt;&amp;gt; 
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;template&lt;/SPAN&gt;&amp;gt;

  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;template&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;match&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:contentrange"&lt;/SPAN&gt; /&amp;gt;

  &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;template&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;match&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:response"&lt;/SPAN&gt;&amp;gt;

    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;tr&lt;/SPAN&gt;&amp;gt;
     &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;

      &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;============================================================ &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;test&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$FolderName = 'Inbox' or $FolderName = 'Sent Items' or $FolderName = 'Deleted Items'  or $FolderName = 'Junk E-mail'  "&lt;/SPAN&gt; &amp;gt;
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
            &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"href"&lt;/SPAN&gt;&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$PageName"&lt;/SPAN&gt;/&amp;gt;?action=get&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;item=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:href"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt;&amp;gt;
              &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:propstat/a:prop/m:subject"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt; 
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;style&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"font-size:8pt;"&lt;/SPAN&gt;&amp;gt;
              &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"translate(a:propstat/a:prop/m:from, '\\', '')"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
           &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"substring(a:propstat/a:prop/m:datereceived,0,11)"&lt;/SPAN&gt; /&amp;gt;&amp;amp;#160;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"substring(a:propstat/a:prop/m:datereceived,12,8)"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;

      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt;&amp;gt;

      &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;============================================================ &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;test&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$FolderName = 'Contacts'"&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
            &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"href"&lt;/SPAN&gt;&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$PageName"&lt;/SPAN&gt;/&amp;gt;?action=get&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;item=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:href"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt;&amp;gt;
             &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;b&lt;/SPAN&gt;&amp;gt; &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:propstat/a:prop/c:fileas"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;b&lt;/SPAN&gt;&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt; 
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;style&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"font-size:8pt;"&lt;/SPAN&gt;&amp;gt;
              &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:propstat/a:prop/c:telephoneNumber"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt;&amp;gt;

      &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;============================================================ &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
      &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
      &lt;SPAN style="COLOR: #b22222"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;xsl:when test="$FolderName = 'Notes'"  &lt;/SPAN&gt;&lt;SPAN style="COLOR: #b22222"&gt;--&amp;gt;&lt;/SPAN&gt;
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;variable&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"ItemName"&lt;/SPAN&gt;&amp;gt; 
        &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;test&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"substring(a:propstat/a:prop/a:displayname,string-length(a:propstat/a:prop/a:displayname)-3) = '.EML'"&lt;/SPAN&gt;&amp;gt;
            &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"substring-before(a:propstat/a:prop/a:displayname,'.EML')"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;when&lt;/SPAN&gt;&amp;gt;
          &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
            &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:propstat/a:prop/a:displayname"&lt;/SPAN&gt; /&amp;gt;
          &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;variable&lt;/SPAN&gt;&amp;gt;

        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt;
            &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"href"&lt;/SPAN&gt;&amp;gt;&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$PageName"&lt;/SPAN&gt;/&amp;gt;?action=get&lt;SPAN style="COLOR: #b8860b"&gt;&amp;amp;amp;&lt;/SPAN&gt;item=&amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:href"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;attribute&lt;/SPAN&gt;&amp;gt;
             &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;b&lt;/SPAN&gt;&amp;gt; &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"$ItemName"&lt;/SPAN&gt; /&amp;gt;&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;b&lt;/SPAN&gt;&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;a&lt;/SPAN&gt;&amp;gt; 
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;style&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"font-size:8pt;"&lt;/SPAN&gt;&amp;gt;
              &amp;lt;&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;value-of&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;select&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"a:propstat/a:prop/a:getlastmodified"&lt;/SPAN&gt; /&amp;gt;
        &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;td&lt;/SPAN&gt;&amp;gt;
      &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;otherwise&lt;/SPAN&gt;&amp;gt;
     &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;choose&lt;/SPAN&gt;&amp;gt;
    &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;tr&lt;/SPAN&gt;&amp;gt;
  &amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;template&lt;/SPAN&gt;&amp;gt;
&amp;lt;/&lt;SPAN style="COLOR: #da70d6"&gt;xsl&lt;/SPAN&gt;:&lt;SPAN style="COLOR: #0000ff"&gt;stylesheet&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P class=Normal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=Normal&gt;Of course, in the more general case, you're not going to just be &lt;EM&gt;displaying&lt;/EM&gt; the result you got from querying exchange. Instead you will be extracting data and mashing it up with something else. In that case you will want to do XPath or DOM walky stuff on the XML doc. And you know how to do that, right? &lt;/P&gt;
&lt;P class=Normal&gt;All the code is available attached here. I hope you all find it useful! &lt;/P&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;EM&gt;Just a quick disclaimer before I go: I Really DO NOT recomend that people constructing new apps use WebDAV to connect to Exchange Server. Exchange Server 2007 supports a standards-compliant Web services interface, which is much easier to use than the WebDAV interface. If you have a choice, please consider using the web services option. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Cheers! &lt;BR&gt;-Dino &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8755503" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/dotnetinterop/attachment/8755503.ashx" length="597018" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Exchange/default.aspx">Exchange</category></item><item><title>Open Source and Interoperability</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/06/18/open-source-and-interoperability.aspx</link><pubDate>Wed, 18 Jun 2008 17:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8611070</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8611070.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8611070</wfw:commentRss><description>&lt;P&gt;Open. Source. Is. Not. Interoperability.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.tedneward.com/" mce_href="http://www.tedneward.com/"&gt;Ted Neward&lt;/A&gt; is an entertaining and talented writer, not to mention a stand-up guy, and a first-rate technogeek.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But that doesn't mean he is always right. I was just reading and &lt;A class="" href="http://blogs.tedneward.com/2008/04/02/Is+Microsoft+Serious.aspx" mce_href="http://blogs.tedneward.com/2008/04/02/Is+Microsoft+Serious.aspx"&gt;old post of his&lt;/A&gt; which I missed during my unscheduled sabbatical, in which he writes:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;They [Microsoft] need to have an interoperability story that developers can believe in, which means some kind of open-source-friendly play&lt;/EM&gt;, &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I still, &lt;B&gt;still&lt;/B&gt; totally do not get why Interop and Open Source are used so interchangeably, by so many people.&amp;nbsp; Often by people&amp;nbsp;whose viewpoints I respect,&amp;nbsp;such as the esteemed Mr Neward.&amp;nbsp;Or if not used interchangeably, why they are viewed as so closely related by so many people.&amp;nbsp; I do not see these two things&amp;nbsp;as mutually dependent. They are completely independent factors.&lt;/P&gt;
&lt;P&gt;Interop is not open source.&amp;nbsp; Open source does not guarantee interop.&amp;nbsp;Period. &lt;/P&gt;
&lt;P&gt;I am not making quality judgments on either open source or interop.&amp;nbsp; I am not saying that one of them is good and one is bad.&amp;nbsp; &lt;EM&gt;I am saying &lt;/EM&gt;they are two different things.&amp;nbsp; They are "silicon based computers" and "big endian bit ordering".&amp;nbsp; They are related, they are neighbors, they are acquaintances, but they are not interchangeable.&amp;nbsp; Nor does one imply the other. &amp;nbsp; &lt;/P&gt;
&lt;P&gt;Repeat after me: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Interop is not open source.&lt;/LI&gt;
&lt;LI&gt;Interop does not require open source implementations&lt;/LI&gt;
&lt;LI&gt;Open source does not guarantee Interop &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;People will disagree with this; I expect to hear some feedback saying "With open source I can see the code and therefore it is easier to build something that interconnects with it."&amp;nbsp; I'm not buying that.&amp;nbsp; That is lazy thinking or bad engineering or both. &amp;nbsp; I can imagine that open source would imply interop, if you limit the&amp;nbsp;definition of interoperability to mean "connect with previously written code in the same executable image."&amp;nbsp; In other words, merging distinct code bases.&amp;nbsp; This is a case where just linking up to a shared library can work, but sometimes seeing the code allows some better opportunity.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;But this limited definition of interoperability is definitely not the mainstream one that companies and organizations are dealing with today.&amp;nbsp; They want to connect large lego blocks together: Connect System A&amp;nbsp; and System B together in a business process flow that makes sense, and which may evolve over time.&amp;nbsp;&amp;nbsp;Large-grained interop.&amp;nbsp; This is not merging two distinct code bases together.&amp;nbsp;&amp;nbsp;Oftentimes the "code base" is not available - it is a pre-packed app.&amp;nbsp; Maybe it is Oracle, or maybe it is a Salesforce.com app.&amp;nbsp; Maybe the other end is a Sharepoint Portal, or a Medical Records management system from Lawson.&amp;nbsp; These might be called system-to-system interop or app-to-app interop if you like, where network protocols are the thing, not compile-time-constants.&amp;nbsp; Data interfaces, not code classes or interfaces. &lt;/P&gt;
&lt;P&gt;In that situation, which I am arguing is THE mainstream challenge that architects and devs confront when they use the word "interop", looking at &amp;nbsp;source code is not helpful, and I won't hesitate to argue, I think it would be &lt;EM&gt;counterproductive&lt;/EM&gt;.&amp;nbsp;&amp;nbsp; Yeah, you read me right - it actually is &lt;U&gt;harmful &lt;/U&gt;to look at the code if you want to connect two big apps together. &lt;/P&gt;
&lt;P&gt;What is necessary to enable interop in these cases is &lt;STRONG&gt;PROTOCOLS&lt;/STRONG&gt;, people.&amp;nbsp; Standard protocols would be nice to have, but don't misunderstand - &lt;EM&gt;standardized protocols are not a requirement for interop&lt;/EM&gt;.&amp;nbsp; The requirement is for PUBLISHED protocols, not necessarily standard ones.&amp;nbsp; PUBLISHED NETWORK PROTOCOLS ALLOW INTEROP.&amp;nbsp; This is why a Java or .NET app can connect to an IBM transaction processing system, even though the on-the-wire protocols are completely closed and proprietary to IBM.&amp;nbsp; The protocols are &lt;EM&gt;documented&lt;/EM&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; They are closed yet published.&amp;nbsp; And because IBM's DTP protocols are published (not publicly per se, but published to those who license the protocols), anyone can implement the client-side of the exchange. &lt;/P&gt;
&lt;P&gt;The same goes true for, say, Microsoft SQL Server. There is an on-the-wire protocol known as TDS, also known as &lt;A class="" href="http://msdn.microsoft.com/en-US/library/ms191220.aspx" mce_href="http://msdn.microsoft.com/en-US/library/ms191220.aspx"&gt;tabular data stream&lt;/A&gt;.&amp;nbsp; Microsoft publishes TDS under license to partners, but I believe some have reverse-engineered it.&amp;nbsp; The fact that the protocol is constant and published means that, for example, DataDirect can build an OLEDB driver or a type-4 JDBC driver&amp;nbsp;for SQL Server.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;It's the Protocols, Silly! &lt;/P&gt;
&lt;P&gt;Standardized protocols are nice to have because the standard, if it is based on freely-available IP (or at the very least, IP available under &lt;A class="" href="http://en.wikipedia.org/wiki/Reasonable_and_Non_Discriminatory_Licensing" mce_href="http://en.wikipedia.org/wiki/Reasonable_and_Non_Discriminatory_Licensing"&gt;RAND&lt;/A&gt; terms), encourages wider adoption and thus the virtuous cycle inherent in &lt;A class="" href="http://en.wikipedia.org/wiki/Metcalfe%27s_law" mce_href="http://en.wikipedia.org/wiki/Metcalfe%27s_law"&gt;Metcalfe's Law&lt;/A&gt;.&amp;nbsp; Standardized protocols are essential if you want &lt;EM&gt;broad &lt;/EM&gt;interoperability, which of course is really important, and is what most of us are after anyway.&amp;nbsp; Above I said that standards are not required, and I stand by that statement.&amp;nbsp; But practically speaking, standards are almost a &lt;EM&gt;&lt;A class="" href="http://encarta.msn.com/dictionary_/sine-qua-non.html" mce_href="http://encarta.msn.com/dictionary_/sine-qua-non.html"&gt;sine-qua-non&lt;/A&gt; &lt;/EM&gt;of meaningful interop.&amp;nbsp; &amp;nbsp; &lt;/P&gt;
&lt;P&gt;Web Services and XML are just common protocols, and their widespread adoption (owing in large part to the fact that they are standards) is the true source of their value to companies and organizations (again see &lt;A class="" href="http://en.wikipedia.org/wiki/Metcalfe%27s_law" mce_href="http://en.wikipedia.org/wiki/Metcalfe%27s_law"&gt;Metcalfe's Law&lt;/A&gt;).&amp;nbsp; It is not required that web service endpoints, either client or server, be implemented with an open-source web services stack, in order to get good interoperability.&amp;nbsp; Instead it is essential that the endpoints conform to the standard protocol definitions.&amp;nbsp; And the corollary is, the protocol definitions must be sufficiently clear, complete, relatively simple to implement, and relatively simple to test, such that faithful implementations of the protocols can eb validated easily and will interconnect transparently.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is why .NET WCF clients can easily interconnect with Web Services enpoints running under IBM WebSphere App Server, though neither the .NET Framework nor the WebSphere web services libraries are open source.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Open Source Is Not Interoperability.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8611070" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Websphere/default.aspx">Websphere</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Web+Service/default.aspx">Web Service</category></item><item><title>Java Exchange Connector and EWSJ</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/06/17/java-exchange-connector.aspx</link><pubDate>Tue, 17 Jun 2008 17:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8610716</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8610716.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8610716</wfw:commentRss><description>&lt;P&gt;Just saw this on &lt;A href="http://www.theserverside.com/" mce_href="http://www.theserverside.com"&gt;TheServerSide.com&lt;/A&gt;.&amp;nbsp; The &lt;A href="http://www.theserverside.com/news/thread.tss?thread_id=49634" mce_href="http://www.theserverside.com/news/thread.tss?thread_id=49634"&gt;Exchange Web Services for Java&lt;/A&gt; (EWSJ - what happened to the 4?).&amp;nbsp; It's a Java class library that &lt;STRIKE&gt;uses the Apache AXIS web services stack to connect&lt;/STRIKE&gt; connects to Microsoft Exchange Server 2007, via the published and supported &lt;A href="http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx"&gt;Exchange Web Services&lt;/A&gt; interfaces.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;What you can do with this is connect to Exchange 2007 from any Java app.&amp;nbsp; A good example is when building an HR or group scheduling app, in Java.&amp;nbsp; (While I love .NET, not everyone has seen the light! and some poor&amp;nbsp;developers are relegated to using Java even for new applications.) &amp;nbsp; In the scenario where you write in Java and the enterprise messaging standard is Exchange, the&amp;nbsp;EWSJ library may come in handy. &lt;/P&gt;
&lt;P&gt;There's a&amp;nbsp;beta of the Exchange Web Services for Java out now; it looks like the company updates the beta fairly regularly. They mention a free academic license, so I guess they will be licensing EWSJ for a fee for other purposes.&lt;/P&gt;
&lt;P&gt;The company also has something called the JEC, which I guess is the &lt;A href="http://www.javaexchangeconnector.com/" mce_href="http://www.javaexchangeconnector.com/ "&gt;Java Exchange Connector&lt;/A&gt;.&amp;nbsp; I don't understand the difference between EWSJ and JEC.&amp;nbsp;&amp;nbsp;Based on reading, I'm guessing they do the same thing - provide access for Java apps into the Exchange store - but &amp;nbsp;I think the JEC is based on the older WebDAV interface into Exchange, and EWSJ uses the web services interfaces.&amp;nbsp; &lt;STRIKE&gt;Just a guess... I don't know.&amp;nbsp; Maybe someone can enlighten me.&lt;/STRIKE&gt; &lt;SPAN style="COLOR: red"&gt;&lt;EM&gt;Confirmed: JEC uses WebDav and EWSJ uses EWS.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This EWSJ works with the Web services interfaces supported by Exchange 2007.&amp;nbsp; By the way, those are the same web services interfaces I use from a Windows Forms app running in .NET, and the same interfaces I use from a Windows Mobile app running on my smartphone. &lt;/P&gt;
&lt;P&gt;It brings up an interesting question - why pay for EWSJ - or any third-party library that wraps web services interfaces - when the webservices interfaces are public and free-of-charge?&amp;nbsp; I mean, if you have the WSDL and XML Schema, and you have access to good Web services tooling (Apache AXIS for Java, WCF in .NET), then&amp;nbsp;you could just build (generate) the client-side proxies and classes and&amp;nbsp; get connected, right?&amp;nbsp; But, there's an opportunity to add in value to the interface - like caching of content, caching of credentials, simplifying the interface, integrating with other frameworks, and so on.&amp;nbsp; The approach I took with my .NET work was to use the tools and published interfaces. But I can see value in depending on a third party library that adds some additional capability. I don't know much about EWSJ, so I don't know what's been added, but I see the opportunity for the company to deliver something interesting there.&lt;/P&gt;
&lt;P&gt;By the way, I have also previously demonstrated the use of WebDAV interfaces to get to Exchange Server from Java, prior to version 2007, as the JEC does it.&amp;nbsp; You can get from a JSP to Exchange 2003 for example, using WebDAV.&amp;nbsp; The way I did it was, like the JEC approach, to depend on the Apache libraries. In my case,&amp;nbsp;just as with the JEC, I used the now-retired&amp;nbsp;&lt;A href="http://jakarta.apache.org/slide/" mce_href="http://jakarta.apache.org/slide/"&gt;Jakarta Slide&lt;/A&gt; library and the httpclient from the commons package.&amp;nbsp;I can publish this source code if you like.&amp;nbsp;(But if you are running Exchange 2003, you really should upgrade. E2007 is much much better, and the web services interface is just one aspect.)&lt;/P&gt;
&lt;P&gt;I was surprised to see that&amp;nbsp;Jakarta Slide has been retired! Apparently it didn't attract enough developers.&amp;nbsp;But it looks like there is a new WebDAV implementation in the &lt;A href="http://jackrabbit.apache.org/" mce_href="http://jackrabbit.apache.org/"&gt;Apache Jackrabbit&lt;/A&gt; project.&amp;nbsp; I guess this is a challenge facing all open-source projects. With so much attention focused on AJAX and pretty web interfaces, internetworking protocols like WebDAV take a back seat.&amp;nbsp; Good to see WebDAV is not totally dead at Apache.&lt;/P&gt;
&lt;P&gt;EWSJ looks like one more interesting interop opportunity. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8610716" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Exchange/default.aspx">Exchange</category></item><item><title>DotNetZip, open source library for .ZIP files, revs to v1.4</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/05/30/dotnetzip-open-source-library-for-zip-files-revs-to-v1-4.aspx</link><pubDate>Fri, 30 May 2008 18:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8563441</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8563441.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8563441</wfw:commentRss><description>I have updated DotNetZip, the open source Zip Library for .NET, to v1.4.&amp;nbsp; 
&lt;P&gt;Find it at &lt;A href="http://www.codeplex.com/DotNetZip"&gt;&lt;FONT color=#666666&gt;http://www.codeplex.com/DotNetZip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;. &lt;/P&gt;
&lt;P&gt;New features!!&amp;nbsp; password support is here!&amp;nbsp; Whoohoo!!&amp;nbsp; This is PKzip (weak) encryption.&amp;nbsp; Another new feature:&amp;nbsp; you can now add entries into zips using content from streams.&amp;nbsp; There are clearer exceptions generated in the case of errors.&amp;nbsp;Beyond new features, there are a bunch of other improvements and fixes to the library, too. For example, the internal handling of zip files now uses streams for more&amp;nbsp;optimal memory usage.&amp;nbsp; As another example, there is&amp;nbsp;now a large set of unit tests that ships with the library.&amp;nbsp;As a result, reliability is significantly higher than in v1.3.&amp;nbsp; Finally, the Zip utilities have been updated for better command-line parsing, more options and flexibility.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;That's the v1.4 library, which is released and final.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For v1.5, I'll be focusing on Update capability - the ability to update an entry in an existing zip archive with new content, as well as the ability to Remove entries in existing zip archives. There's a preview of the v1.5 library already available on&amp;nbsp; &lt;A href="http://www.codeplex.com/DotNetZip"&gt;&lt;FONT color=#666666&gt;http://www.codeplex.com/DotNetZip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;. &lt;/P&gt;
&lt;P&gt;If you want some background on the Zip Library, check out &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/tags/Zip/default.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/tags/Zip/default.aspx"&gt;&lt;FONT color=#666666&gt;my prior posts on this topic&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; Just for your information, DotNetZip is licensed under the Microsoft Public License, which basically&amp;nbsp;means you can use it free of charge, for any purpose,&amp;nbsp;but there's no warranty.&amp;nbsp; Check the full terms of the license on &lt;A class="" href="http://www.codeplex.com/DotNetZip/license" mce_href="http://www.codeplex.com/DotNetZip/license"&gt;the CodePlex site&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;As always if you have questions on usage, check the CodePlex forums.&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8563441" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Zip/default.aspx">Zip</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>Whatever happened to WSRP?  (psst: I'll give you a hint, it rhymes with BEST, and you can do it on a mattress)</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/04/03/whatever-happened-to-wsrp.aspx</link><pubDate>Thu, 03 Apr 2008 21:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8349859</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/8349859.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=8349859</wfw:commentRss><description>&lt;P&gt;Remember when the Java vendors used to advocate &lt;A class="" href="http://www.jroller.com/portletfaqs/category/WSRP" mce_href="http://www.jroller.com/portletfaqs/category/WSRP"&gt;WSRP&lt;/A&gt; as a way to accomplish &lt;EM&gt;Interop&lt;/EM&gt;? &lt;/P&gt;
&lt;P&gt;I never thought much of WSRP as a tool for implementing interop, and &lt;A class="" href="http://blogs.msdn.com/dotnetinterop/archive/2005/06/10/on-wsrp.aspx" mce_href="http://blogs.msdn.com/dotnetinterop/archive/2005/06/10/on-wsrp.aspx"&gt;I went on the record with that&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Web services (without the RP add-on), and REST are what people are using for interop, and that &lt;EM&gt;really makes sense to me&lt;/EM&gt;. I love it when I'm right. :)&lt;/P&gt;
&lt;P&gt;PS: the &lt;A class="" href="http://www.oasis-open.org/committees/download.php/9146/wsrp-faq-1.0-draft-0.20.doc" mce_href="http://www.oasis-open.org/committees/download.php/9146/wsrp-faq-1.0-draft-0.20.doc"&gt;WSRP FAQ on the OASIS website&lt;/A&gt; was last updated in 2004.&amp;nbsp; *Yawn*. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8349859" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/History/default.aspx">History</category></item></channel></rss>