Thanks Wolfgang...this approach worked well. We created a new XSD from the
XML generated, but we had to do some preprocessing to remove some of the
node elements that couldn't be unmarshalled to have it work completely.
Lou
Wolfgang Laun-2 wrote:
>
> You just define an XML Schema describing the content of what comes
> in place of the <xs:any>, or annotate Java classes accordingly.
> Create a JAXB context from either, and unmarshal with an
> Unmarshaller derived from this context, passing it the
> org.w3c.dom.Node that you should find at the place where the
> top-level XML Schema has the <xs:any>.
>
> I've done this - so if this isn't clear enough, let me know, and I'll
> detail it some more.
> -W
>
> On Wed, Sep 9, 2009 at 7:57 AM, lsacco <occasl_at_gmail.com> wrote:
>
>>
>> Agreed, but I'm beholden to what has been provided by Microsoft which is
>> the
>> <s:any/>. The question is how to unmarshall that for Java to use.
>>
>> After digging into the response object, there is way to do this but it
>> isn't
>> pretty. Basically, all you have is a DOM Element that you can parse with
>> XPath to pull the results you want. It looks like this is what I'll have
>> to
>> do in this case since I can't really define the XMLSchema with something
>> more descriptive.
>>
>> Lou
>>
>>
>> Wolfgang Laun-2 wrote:
>> >
>> > Beg your pardon, but no, it does not. <s:any/> is just saying,
>> "anything
>> > goes, but I'm not telling what".
>> > -W
>> >
>> >
>> > On Tue, Sep 8, 2009 at 9:39 PM, lsacco <occasl_at_gmail.com> wrote:
>> >
>> >>
>> >> No, it does. Here's a sampling:
>> >>
>> >> <wsdl:types>
>> >> <s:schema elementFormDefault="qualified"
>> >> targetNamespace="http://schemas.microsoft.com/sharepoint/soap/">
>> >> <s:import namespace="http://www.w3.org/2001/XMLSchema" />
>> >> <s:import namespace="http://microsoft.com/wsdl/types/" />
>> >> <s:element name="GetList">
>> >> <s:complexType>
>> >> <s:sequence>
>> >> <s:element minOccurs="0" maxOccurs="1" name="listName"
>> >> type="s:string" />
>> >> </s:sequence>
>> >> </s:complexType>
>> >> </s:element>
>> >> <s:element name="GetListResponse">
>> >> <s:complexType>
>> >> <s:sequence>
>> >> <s:element minOccurs="0" maxOccurs="1"
>> name="GetListResult">
>> >> <s:complexType mixed="true">
>> >> <s:sequence>
>> >> <s:any />
>> >> </s:sequence>
>> >> </s:complexType>
>> >> </s:element>
>> >> </s:sequence>
>> >> </s:complexType>
>> >> </s:element>
>> >>
>> >>
>> >>
>> >> Wolfgang Laun-2 wrote:
>> >> >
>> >> > It seems to me that the wsdl XML which should contain an XML schema
>> >> > precisely describing the contents of <List> fails to do just that.
>> >> > -W
>> >> >
>> >> > On Wed, Sep 2, 2009 at 9:20 PM, lsacco <occasl_at_gmail.com> wrote:
>> >> >
>> >> >>
>> >> >> We would like to connect a Java Web services CXF client to the
>> >> SharePoint
>> >> >> List service. After overcoming the NTLM issue, we see that the
>> >> response
>> >> >> is
>> >> >> not being properly unmarshalled by the client (it returns null).
>> We
>> >> used
>> >> >> the Maven cxf-codegen-plugin wsdl2java to create the client stub
>> >> classes
>> >> >> that would represent the results but we get back NULL every time.
>> >> >>
>> >> >> Here's the code to make the call and return the result (this all
>> works
>> >> >> except for the return value is an empty list):
>> >> >>
>> >> >> public static GetListCollectionResult
>> >> >> getListCollection(NTLMAuthenticator
>> >> >> auth, String endPoint) {
>> >> >> Lists lists = new Lists();
>> >> >> ListsSoap stub = lists.getListsSoap();
>> >> >>
>> >> >> BindingProvider bindProvider = (BindingProvider)
>> stub;
>> >> >> bindProvider.getRequestContext().put(
>> >> >>
>> >> BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
>> >> >> endPoint);
>> >> >> Authenticator.setDefault(auth);
>> >> >> setConduit(stub);
>> >> >> return stub.getListCollection();
>> >> >> }
>> >> >>
>> >> >> Here is the sample output that repeats the List element that we can
>> >> >> retrieve
>> >> >> using C#:
>> >> >>
>> >> >> <Lists xmlns="http://schemas.microsoft.com/sharepoint/soap/">
>> >> >> <List DocTemplateUrl="" DefaultViewUrl="/Lists/Audited Root
>> >> Task
>> >> >> List/AllItems.aspx"
>> >> >> MobileDefaultViewUrl=""
>> >> >> ID="{AAAABEE6-CSDD-4C70-8AD0-567372066760}"
>> >> >> Title="Audited Root Task List" Description=""
>> >> >> ImageUrl="/_layouts/images/ittask.gif"
>> >> >> Name="{AAAABEE6-CSDD-4C70-8AD0-567372066760}"
>> >> >> BaseType="0"
>> >> >> FeatureId="00bfea71-a83e-497e-9ba0-7a5c597d0107"
>> >> >> ServerTemplate="107" Created="20090805 06:31:27"
>> >> >> Modified="20090818
>> >> >> 06:09:13"
>> >> >> LastDeleted="20090805 07:23:22" Version="35"
>> >> >> Direction="none"
>> >> >> ThumbnailSize="" WebImageWidth="" WebImageHeight=""
>> >> >> Flags="549457920"
>> >> >> ItemCount="5" AnonymousPermMask="0" RootFolder=""
>> >> >> ReadSecurity="1"
>> >> >> WriteSecurity="1" Author="55" EventSinkAssembly=""
>> >> >> EventSinkClass=""
>> >> >> EventSinkData="" EmailInsertsFolder="" EmailAlias=""
>> >> >> WebFullUrl="/"
>> >> >> WebId="2bdcc5a2-563f-477c-b6d9-cf26c0067b36"
>> >> >> SendToLocation=""
>> >> >> ScopeId="ca78103c-95d7-4ffd-8cf1-77eb3b9a37ae"
>> >> >> MajorVersionLimit="0"
>> >> >> MajorWithMinorVersionsLimit="0" WorkFlowId=""
>> >> >> HasUniqueScopes="False"
>> >> >> AllowDeletion="True" AllowMultiResponses="False"
>> >> >> EnableAttachments="True"
>> >> >> EnableModeration="False" EnableVersioning="False"
>> >> >> Hidden="False"
>> >> >> MultipleDataList="False" Ordered="False"
>> >> ShowUser="True"
>> >> >> EnableMinorVersion="False" RequireCheckout="False"
>> />
>> >> >> ...
>> >> >>
>> >> >> Here is the generated wsdl2java class for JAXB binding of the
>> >> response:
>> >> >>
>> >> >> @XmlAccessorType(XmlAccessType.FIELD)
>> >> >> @XmlType(name = "", propOrder = {
>> >> >> "getListCollectionResult"
>> >> >> })
>> >> >> @XmlRootElement(name = "GetListCollectionResponse")
>> >> >> public class GetListCollectionResponse {
>> >> >>
>> >> >> @XmlElement(name = "GetListCollectionResult")
>> >> >> protected GetListCollectionResponse.GetListCollectionResult
>> >> >> getListCollectionResult;
>> >> >>
>> >> >> public GetListCollectionResponse.GetListCollectionResult
>> >> >> getGetListCollectionResult() {
>> >> >> return getListCollectionResult;
>> >> >> }
>> >> >>
>> >> >> public void
>> >> >>
>> >> >>
>> >>
>> setGetListCollectionResult(GetListCollectionResponse.GetListCollectionResult
>> >> >> value) {
>> >> >> this.getListCollectionResult = value;
>> >> >> }
>> >> >>
>> >> >> @XmlAccessorType(XmlAccessType.FIELD)
>> >> >> @XmlType(name = "", propOrder = {
>> >> >> "content"
>> >> >> })
>> >> >> public static class GetListCollectionResult {
>> >> >>
>> >> >> @XmlMixed
>> >> >> @XmlAnyElement(lax = true)
>> >> >> protected List content;
>> >> >>
>> >> >> public List getContent() {
>> >> >> if (content == null) {
>> >> >> content = new ArrayList();
>> >> >> }
>> >> >> return this.content;
>> >> >> }
>> >> >> }
>> >> >> }
>> >> >>
>> >> >> Any ideas on how to bind the CAML formatted output from the SP Web
>> >> >> service
>> >> >> so the response can be unmarshalled properly by JAXB?
>> >> >>
>> >> >> TIA!
>> >> >> Lou
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >>
>> http://www.nabble.com/How-to-consume-CAML-Formatted-Response-with-JAXB--tp25264026p25264026.html
>> >> >> Sent from the java.net - jaxb users mailing list archive at
>> >> Nabble.com.
>> >> >>
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> >> >> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/How-to-consume-CAML-Formatted-Response-with-JAXB--tp25264026p25352704.html
>> >> Sent from the java.net - jaxb users mailing list archive at
>> Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> >> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-to-consume-CAML-Formatted-Response-with-JAXB--tp25264026p25359022.html
>> Sent from the java.net - jaxb users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>
>>
>
>
--
View this message in context: http://www.nabble.com/How-to-consume-CAML-Formatted-Response-with-JAXB--tp25264026p25394280.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.