<?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 : Exchange</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/Exchange/default.aspx</link><description>Tags: Exchange</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><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>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></channel></rss>