WSD2JS Not Creating Schema Objects

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 | Next >

WSD2JS Not Creating Schema Objects

by teleplayer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

First of all I must state that I am new to javascript, so please bear with me.  After defining the WSDL and successfully testing the service with a Java client, I'm in the process of attempting to hit the services with a javascript client.  The WSDL2JS tool generates the service proxy objects, but never generates the associated schema objects.  I have validation turned on and everything seems to be okay.  Is there something that I'm missing in using the tool?  Any assistance would be greatly appreciated.  Thanks -

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Could you possibly post a JIRA with your WSDL? This is presumably a bug; it
generally generates them.

On Thu, Oct 15, 2009 at 2:45 PM, teleplayer <kenneth.venator@...>wrote:

>
> First of all I must state that I am new to javascript, so please bear with
> me.  After defining the WSDL and successfully testing the service with a
> Java client, I'm in the process of attempting to hit the services with a
> javascript client.  The WSDL2JS tool generates the service proxy objects,
> but never generates the associated schema objects.  I have validation
> turned
> on and everything seems to be okay.  Is there something that I'm missing in
> using the tool?  Any assistance would be greatly appreciated.  Thanks -
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25913919.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by teleplayer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sure, I'd be happy to if you can tell me what a JIRA is...

bimargulies wrote:
Could you possibly post a JIRA with your WSDL? This is presumably a bug; it
generally generates them.

On Thu, Oct 15, 2009 at 2:45 PM, teleplayer <kenneth.venator@rightnow.com>wrote:

>
> First of all I must state that I am new to javascript, so please bear with
> me.  After defining the WSDL and successfully testing the service with a
> Java client, I'm in the process of attempting to hit the services with a
> javascript client.  The WSDL2JS tool generates the service proxy objects,
> but never generates the associated schema objects.  I have validation
> turned
> on and everything seems to be okay.  Is there something that I'm missing in
> using the tool?  Any assistance would be greatly appreciated.  Thanks -
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25913919.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

https://issues.apache.org/jira/browse/CXF


On Thu, Oct 15, 2009 at 3:18 PM, teleplayer <kenneth.venator@...>wrote:

>
> Sure, I'd be happy to if you can tell me what a JIRA is...
>
>
> bimargulies wrote:
> >
> > Could you possibly post a JIRA with your WSDL? This is presumably a bug;
> > it
> > generally generates them.
> >
> > On Thu, Oct 15, 2009 at 2:45 PM, teleplayer
> > <kenneth.venator@...>wrote:
> >
> >>
> >> First of all I must state that I am new to javascript, so please bear
> >> with
> >> me.  After defining the WSDL and successfully testing the service with a
> >> Java client, I'm in the process of attempting to hit the services with a
> >> javascript client.  The WSDL2JS tool generates the service proxy
> objects,
> >> but never generates the associated schema objects.  I have validation
> >> turned
> >> on and everything seems to be okay.  Is there something that I'm missing
> >> in
> >> using the tool?  Any assistance would be greatly appreciated.  Thanks -
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25913919.html
> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25914421.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This sounds a lot like the problem I had (see post "Please help - wsdl2js - generated schema code/types missing from output.js?"), please post back with any findings :)

bimargulies wrote:
https://issues.apache.org/jira/browse/CXF


On Thu, Oct 15, 2009 at 3:18 PM, teleplayer <kenneth.venator@rightnow.com>wrote:

>
> Sure, I'd be happy to if you can tell me what a JIRA is...
>
>
> bimargulies wrote:
> >
> > Could you possibly post a JIRA with your WSDL? This is presumably a bug;
> > it
> > generally generates them.
> >
> > On Thu, Oct 15, 2009 at 2:45 PM, teleplayer
> > <kenneth.venator@rightnow.com>wrote:
> >
> >>
> >> First of all I must state that I am new to javascript, so please bear
> >> with
> >> me.  After defining the WSDL and successfully testing the service with a
> >> Java client, I'm in the process of attempting to hit the services with a
> >> javascript client.  The WSDL2JS tool generates the service proxy
> objects,
> >> but never generates the associated schema objects.  I have validation
> >> turned
> >> on and everything seems to be okay.  Is there something that I'm missing
> >> in
> >> using the tool?  Any assistance would be greatly appreciated.  Thanks -
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25913919.html
> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25914421.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've made a fix to the top-level problem to trunk. Try the next snapshot.

On Thu, Oct 15, 2009 at 7:51 PM, noosy
<vanessa.towers@...>wrote:

>
> This sounds a lot like the problem I had (see post "Please help - wsdl2js -
> generated schema code/types missing from output.js?"), please post back
> with
> any findings :)
>
>
> bimargulies wrote:
> >
> > https://issues.apache.org/jira/browse/CXF
> >
> >
> > On Thu, Oct 15, 2009 at 3:18 PM, teleplayer
> > <kenneth.venator@...>wrote:
> >
> >>
> >> Sure, I'd be happy to if you can tell me what a JIRA is...
> >>
> >>
> >> bimargulies wrote:
> >> >
> >> > Could you possibly post a JIRA with your WSDL? This is presumably a
> >> bug;
> >> > it
> >> > generally generates them.
> >> >
> >> > On Thu, Oct 15, 2009 at 2:45 PM, teleplayer
> >> > <kenneth.venator@...>wrote:
> >> >
> >> >>
> >> >> First of all I must state that I am new to javascript, so please bear
> >> >> with
> >> >> me.  After defining the WSDL and successfully testing the service
> with
> >> a
> >> >> Java client, I'm in the process of attempting to hit the services
> with
> >> a
> >> >> javascript client.  The WSDL2JS tool generates the service proxy
> >> objects,
> >> >> but never generates the associated schema objects.  I have validation
> >> >> turned
> >> >> on and everything seems to be okay.  Is there something that I'm
> >> missing
> >> >> in
> >> >> using the tool?  Any assistance would be greatly appreciated.  Thanks
> >> -
> >> >> --
> >> >> View this message in context:
> >> >>
> >>
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25913919.html
> >> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25914421.html
> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25917836.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Awesome, I got the latest snapshot and the missing code has been generated :)

However... I tried to call a simple WS operation, I can see that I am getting the SOAP envelope back containing the result but my generated js function ns_getResult_op_onsuccess(client, responseXml)
is letting me down. I will try and describe the problem as best I can.

In FireBug, the POST Response looks like this:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
        <java:getResultResponse xmlns:java="java:blah">
            <java:result>myResult</java:result>
        </java:getResultResponse>
    </env:Body>
</env:Envelope>

Within the method below, I will show you what I see in Firebug as comments for each line..

ns_getResult_op_onsuccess(client, responseXml)
{
    if(client.user_onsuccess)
    {
        var responseObject = null;
        var element = responseXml.documentElement;  // element = envelope
        this.jsutils.trace('responseXml: ' + this.jsutils.traceElementName(element));
        element = this.jsutils.getFirstElementChild(element); // element = header
        this.jsutils.trace('first element child: ' + this.jsutils.traceElementName(element));
        element = this.jsutils.getFirstElementChild(element);  // element = null
        this.jsutils.trace('part element: ' + this.jsutils.traceElementName(element)); // element = null
        this.jsutils.trace('calling blah_getResultResponse_deserializeResponse');
        responseObject = blah_getResultResponse_deserializeResponse(this.jsutils, element);
        client.user_onsuccess(responseObject);
    }
}

So the problem is arising where element = null.

When I look at the documentElement in FireBug it looks like this:

documentElement: envelope
  childElementCount: 2
  children: header, body
    0: header
      childElementCount: 0
    1: body
      childElementCount: 1
      children: getresultresponse
        0: getresultresponse
          childElementCount: 1
          children: result
            0: result
              textContent: myResult

Is the problem my XML (I'm using a third party WSDL so I can't change it) or is this a problem with the generated wsdl2js code that parses the responseXML?

BTW I greatly appreciate your help so far!


bimargulies wrote:
I've made a fix to the top-level problem to trunk. Try the next snapshot.

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I will try to make sense of this tonight. However, I am likelier to be much
more helpful much faster if you can either construct a test case you can
share or at least share the XML Schema fragments relevant to this problem.
This kind of problem boils down to having generated Javascript that is not
on the same page as the XML Schema (assuming that your service corresponds
to its schema correctly).

On Wed, Oct 21, 2009 at 3:49 AM, noosy
<vanessa.towers@...>wrote:

>
> Awesome, I got the latest snapshot and the missing code has been generated
> :)
>
> However... I tried to call a simple WS operation, I can see that I am
> getting the SOAP envelope back containing the result but my generated js
> function ns_getResult_op_onsuccess(client, responseXml)
> is letting me down. I will try and describe the problem as best I can.
>
> In FireBug, the POST Response looks like this:
>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>    <env:Header/>
>    <env:Body>
>        <java:getResultResponse xmlns:java="java:blah">
>            <java:result>myResult</java:result>
>        </java:getResultResponse>
>    </env:Body>
> </env:Envelope>
>
> Within the method below, I will show you what I see in Firebug as comments
> for each line..
>
> ns_getResult_op_onsuccess(client, responseXml)
> {
>    if(client.user_onsuccess)
>    {
>        var responseObject = null;
>        var element = responseXml.documentElement;  // element = envelope
>        this.jsutils.trace('responseXml: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element); // element =
> header
>        this.jsutils.trace('first element child: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element);  // element =
> null
>        this.jsutils.trace('part element: ' +
> this.jsutils.traceElementName(element)); // element = null
>        this.jsutils.trace('calling
> blah_getResultResponse_deserializeResponse');
>        responseObject =
> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>        client.user_onsuccess(responseObject);
>    }
> }
>
> So the problem is arising where element = null.
>
> When I look at the documentElement in FireBug it looks like this:
>
> documentElement: envelope
>  childElementCount: 2
>  children: header, body
>    0: header
>      childElementCount: 0
>    1: body
>      childElementCount: 1
>      children: getresultresponse
>        0: getresultresponse
>          childElementCount: 1
>          children: result
>            0: result
>              textContent: myResult
>
> Is the problem my XML (I'm using a third party WSDL so I can't change it)
> or
> is this a problem with the generated wsdl2js code that parses the
> responseXML?
>
> BTW I greatly appreciate your help so far!
>
>
>
> bimargulies wrote:
> >
> > I've made a fix to the top-level problem to trunk. Try the next snapshot.
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Can you give me more of the shape of your API? That 'null' suggests that the
Javascript generator has lost track of something. What is the java type of
the response? How is it related to the types that were missing before?

On Wed, Oct 21, 2009 at 3:49 AM, noosy
<vanessa.towers@...>wrote:

>
> Awesome, I got the latest snapshot and the missing code has been generated
> :)
>
> However... I tried to call a simple WS operation, I can see that I am
> getting the SOAP envelope back containing the result but my generated js
> function ns_getResult_op_onsuccess(client, responseXml)
> is letting me down. I will try and describe the problem as best I can.
>
> In FireBug, the POST Response looks like this:
>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>    <env:Header/>
>    <env:Body>
>        <java:getResultResponse xmlns:java="java:blah">
>            <java:result>myResult</java:result>
>        </java:getResultResponse>
>    </env:Body>
> </env:Envelope>
>
> Within the method below, I will show you what I see in Firebug as comments
> for each line..
>
> ns_getResult_op_onsuccess(client, responseXml)
> {
>    if(client.user_onsuccess)
>    {
>        var responseObject = null;
>        var element = responseXml.documentElement;  // element = envelope
>        this.jsutils.trace('responseXml: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element); // element =
> header
>        this.jsutils.trace('first element child: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element);  // element =
> null
>        this.jsutils.trace('part element: ' +
> this.jsutils.traceElementName(element)); // element = null
>        this.jsutils.trace('calling
> blah_getResultResponse_deserializeResponse');
>        responseObject =
> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>        client.user_onsuccess(responseObject);
>    }
> }
>
> So the problem is arising where element = null.
>
> When I look at the documentElement in FireBug it looks like this:
>
> documentElement: envelope
>  childElementCount: 2
>  children: header, body
>    0: header
>      childElementCount: 0
>    1: body
>      childElementCount: 1
>      children: getresultresponse
>        0: getresultresponse
>          childElementCount: 1
>          children: result
>            0: result
>              textContent: myResult
>
> Is the problem my XML (I'm using a third party WSDL so I can't change it)
> or
> is this a problem with the generated wsdl2js code that parses the
> responseXML?
>
> BTW I greatly appreciate your help so far!
>
>
>
> bimargulies wrote:
> >
> > I've made a fix to the top-level problem to trunk. Try the next snapshot.
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OH!

The problem is that the javascript code is completely unprepared to deal
with a Header. Even an empty one.

I'll open a JIRA and see what I can do.


On Wed, Oct 21, 2009 at 3:49 AM, noosy
<vanessa.towers@...>wrote:

>
> Awesome, I got the latest snapshot and the missing code has been generated
> :)
>
> However... I tried to call a simple WS operation, I can see that I am
> getting the SOAP envelope back containing the result but my generated js
> function ns_getResult_op_onsuccess(client, responseXml)
> is letting me down. I will try and describe the problem as best I can.
>
> In FireBug, the POST Response looks like this:
>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>    <env:Header/>
>    <env:Body>
>        <java:getResultResponse xmlns:java="java:blah">
>            <java:result>myResult</java:result>
>        </java:getResultResponse>
>    </env:Body>
> </env:Envelope>
>
> Within the method below, I will show you what I see in Firebug as comments
> for each line..
>
> ns_getResult_op_onsuccess(client, responseXml)
> {
>    if(client.user_onsuccess)
>    {
>        var responseObject = null;
>        var element = responseXml.documentElement;  // element = envelope
>        this.jsutils.trace('responseXml: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element); // element =
> header
>        this.jsutils.trace('first element child: ' +
> this.jsutils.traceElementName(element));
>        element = this.jsutils.getFirstElementChild(element);  // element =
> null
>        this.jsutils.trace('part element: ' +
> this.jsutils.traceElementName(element)); // element = null
>        this.jsutils.trace('calling
> blah_getResultResponse_deserializeResponse');
>        responseObject =
> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>        client.user_onsuccess(responseObject);
>    }
> }
>
> So the problem is arising where element = null.
>
> When I look at the documentElement in FireBug it looks like this:
>
> documentElement: envelope
>  childElementCount: 2
>  children: header, body
>    0: header
>      childElementCount: 0
>    1: body
>      childElementCount: 1
>      children: getresultresponse
>        0: getresultresponse
>          childElementCount: 1
>          children: result
>            0: result
>              textContent: myResult
>
> Is the problem my XML (I'm using a third party WSDL so I can't change it)
> or
> is this a problem with the generated wsdl2js code that parses the
> responseXML?
>
> BTW I greatly appreciate your help so far!
>
>
>
> bimargulies wrote:
> >
> > I've made a fix to the top-level problem to trunk. Try the next snapshot.
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another snapshot.

On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies <bimargulies@...>wrote:

> I will try to make sense of this tonight. However, I am likelier to be much
> more helpful much faster if you can either construct a test case you can
> share or at least share the XML Schema fragments relevant to this problem.
> This kind of problem boils down to having generated Javascript that is not
> on the same page as the XML Schema (assuming that your service corresponds
> to its schema correctly).
>
>
> On Wed, Oct 21, 2009 at 3:49 AM, noosy <vanessa.towers@...
> > wrote:
>
>>
>> Awesome, I got the latest snapshot and the missing code has been generated
>> :)
>>
>> However... I tried to call a simple WS operation, I can see that I am
>> getting the SOAP envelope back containing the result but my generated js
>> function ns_getResult_op_onsuccess(client, responseXml)
>> is letting me down. I will try and describe the problem as best I can.
>>
>> In FireBug, the POST Response looks like this:
>>
>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>    <env:Header/>
>>    <env:Body>
>>        <java:getResultResponse xmlns:java="java:blah">
>>            <java:result>myResult</java:result>
>>        </java:getResultResponse>
>>    </env:Body>
>> </env:Envelope>
>>
>> Within the method below, I will show you what I see in Firebug as comments
>> for each line..
>>
>> ns_getResult_op_onsuccess(client, responseXml)
>> {
>>    if(client.user_onsuccess)
>>    {
>>        var responseObject = null;
>>        var element = responseXml.documentElement;  // element = envelope
>>        this.jsutils.trace('responseXml: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element); // element =
>> header
>>        this.jsutils.trace('first element child: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element);  // element =
>> null
>>        this.jsutils.trace('part element: ' +
>> this.jsutils.traceElementName(element)); // element = null
>>        this.jsutils.trace('calling
>> blah_getResultResponse_deserializeResponse');
>>        responseObject =
>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>        client.user_onsuccess(responseObject);
>>    }
>> }
>>
>> So the problem is arising where element = null.
>>
>> When I look at the documentElement in FireBug it looks like this:
>>
>> documentElement: envelope
>>  childElementCount: 2
>>  children: header, body
>>    0: header
>>      childElementCount: 0
>>    1: body
>>      childElementCount: 1
>>      children: getresultresponse
>>        0: getresultresponse
>>          childElementCount: 1
>>          children: result
>>            0: result
>>              textContent: myResult
>>
>> Is the problem my XML (I'm using a third party WSDL so I can't change it)
>> or
>> is this a problem with the generated wsdl2js code that parses the
>> responseXML?
>>
>> BTW I greatly appreciate your help so far!
>>
>>
>>
>> bimargulies wrote:
>> >
>> > I've made a fix to the top-level problem to trunk. Try the next
>> snapshot.
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry Benson, I only just got a chance to look at this today. Thanks so much - will try the snapshot tomorrow and post back my results.

bimargulies wrote:
https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another snapshot.

On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies <bimargulies@gmail.com>wrote:

> I will try to make sense of this tonight. However, I am likelier to be much
> more helpful much faster if you can either construct a test case you can
> share or at least share the XML Schema fragments relevant to this problem.
> This kind of problem boils down to having generated Javascript that is not
> on the same page as the XML Schema (assuming that your service corresponds
> to its schema correctly).
>
>
> On Wed, Oct 21, 2009 at 3:49 AM, noosy <vanessa.towers@dsto.defence.gov.au
> > wrote:
>
>>
>> Awesome, I got the latest snapshot and the missing code has been generated
>> :)
>>
>> However... I tried to call a simple WS operation, I can see that I am
>> getting the SOAP envelope back containing the result but my generated js
>> function ns_getResult_op_onsuccess(client, responseXml)
>> is letting me down. I will try and describe the problem as best I can.
>>
>> In FireBug, the POST Response looks like this:
>>
>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>    <env:Header/>
>>    <env:Body>
>>        <java:getResultResponse xmlns:java="java:blah">
>>            <java:result>myResult</java:result>
>>        </java:getResultResponse>
>>    </env:Body>
>> </env:Envelope>
>>
>> Within the method below, I will show you what I see in Firebug as comments
>> for each line..
>>
>> ns_getResult_op_onsuccess(client, responseXml)
>> {
>>    if(client.user_onsuccess)
>>    {
>>        var responseObject = null;
>>        var element = responseXml.documentElement;  // element = envelope
>>        this.jsutils.trace('responseXml: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element); // element =
>> header
>>        this.jsutils.trace('first element child: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element);  // element =
>> null
>>        this.jsutils.trace('part element: ' +
>> this.jsutils.traceElementName(element)); // element = null
>>        this.jsutils.trace('calling
>> blah_getResultResponse_deserializeResponse');
>>        responseObject =
>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>        client.user_onsuccess(responseObject);
>>    }
>> }
>>
>> So the problem is arising where element = null.
>>
>> When I look at the documentElement in FireBug it looks like this:
>>
>> documentElement: envelope
>>  childElementCount: 2
>>  children: header, body
>>    0: header
>>      childElementCount: 0
>>    1: body
>>      childElementCount: 1
>>      children: getresultresponse
>>        0: getresultresponse
>>          childElementCount: 1
>>          children: result
>>            0: result
>>              textContent: myResult
>>
>> Is the problem my XML (I'm using a third party WSDL so I can't change it)
>> or
>> is this a problem with the generated wsdl2js code that parses the
>> responseXML?
>>
>> BTW I greatly appreciate your help so far!
>>
>>
>>
>> bimargulies wrote:
>> >
>> > I've made a fix to the top-level problem to trunk. Try the next
>> snapshot.
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The latest snapshot has fixed the problem with the header  - thanks very much :)

One question regarding the generated code for the following element (declared in a schema referenced by my wsdl):

- <xsd:element default="COLD" name="temperature">
        - <xsd:annotation>
          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
        </xsd:annotation>
        - <xsd:simpleType>
                - <xsd:restriction base="xsd:string">
                        - <xsd:enumeration value="WARM">
                                - <xsd:annotation>
                                        <xsd:documentation xml:lang="en">Warm temp.</xsd:documentation>
                                  </xsd:annotation>
                        </xsd:enumeration>
                        - <xsd:enumeration value="HOT">
                                - <xsd:annotation>
                                  <xsd:documentation xml:lang="en">Hot temp.</xsd:documentation>
                                  </xsd:annotation>
                        </xsd:enumeration>
                        - <xsd:enumeration value="COLD">
                                - <xsd:annotation>
                                  <xsd:documentation xml:lang="en">Cold temp.</xsd:documentation>
                                  </xsd:annotation>
                          </xsd:enumeration>
                </xsd:restriction>
        </xsd:simpleType>
  </xsd:element>

A method is generated and the default value for temp is set:

function myNamespace_temperature(){
    ...
    this._temperature = COLD;
}

To get my code to work, I need to turn COLD into a String. E.g. 'COLD'. Is this a new problem with the auto generated code?

Currently, I have manually modified the generated js file to get around this and it is working as expected.

Your advice would again be appreciated - if you require more info please just ask.

Thanks



Sorry Benson, I only just got a chance to look at this today. Thanks so much - will try the snapshot tomorrow and post back my results.

bimargulies wrote:
https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another snapshot.

On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies <bimargulies@gmail.com>wrote:

> I will try to make sense of this tonight. However, I am likelier to be much
> more helpful much faster if you can either construct a test case you can
> share or at least share the XML Schema fragments relevant to this problem.
> This kind of problem boils down to having generated Javascript that is not
> on the same page as the XML Schema (assuming that your service corresponds
> to its schema correctly).
>
>
> On Wed, Oct 21, 2009 at 3:49 AM, noosy <vanessa.towers@dsto.defence.gov.au
> > wrote:
>
>>
>> Awesome, I got the latest snapshot and the missing code has been generated
>> :)
>>
>> However... I tried to call a simple WS operation, I can see that I am
>> getting the SOAP envelope back containing the result but my generated js
>> function ns_getResult_op_onsuccess(client, responseXml)
>> is letting me down. I will try and describe the problem as best I can.
>>
>> In FireBug, the POST Response looks like this:
>>
>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>    <env:Header/>
>>    <env:Body>
>>        <java:getResultResponse xmlns:java="java:blah">
>>            <java:result>myResult</java:result>
>>        </java:getResultResponse>
>>    </env:Body>
>> </env:Envelope>
>>
>> Within the method below, I will show you what I see in Firebug as comments
>> for each line..
>>
>> ns_getResult_op_onsuccess(client, responseXml)
>> {
>>    if(client.user_onsuccess)
>>    {
>>        var responseObject = null;
>>        var element = responseXml.documentElement;  // element = envelope
>>        this.jsutils.trace('responseXml: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element); // element =
>> header
>>        this.jsutils.trace('first element child: ' +
>> this.jsutils.traceElementName(element));
>>        element = this.jsutils.getFirstElementChild(element);  // element =
>> null
>>        this.jsutils.trace('part element: ' +
>> this.jsutils.traceElementName(element)); // element = null
>>        this.jsutils.trace('calling
>> blah_getResultResponse_deserializeResponse');
>>        responseObject =
>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>        client.user_onsuccess(responseObject);
>>    }
>> }
>>
>> So the problem is arising where element = null.
>>
>> When I look at the documentElement in FireBug it looks like this:
>>
>> documentElement: envelope
>>  childElementCount: 2
>>  children: header, body
>>    0: header
>>      childElementCount: 0
>>    1: body
>>      childElementCount: 1
>>      children: getresultresponse
>>        0: getresultresponse
>>          childElementCount: 1
>>          children: result
>>            0: result
>>              textContent: myResult
>>
>> Is the problem my XML (I'm using a third party WSDL so I can't change it)
>> or
>> is this a problem with the generated wsdl2js code that parses the
>> responseXML?
>>
>> BTW I greatly appreciate your help so far!
>>
>>
>>
>> bimargulies wrote:
>> >
>> > I've made a fix to the top-level problem to trunk. Try the next
>> snapshot.
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>>
>


Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

That's got to be a bug. I'll look into it.

On Wed, Nov 18, 2009 at 6:53 PM, noosy
<vanessa.towers@...>wrote:

>
> The latest snapshot has fixed the problem with the header  - thanks very
> much
> :)
>
> One question regarding the generated code for the following element
> (declared in a schema referenced by my wsdl):
>
> - <xsd:element default="COLD" name="temperature">
>        - <xsd:annotation>
>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>        </xsd:annotation>
>        - <xsd:simpleType>
>                - <xsd:restriction base="xsd:string">
>                        - <xsd:enumeration value="WARM">
>                                - <xsd:annotation>
>                                        <xsd:documentation
> xml:lang="en">Warm temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="HOT">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Hot
> temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="COLD">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Cold
> temp.</xsd:documentation>
>                                  </xsd:annotation>
>                          </xsd:enumeration>
>                </xsd:restriction>
>        </xsd:simpleType>
>  </xsd:element>
>
> A method is generated and the default value for temp is set:
>
> function myNamespace_temperature(){
>    ...
>    this._temperature = COLD;
> }
>
> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'. Is
> this a new problem with the auto generated code?
>
> Currently, I have manually modified the generated js file to get around
> this
> and it is working as expected.
>
> Your advice would again be appreciated - if you require more info please
> just ask.
>
> Thanks
>
>
>
> noosy wrote:
> >
> > Sorry Benson, I only just got a chance to look at this today. Thanks so
> > much - will try the snapshot tomorrow and post back my results.
> >
> >
> > bimargulies wrote:
> >>
> >> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
> >> snapshot.
> >>
> >> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
> >> <bimargulies@...>wrote:
> >>
> >>> I will try to make sense of this tonight. However, I am likelier to be
> >>> much
> >>> more helpful much faster if you can either construct a test case you
> can
> >>> share or at least share the XML Schema fragments relevant to this
> >>> problem.
> >>> This kind of problem boils down to having generated Javascript that is
> >>> not
> >>> on the same page as the XML Schema (assuming that your service
> >>> corresponds
> >>> to its schema correctly).
> >>>
> >>>
> >>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
> >>> <vanessa.towers@...
> >>> > wrote:
> >>>
> >>>>
> >>>> Awesome, I got the latest snapshot and the missing code has been
> >>>> generated
> >>>> :)
> >>>>
> >>>> However... I tried to call a simple WS operation, I can see that I am
> >>>> getting the SOAP envelope back containing the result but my generated
> >>>> js
> >>>> function ns_getResult_op_onsuccess(client, responseXml)
> >>>> is letting me down. I will try and describe the problem as best I can.
> >>>>
> >>>> In FireBug, the POST Response looks like this:
> >>>>
> >>>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
> >>>>    <env:Header/>
> >>>>    <env:Body>
> >>>>        <java:getResultResponse xmlns:java="java:blah">
> >>>>            <java:result>myResult</java:result>
> >>>>        </java:getResultResponse>
> >>>>    </env:Body>
> >>>> </env:Envelope>
> >>>>
> >>>> Within the method below, I will show you what I see in Firebug as
> >>>> comments
> >>>> for each line..
> >>>>
> >>>> ns_getResult_op_onsuccess(client, responseXml)
> >>>> {
> >>>>    if(client.user_onsuccess)
> >>>>    {
> >>>>        var responseObject = null;
> >>>>        var element = responseXml.documentElement;  // element =
> >>>> envelope
> >>>>        this.jsutils.trace('responseXml: ' +
> >>>> this.jsutils.traceElementName(element));
> >>>>        element = this.jsutils.getFirstElementChild(element); //
> element
> >>>> =
> >>>> header
> >>>>        this.jsutils.trace('first element child: ' +
> >>>> this.jsutils.traceElementName(element));
> >>>>        element = this.jsutils.getFirstElementChild(element);  //
> >>>> element =
> >>>> null
> >>>>        this.jsutils.trace('part element: ' +
> >>>> this.jsutils.traceElementName(element)); // element = null
> >>>>        this.jsutils.trace('calling
> >>>> blah_getResultResponse_deserializeResponse');
> >>>>        responseObject =
> >>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
> >>>>        client.user_onsuccess(responseObject);
> >>>>    }
> >>>> }
> >>>>
> >>>> So the problem is arising where element = null.
> >>>>
> >>>> When I look at the documentElement in FireBug it looks like this:
> >>>>
> >>>> documentElement: envelope
> >>>>  childElementCount: 2
> >>>>  children: header, body
> >>>>    0: header
> >>>>      childElementCount: 0
> >>>>    1: body
> >>>>      childElementCount: 1
> >>>>      children: getresultresponse
> >>>>        0: getresultresponse
> >>>>          childElementCount: 1
> >>>>          children: result
> >>>>            0: result
> >>>>              textContent: myResult
> >>>>
> >>>> Is the problem my XML (I'm using a third party WSDL so I can't change
> >>>> it)
> >>>> or
> >>>> is this a problem with the generated wsdl2js code that parses the
> >>>> responseXML?
> >>>>
> >>>> BTW I greatly appreciate your help so far!
> >>>>
> >>>>
> >>>>
> >>>> bimargulies wrote:
> >>>> >
> >>>> > I've made a fix to the top-level problem to trunk. Try the next
> >>>> snapshot.
> >>>> >
> >>>>
> >>>> --
> >>>> View this message in context:
> >>>>
> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
> >>>> Sent from the cxf-user mailing list archive at Nabble.com.
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I just submitted a fix to CXF-2568 which is your problem with the enum
default values.

On Wed, Nov 18, 2009 at 6:53 PM, noosy
<vanessa.towers@...> wrote:

>
> The latest snapshot has fixed the problem with the header  - thanks very much
> :)
>
> One question regarding the generated code for the following element
> (declared in a schema referenced by my wsdl):
>
> - <xsd:element default="COLD" name="temperature">
>        - <xsd:annotation>
>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>        </xsd:annotation>
>        - <xsd:simpleType>
>                - <xsd:restriction base="xsd:string">
>                        - <xsd:enumeration value="WARM">
>                                - <xsd:annotation>
>                                        <xsd:documentation xml:lang="en">Warm temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="HOT">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Hot temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="COLD">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Cold temp.</xsd:documentation>
>                                  </xsd:annotation>
>                          </xsd:enumeration>
>                </xsd:restriction>
>        </xsd:simpleType>
>  </xsd:element>
>
> A method is generated and the default value for temp is set:
>
> function myNamespace_temperature(){
>    ...
>    this._temperature = COLD;
> }
>
> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'. Is
> this a new problem with the auto generated code?
>
> Currently, I have manually modified the generated js file to get around this
> and it is working as expected.
>
> Your advice would again be appreciated - if you require more info please
> just ask.
>
> Thanks
>
>
>
> noosy wrote:
>>
>> Sorry Benson, I only just got a chance to look at this today. Thanks so
>> much - will try the snapshot tomorrow and post back my results.
>>
>>
>> bimargulies wrote:
>>>
>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>> snapshot.
>>>
>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>> <bimargulies@...>wrote:
>>>
>>>> I will try to make sense of this tonight. However, I am likelier to be
>>>> much
>>>> more helpful much faster if you can either construct a test case you can
>>>> share or at least share the XML Schema fragments relevant to this
>>>> problem.
>>>> This kind of problem boils down to having generated Javascript that is
>>>> not
>>>> on the same page as the XML Schema (assuming that your service
>>>> corresponds
>>>> to its schema correctly).
>>>>
>>>>
>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>> <vanessa.towers@...
>>>> > wrote:
>>>>
>>>>>
>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>> generated
>>>>> :)
>>>>>
>>>>> However... I tried to call a simple WS operation, I can see that I am
>>>>> getting the SOAP envelope back containing the result but my generated
>>>>> js
>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>> is letting me down. I will try and describe the problem as best I can.
>>>>>
>>>>> In FireBug, the POST Response looks like this:
>>>>>
>>>>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>    <env:Header/>
>>>>>    <env:Body>
>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>            <java:result>myResult</java:result>
>>>>>        </java:getResultResponse>
>>>>>    </env:Body>
>>>>> </env:Envelope>
>>>>>
>>>>> Within the method below, I will show you what I see in Firebug as
>>>>> comments
>>>>> for each line..
>>>>>
>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>> {
>>>>>    if(client.user_onsuccess)
>>>>>    {
>>>>>        var responseObject = null;
>>>>>        var element = responseXml.documentElement;  // element =
>>>>> envelope
>>>>>        this.jsutils.trace('responseXml: ' +
>>>>> this.jsutils.traceElementName(element));
>>>>>        element = this.jsutils.getFirstElementChild(element); // element
>>>>> =
>>>>> header
>>>>>        this.jsutils.trace('first element child: ' +
>>>>> this.jsutils.traceElementName(element));
>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>> element =
>>>>> null
>>>>>        this.jsutils.trace('part element: ' +
>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>        this.jsutils.trace('calling
>>>>> blah_getResultResponse_deserializeResponse');
>>>>>        responseObject =
>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>        client.user_onsuccess(responseObject);
>>>>>    }
>>>>> }
>>>>>
>>>>> So the problem is arising where element = null.
>>>>>
>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>
>>>>> documentElement: envelope
>>>>>  childElementCount: 2
>>>>>  children: header, body
>>>>>    0: header
>>>>>      childElementCount: 0
>>>>>    1: body
>>>>>      childElementCount: 1
>>>>>      children: getresultresponse
>>>>>        0: getresultresponse
>>>>>          childElementCount: 1
>>>>>          children: result
>>>>>            0: result
>>>>>              textContent: myResult
>>>>>
>>>>> Is the problem my XML (I'm using a third party WSDL so I can't change
>>>>> it)
>>>>> or
>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>> responseXML?
>>>>>
>>>>> BTW I greatly appreciate your help so far!
>>>>>
>>>>>
>>>>>
>>>>> bimargulies wrote:
>>>>> >
>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>> snapshot.
>>>>> >
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks again!

Another question if you don't mind..

I'm looking for the equivalent of how I would normally use xmlbeans in Java - that I can do in JS.

More specifically, my web service returns xml within xml if that makes sense. My generated wsdl2js CXF code allows me to work nicely with the 'outer' xml described by my web service but the xml response that I get back contains a metadata tag that contains more xml adhering to a schema that is not known to the web service. Currently I'm not sure what the best way is to work with the 'inner' xml in JS.

If I was doing this in Java I would bind the 'inner' xml to a Java type using XML Beans but alas I am in the strange new world of JS and I am not sure what my best options are (I can only think of ugly ways). I want to use the 'inner' xml in both directions. Eg. Read the 'inner' xml from out of my WS xml response and turn it into a workable js type and take a js type and turn it into xml to pass back to my WS. I have the schema for the 'inner' xml so is there a tool that will do this for me in js?


bimargulies wrote:
I just submitted a fix to CXF-2568 which is your problem with the enum
default values.

On Wed, Nov 18, 2009 at 6:53 PM, noosy
<vanessa.towers@dsto.defence.gov.au> wrote:
>
> The latest snapshot has fixed the problem with the header  - thanks very much
> :)
>
> One question regarding the generated code for the following element
> (declared in a schema referenced by my wsdl):
>
> - <xsd:element default="COLD" name="temperature">
>        - <xsd:annotation>
>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>        </xsd:annotation>
>        - <xsd:simpleType>
>                - <xsd:restriction base="xsd:string">
>                        - <xsd:enumeration value="WARM">
>                                - <xsd:annotation>
>                                        <xsd:documentation xml:lang="en">Warm temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="HOT">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Hot temp.</xsd:documentation>
>                                  </xsd:annotation>
>                        </xsd:enumeration>
>                        - <xsd:enumeration value="COLD">
>                                - <xsd:annotation>
>                                  <xsd:documentation xml:lang="en">Cold temp.</xsd:documentation>
>                                  </xsd:annotation>
>                          </xsd:enumeration>
>                </xsd:restriction>
>        </xsd:simpleType>
>  </xsd:element>
>
> A method is generated and the default value for temp is set:
>
> function myNamespace_temperature(){
>    ...
>    this._temperature = COLD;
> }
>
> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'. Is
> this a new problem with the auto generated code?
>
> Currently, I have manually modified the generated js file to get around this
> and it is working as expected.
>
> Your advice would again be appreciated - if you require more info please
> just ask.
>
> Thanks
>
>
>
> noosy wrote:
>>
>> Sorry Benson, I only just got a chance to look at this today. Thanks so
>> much - will try the snapshot tomorrow and post back my results.
>>
>>
>> bimargulies wrote:
>>>
>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>> snapshot.
>>>
>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>> <bimargulies@gmail.com>wrote:
>>>
>>>> I will try to make sense of this tonight. However, I am likelier to be
>>>> much
>>>> more helpful much faster if you can either construct a test case you can
>>>> share or at least share the XML Schema fragments relevant to this
>>>> problem.
>>>> This kind of problem boils down to having generated Javascript that is
>>>> not
>>>> on the same page as the XML Schema (assuming that your service
>>>> corresponds
>>>> to its schema correctly).
>>>>
>>>>
>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>> <vanessa.towers@dsto.defence.gov.au
>>>> > wrote:
>>>>
>>>>>
>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>> generated
>>>>> :)
>>>>>
>>>>> However... I tried to call a simple WS operation, I can see that I am
>>>>> getting the SOAP envelope back containing the result but my generated
>>>>> js
>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>> is letting me down. I will try and describe the problem as best I can.
>>>>>
>>>>> In FireBug, the POST Response looks like this:
>>>>>
>>>>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>    <env:Header/>
>>>>>    <env:Body>
>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>            <java:result>myResult</java:result>
>>>>>        </java:getResultResponse>
>>>>>    </env:Body>
>>>>> </env:Envelope>
>>>>>
>>>>> Within the method below, I will show you what I see in Firebug as
>>>>> comments
>>>>> for each line..
>>>>>
>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>> {
>>>>>    if(client.user_onsuccess)
>>>>>    {
>>>>>        var responseObject = null;
>>>>>        var element = responseXml.documentElement;  // element =
>>>>> envelope
>>>>>        this.jsutils.trace('responseXml: ' +
>>>>> this.jsutils.traceElementName(element));
>>>>>        element = this.jsutils.getFirstElementChild(element); // element
>>>>> =
>>>>> header
>>>>>        this.jsutils.trace('first element child: ' +
>>>>> this.jsutils.traceElementName(element));
>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>> element =
>>>>> null
>>>>>        this.jsutils.trace('part element: ' +
>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>        this.jsutils.trace('calling
>>>>> blah_getResultResponse_deserializeResponse');
>>>>>        responseObject =
>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>        client.user_onsuccess(responseObject);
>>>>>    }
>>>>> }
>>>>>
>>>>> So the problem is arising where element = null.
>>>>>
>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>
>>>>> documentElement: envelope
>>>>>  childElementCount: 2
>>>>>  children: header, body
>>>>>    0: header
>>>>>      childElementCount: 0
>>>>>    1: body
>>>>>      childElementCount: 1
>>>>>      children: getresultresponse
>>>>>        0: getresultresponse
>>>>>          childElementCount: 1
>>>>>          children: result
>>>>>            0: result
>>>>>              textContent: myResult
>>>>>
>>>>> Is the problem my XML (I'm using a third party WSDL so I can't change
>>>>> it)
>>>>> or
>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>> responseXML?
>>>>>
>>>>> BTW I greatly appreciate your help so far!
>>>>>
>>>>>
>>>>>
>>>>> bimargulies wrote:
>>>>> >
>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>> snapshot.
>>>>> >
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

You can use the CXF stuff all over again if you are willing to write
an XML schema for your XML and write a bit of Java.

In the CXF code, it wouldn't be too hard to run
SchemaJavascriptBuilder to create the necessary functions to serialize
and deserialize. then you just parse the string appropriate Javascript
DOM function.


On Wed, Dec 2, 2009 at 8:33 PM, noosy
<vanessa.towers@...> wrote:

>
> Thanks again!
>
> Another question if you don't mind..
>
> I'm looking for the equivalent of how I would normally use xmlbeans in Java
> - that I can do in JS.
>
> More specifically, my web service returns xml within xml if that makes
> sense. My generated wsdl2js CXF code allows me to work nicely with the
> 'outer' xml described by my web service but the xml response that I get back
> contains a metadata tag that contains more xml adhering to a schema that is
> not known to the web service. Currently I'm not sure what the best way is to
> work with the 'inner' xml in JS.
>
> If I was doing this in Java I would bind the 'inner' xml to a Java type
> using XML Beans but alas I am in the strange new world of JS and I am not
> sure what my best options are (I can only think of ugly ways). I want to use
> the 'inner' xml in both directions. Eg. Read the 'inner' xml from out of my
> WS xml response and turn it into a workable js type and take a js type and
> turn it into xml to pass back to my WS. I have the schema for the 'inner'
> xml so is there a tool that will do this for me in js?
>
>
>
> bimargulies wrote:
>>
>> I just submitted a fix to CXF-2568 which is your problem with the enum
>> default values.
>>
>> On Wed, Nov 18, 2009 at 6:53 PM, noosy
>> <vanessa.towers@...> wrote:
>>>
>>> The latest snapshot has fixed the problem with the header  - thanks very
>>> much
>>> :)
>>>
>>> One question regarding the generated code for the following element
>>> (declared in a schema referenced by my wsdl):
>>>
>>> - <xsd:element default="COLD" name="temperature">
>>>        - <xsd:annotation>
>>>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>>>        </xsd:annotation>
>>>        - <xsd:simpleType>
>>>                - <xsd:restriction base="xsd:string">
>>>                        - <xsd:enumeration value="WARM">
>>>                                - <xsd:annotation>
>>>                                        <xsd:documentation
>>> xml:lang="en">Warm temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                        </xsd:enumeration>
>>>                        - <xsd:enumeration value="HOT">
>>>                                - <xsd:annotation>
>>>                                  <xsd:documentation xml:lang="en">Hot
>>> temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                        </xsd:enumeration>
>>>                        - <xsd:enumeration value="COLD">
>>>                                - <xsd:annotation>
>>>                                  <xsd:documentation xml:lang="en">Cold
>>> temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                          </xsd:enumeration>
>>>                </xsd:restriction>
>>>        </xsd:simpleType>
>>>  </xsd:element>
>>>
>>> A method is generated and the default value for temp is set:
>>>
>>> function myNamespace_temperature(){
>>>    ...
>>>    this._temperature = COLD;
>>> }
>>>
>>> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'.
>>> Is
>>> this a new problem with the auto generated code?
>>>
>>> Currently, I have manually modified the generated js file to get around
>>> this
>>> and it is working as expected.
>>>
>>> Your advice would again be appreciated - if you require more info please
>>> just ask.
>>>
>>> Thanks
>>>
>>>
>>>
>>> noosy wrote:
>>>>
>>>> Sorry Benson, I only just got a chance to look at this today. Thanks so
>>>> much - will try the snapshot tomorrow and post back my results.
>>>>
>>>>
>>>> bimargulies wrote:
>>>>>
>>>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>>>> snapshot.
>>>>>
>>>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>>>> <bimargulies@...>wrote:
>>>>>
>>>>>> I will try to make sense of this tonight. However, I am likelier to be
>>>>>> much
>>>>>> more helpful much faster if you can either construct a test case you
>>>>>> can
>>>>>> share or at least share the XML Schema fragments relevant to this
>>>>>> problem.
>>>>>> This kind of problem boils down to having generated Javascript that is
>>>>>> not
>>>>>> on the same page as the XML Schema (assuming that your service
>>>>>> corresponds
>>>>>> to its schema correctly).
>>>>>>
>>>>>>
>>>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>>>> <vanessa.towers@...
>>>>>> > wrote:
>>>>>>
>>>>>>>
>>>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>>>> generated
>>>>>>> :)
>>>>>>>
>>>>>>> However... I tried to call a simple WS operation, I can see that I am
>>>>>>> getting the SOAP envelope back containing the result but my generated
>>>>>>> js
>>>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>>>> is letting me down. I will try and describe the problem as best I
>>>>>>> can.
>>>>>>>
>>>>>>> In FireBug, the POST Response looks like this:
>>>>>>>
>>>>>>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>>>    <env:Header/>
>>>>>>>    <env:Body>
>>>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>>>            <java:result>myResult</java:result>
>>>>>>>        </java:getResultResponse>
>>>>>>>    </env:Body>
>>>>>>> </env:Envelope>
>>>>>>>
>>>>>>> Within the method below, I will show you what I see in Firebug as
>>>>>>> comments
>>>>>>> for each line..
>>>>>>>
>>>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>>>> {
>>>>>>>    if(client.user_onsuccess)
>>>>>>>    {
>>>>>>>        var responseObject = null;
>>>>>>>        var element = responseXml.documentElement;  // element =
>>>>>>> envelope
>>>>>>>        this.jsutils.trace('responseXml: ' +
>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>        element = this.jsutils.getFirstElementChild(element); //
>>>>>>> element
>>>>>>> =
>>>>>>> header
>>>>>>>        this.jsutils.trace('first element child: ' +
>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>>>> element =
>>>>>>> null
>>>>>>>        this.jsutils.trace('part element: ' +
>>>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>>>        this.jsutils.trace('calling
>>>>>>> blah_getResultResponse_deserializeResponse');
>>>>>>>        responseObject =
>>>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>>>        client.user_onsuccess(responseObject);
>>>>>>>    }
>>>>>>> }
>>>>>>>
>>>>>>> So the problem is arising where element = null.
>>>>>>>
>>>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>>>
>>>>>>> documentElement: envelope
>>>>>>>  childElementCount: 2
>>>>>>>  children: header, body
>>>>>>>    0: header
>>>>>>>      childElementCount: 0
>>>>>>>    1: body
>>>>>>>      childElementCount: 1
>>>>>>>      children: getresultresponse
>>>>>>>        0: getresultresponse
>>>>>>>          childElementCount: 1
>>>>>>>          children: result
>>>>>>>            0: result
>>>>>>>              textContent: myResult
>>>>>>>
>>>>>>> Is the problem my XML (I'm using a third party WSDL so I can't change
>>>>>>> it)
>>>>>>> or
>>>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>>>> responseXML?
>>>>>>>
>>>>>>> BTW I greatly appreciate your help so far!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> bimargulies wrote:
>>>>>>> >
>>>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>>>> snapshot.
>>>>>>> >
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26619651.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thats what I was hoping you would say. Yes, I have an XML schema for my XML, would you mind (briefly) explaining the steps I should take to run SchemaJavascriptBuilder against my schema to generate the necessary deserialize/serialize functions?

When you say "write a bit of Java" are you saying I should write my own Java class that uses SchemaJavascriptBuilder.java? Sorry, I'm not familiar with the CXF src so if I'm on the wrong track please let me know. I realise you have provided the building blocks for me to run with but I'm not sure what to do with them.

bimargulies wrote:
You can use the CXF stuff all over again if you are willing to write
an XML schema for your XML and write a bit of Java.

In the CXF code, it wouldn't be too hard to run
SchemaJavascriptBuilder to create the necessary functions to serialize
and deserialize. then you just parse the string appropriate Javascript
DOM function.


On Wed, Dec 2, 2009 at 8:33 PM, noosy
<vanessa.towers@dsto.defence.gov.au> wrote:
>
> Thanks again!
>
> Another question if you don't mind..
>
> I'm looking for the equivalent of how I would normally use xmlbeans in Java
> - that I can do in JS.
>
> More specifically, my web service returns xml within xml if that makes
> sense. My generated wsdl2js CXF code allows me to work nicely with the
> 'outer' xml described by my web service but the xml response that I get back
> contains a metadata tag that contains more xml adhering to a schema that is
> not known to the web service. Currently I'm not sure what the best way is to
> work with the 'inner' xml in JS.
>
> If I was doing this in Java I would bind the 'inner' xml to a Java type
> using XML Beans but alas I am in the strange new world of JS and I am not
> sure what my best options are (I can only think of ugly ways). I want to use
> the 'inner' xml in both directions. Eg. Read the 'inner' xml from out of my
> WS xml response and turn it into a workable js type and take a js type and
> turn it into xml to pass back to my WS. I have the schema for the 'inner'
> xml so is there a tool that will do this for me in js?
>
>
>
> bimargulies wrote:
>>
>> I just submitted a fix to CXF-2568 which is your problem with the enum
>> default values.
>>
>> On Wed, Nov 18, 2009 at 6:53 PM, noosy
>> <vanessa.towers@dsto.defence.gov.au> wrote:
>>>
>>> The latest snapshot has fixed the problem with the header  - thanks very
>>> much
>>> :)
>>>
>>> One question regarding the generated code for the following element
>>> (declared in a schema referenced by my wsdl):
>>>
>>> - <xsd:element default="COLD" name="temperature">
>>>        - <xsd:annotation>
>>>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>>>        </xsd:annotation>
>>>        - <xsd:simpleType>
>>>                - <xsd:restriction base="xsd:string">
>>>                        - <xsd:enumeration value="WARM">
>>>                                - <xsd:annotation>
>>>                                        <xsd:documentation
>>> xml:lang="en">Warm temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                        </xsd:enumeration>
>>>                        - <xsd:enumeration value="HOT">
>>>                                - <xsd:annotation>
>>>                                  <xsd:documentation xml:lang="en">Hot
>>> temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                        </xsd:enumeration>
>>>                        - <xsd:enumeration value="COLD">
>>>                                - <xsd:annotation>
>>>                                  <xsd:documentation xml:lang="en">Cold
>>> temp.</xsd:documentation>
>>>                                  </xsd:annotation>
>>>                          </xsd:enumeration>
>>>                </xsd:restriction>
>>>        </xsd:simpleType>
>>>  </xsd:element>
>>>
>>> A method is generated and the default value for temp is set:
>>>
>>> function myNamespace_temperature(){
>>>    ...
>>>    this._temperature = COLD;
>>> }
>>>
>>> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'.
>>> Is
>>> this a new problem with the auto generated code?
>>>
>>> Currently, I have manually modified the generated js file to get around
>>> this
>>> and it is working as expected.
>>>
>>> Your advice would again be appreciated - if you require more info please
>>> just ask.
>>>
>>> Thanks
>>>
>>>
>>>
>>> noosy wrote:
>>>>
>>>> Sorry Benson, I only just got a chance to look at this today. Thanks so
>>>> much - will try the snapshot tomorrow and post back my results.
>>>>
>>>>
>>>> bimargulies wrote:
>>>>>
>>>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>>>> snapshot.
>>>>>
>>>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>>>> <bimargulies@gmail.com>wrote:
>>>>>
>>>>>> I will try to make sense of this tonight. However, I am likelier to be
>>>>>> much
>>>>>> more helpful much faster if you can either construct a test case you
>>>>>> can
>>>>>> share or at least share the XML Schema fragments relevant to this
>>>>>> problem.
>>>>>> This kind of problem boils down to having generated Javascript that is
>>>>>> not
>>>>>> on the same page as the XML Schema (assuming that your service
>>>>>> corresponds
>>>>>> to its schema correctly).
>>>>>>
>>>>>>
>>>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>>>> <vanessa.towers@dsto.defence.gov.au
>>>>>> > wrote:
>>>>>>
>>>>>>>
>>>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>>>> generated
>>>>>>> :)
>>>>>>>
>>>>>>> However... I tried to call a simple WS operation, I can see that I am
>>>>>>> getting the SOAP envelope back containing the result but my generated
>>>>>>> js
>>>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>>>> is letting me down. I will try and describe the problem as best I
>>>>>>> can.
>>>>>>>
>>>>>>> In FireBug, the POST Response looks like this:
>>>>>>>
>>>>>>> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>>>    <env:Header/>
>>>>>>>    <env:Body>
>>>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>>>            <java:result>myResult</java:result>
>>>>>>>        </java:getResultResponse>
>>>>>>>    </env:Body>
>>>>>>> </env:Envelope>
>>>>>>>
>>>>>>> Within the method below, I will show you what I see in Firebug as
>>>>>>> comments
>>>>>>> for each line..
>>>>>>>
>>>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>>>> {
>>>>>>>    if(client.user_onsuccess)
>>>>>>>    {
>>>>>>>        var responseObject = null;
>>>>>>>        var element = responseXml.documentElement;  // element =
>>>>>>> envelope
>>>>>>>        this.jsutils.trace('responseXml: ' +
>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>        element = this.jsutils.getFirstElementChild(element); //
>>>>>>> element
>>>>>>> =
>>>>>>> header
>>>>>>>        this.jsutils.trace('first element child: ' +
>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>>>> element =
>>>>>>> null
>>>>>>>        this.jsutils.trace('part element: ' +
>>>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>>>        this.jsutils.trace('calling
>>>>>>> blah_getResultResponse_deserializeResponse');
>>>>>>>        responseObject =
>>>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>>>        client.user_onsuccess(responseObject);
>>>>>>>    }
>>>>>>> }
>>>>>>>
>>>>>>> So the problem is arising where element = null.
>>>>>>>
>>>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>>>
>>>>>>> documentElement: envelope
>>>>>>>  childElementCount: 2
>>>>>>>  children: header, body
>>>>>>>    0: header
>>>>>>>      childElementCount: 0
>>>>>>>    1: body
>>>>>>>      childElementCount: 1
>>>>>>>      children: getresultresponse
>>>>>>>        0: getresultresponse
>>>>>>>          childElementCount: 1
>>>>>>>          children: result
>>>>>>>            0: result
>>>>>>>              textContent: myResult
>>>>>>>
>>>>>>> Is the problem my XML (I'm using a third party WSDL so I can't change
>>>>>>> it)
>>>>>>> or
>>>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>>>> responseXML?
>>>>>>>
>>>>>>> BTW I greatly appreciate your help so far!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> bimargulies wrote:
>>>>>>> >
>>>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>>>> snapshot.
>>>>>>> >
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26619651.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by bimargulies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

You have correctly parsed me.

Option 1: a cheat. Create a fake web service that includes your schema
in the wsdl. Run wsdl2js, and then get busy with a text editor cutting
out the part you want.

Option 2: what we really need here is xsd2js, like the tool provided
in jaxb. The pattern of tool-building in CXF Isn't all that horrible.
If your job will pay you do so some CXF development, I can send you
much more detailed pointers.

Option 3: my original thought. A one-off crock to read your schema
into XmlSchema and then call the class that processes a schema set. On
consideration, this seems silly compared to (1).



On Wed, Dec 2, 2009 at 10:33 PM, noosy
<vanessa.towers@...> wrote:

>
> Thats what I was hoping you would say. Yes, I have an XML schema for my XML,
> would you mind (briefly) explaining the steps I should take to run
> SchemaJavascriptBuilder against my schema to generate the necessary
> deserialize/serialize functions?
>
> When you say "write a bit of Java" are you saying I should write my own Java
> class that uses SchemaJavascriptBuilder.java? Sorry, I'm not familiar with
> the CXF src so if I'm on the wrong track please let me know. I realise you
> have provided the building blocks for me to run with but I'm not sure what
> to do with them.
>
>
> bimargulies wrote:
>>
>> You can use the CXF stuff all over again if you are willing to write
>> an XML schema for your XML and write a bit of Java.
>>
>> In the CXF code, it wouldn't be too hard to run
>> SchemaJavascriptBuilder to create the necessary functions to serialize
>> and deserialize. then you just parse the string appropriate Javascript
>> DOM function.
>>
>>
>> On Wed, Dec 2, 2009 at 8:33 PM, noosy
>> <vanessa.towers@...> wrote:
>>>
>>> Thanks again!
>>>
>>> Another question if you don't mind..
>>>
>>> I'm looking for the equivalent of how I would normally use xmlbeans in
>>> Java
>>> - that I can do in JS.
>>>
>>> More specifically, my web service returns xml within xml if that makes
>>> sense. My generated wsdl2js CXF code allows me to work nicely with the
>>> 'outer' xml described by my web service but the xml response that I get
>>> back
>>> contains a metadata tag that contains more xml adhering to a schema that
>>> is
>>> not known to the web service. Currently I'm not sure what the best way is
>>> to
>>> work with the 'inner' xml in JS.
>>>
>>> If I was doing this in Java I would bind the 'inner' xml to a Java type
>>> using XML Beans but alas I am in the strange new world of JS and I am not
>>> sure what my best options are (I can only think of ugly ways). I want to
>>> use
>>> the 'inner' xml in both directions. Eg. Read the 'inner' xml from out of
>>> my
>>> WS xml response and turn it into a workable js type and take a js type
>>> and
>>> turn it into xml to pass back to my WS. I have the schema for the 'inner'
>>> xml so is there a tool that will do this for me in js?
>>>
>>>
>>>
>>> bimargulies wrote:
>>>>
>>>> I just submitted a fix to CXF-2568 which is your problem with the enum
>>>> default values.
>>>>
>>>> On Wed, Nov 18, 2009 at 6:53 PM, noosy
>>>> <vanessa.towers@...> wrote:
>>>>>
>>>>> The latest snapshot has fixed the problem with the header  - thanks
>>>>> very
>>>>> much
>>>>> :)
>>>>>
>>>>> One question regarding the generated code for the following element
>>>>> (declared in a schema referenced by my wsdl):
>>>>>
>>>>> - <xsd:element default="COLD" name="temperature">
>>>>>        - <xsd:annotation>
>>>>>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>>>>>        </xsd:annotation>
>>>>>        - <xsd:simpleType>
>>>>>                - <xsd:restriction base="xsd:string">
>>>>>                        - <xsd:enumeration value="WARM">
>>>>>                                - <xsd:annotation>
>>>>>                                        <xsd:documentation
>>>>> xml:lang="en">Warm temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                        </xsd:enumeration>
>>>>>                        - <xsd:enumeration value="HOT">
>>>>>                                - <xsd:annotation>
>>>>>                                  <xsd:documentation xml:lang="en">Hot
>>>>> temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                        </xsd:enumeration>
>>>>>                        - <xsd:enumeration value="COLD">
>>>>>                                - <xsd:annotation>
>>>>>                                  <xsd:documentation xml:lang="en">Cold
>>>>> temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                          </xsd:enumeration>
>>>>>                </xsd:restriction>
>>>>>        </xsd:simpleType>
>>>>>  </xsd:element>
>>>>>
>>>>> A method is generated and the default value for temp is set:
>>>>>
>>>>> function myNamespace_temperature(){
>>>>>    ...
>>>>>    this._temperature = COLD;
>>>>> }
>>>>>
>>>>> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'.
>>>>> Is
>>>>> this a new problem with the auto generated code?
>>>>>
>>>>> Currently, I have manually modified the generated js file to get around
>>>>> this
>>>>> and it is working as expected.
>>>>>
>>>>> Your advice would again be appreciated - if you require more info
>>>>> please
>>>>> just ask.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>>
>>>>> noosy wrote:
>>>>>>
>>>>>> Sorry Benson, I only just got a chance to look at this today. Thanks
>>>>>> so
>>>>>> much - will try the snapshot tomorrow and post back my results.
>>>>>>
>>>>>>
>>>>>> bimargulies wrote:
>>>>>>>
>>>>>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>>>>>> snapshot.
>>>>>>>
>>>>>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>>>>>> <bimargulies@...>wrote:
>>>>>>>
>>>>>>>> I will try to make sense of this tonight. However, I am likelier to
>>>>>>>> be
>>>>>>>> much
>>>>>>>> more helpful much faster if you can either construct a test case you
>>>>>>>> can
>>>>>>>> share or at least share the XML Schema fragments relevant to this
>>>>>>>> problem.
>>>>>>>> This kind of problem boils down to having generated Javascript that
>>>>>>>> is
>>>>>>>> not
>>>>>>>> on the same page as the XML Schema (assuming that your service
>>>>>>>> corresponds
>>>>>>>> to its schema correctly).
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>>>>>> <vanessa.towers@...
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>>>>>> generated
>>>>>>>>> :)
>>>>>>>>>
>>>>>>>>> However... I tried to call a simple WS operation, I can see that I
>>>>>>>>> am
>>>>>>>>> getting the SOAP envelope back containing the result but my
>>>>>>>>> generated
>>>>>>>>> js
>>>>>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>>>>>> is letting me down. I will try and describe the problem as best I
>>>>>>>>> can.
>>>>>>>>>
>>>>>>>>> In FireBug, the POST Response looks like this:
>>>>>>>>>
>>>>>>>>> <env:Envelope
>>>>>>>>> xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>>>>>    <env:Header/>
>>>>>>>>>    <env:Body>
>>>>>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>>>>>            <java:result>myResult</java:result>
>>>>>>>>>        </java:getResultResponse>
>>>>>>>>>    </env:Body>
>>>>>>>>> </env:Envelope>
>>>>>>>>>
>>>>>>>>> Within the method below, I will show you what I see in Firebug as
>>>>>>>>> comments
>>>>>>>>> for each line..
>>>>>>>>>
>>>>>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>>>>>> {
>>>>>>>>>    if(client.user_onsuccess)
>>>>>>>>>    {
>>>>>>>>>        var responseObject = null;
>>>>>>>>>        var element = responseXml.documentElement;  // element =
>>>>>>>>> envelope
>>>>>>>>>        this.jsutils.trace('responseXml: ' +
>>>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>>>        element = this.jsutils.getFirstElementChild(element); //
>>>>>>>>> element
>>>>>>>>> =
>>>>>>>>> header
>>>>>>>>>        this.jsutils.trace('first element child: ' +
>>>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>>>>>> element =
>>>>>>>>> null
>>>>>>>>>        this.jsutils.trace('part element: ' +
>>>>>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>>>>>        this.jsutils.trace('calling
>>>>>>>>> blah_getResultResponse_deserializeResponse');
>>>>>>>>>        responseObject =
>>>>>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>>>>>        client.user_onsuccess(responseObject);
>>>>>>>>>    }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> So the problem is arising where element = null.
>>>>>>>>>
>>>>>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>>>>>
>>>>>>>>> documentElement: envelope
>>>>>>>>>  childElementCount: 2
>>>>>>>>>  children: header, body
>>>>>>>>>    0: header
>>>>>>>>>      childElementCount: 0
>>>>>>>>>    1: body
>>>>>>>>>      childElementCount: 1
>>>>>>>>>      children: getresultresponse
>>>>>>>>>        0: getresultresponse
>>>>>>>>>          childElementCount: 1
>>>>>>>>>          children: result
>>>>>>>>>            0: result
>>>>>>>>>              textContent: myResult
>>>>>>>>>
>>>>>>>>> Is the problem my XML (I'm using a third party WSDL so I can't
>>>>>>>>> change
>>>>>>>>> it)
>>>>>>>>> or
>>>>>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>>>>>> responseXML?
>>>>>>>>>
>>>>>>>>> BTW I greatly appreciate your help so far!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> bimargulies wrote:
>>>>>>>>> >
>>>>>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>>>>>> snapshot.
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26619651.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26620505.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Re: WSD2JS Not Creating Schema Objects

by noosy :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ok, Option 1:

I made a fake web service and it includes my (actually its a third party schema that references a bunch of other third party schemas) schema in the wsdl. Sadly when I run wsdl2js on it I get the following:

org.apache.cxf.common.xmlschema.XmlSchemaUtils unsupportedConstruct
...
Limitation: Type {http://www.opengis.net/gml}PolygonType is not defined as a sequence.
...

Hmmm what to do, what to do. I will keep looking into this matter, if you have an opinion on this error let me know (I know I haven't given you much to go on).

Option 2: I agree that tool would be cool - but I don't think my job will pay me to do any CXF dev at this point in time.

Option 3: If I get no where with option 1, this will be my next attempt!

bimargulies wrote:
You have correctly parsed me.

Option 1: a cheat. Create a fake web service that includes your schema
in the wsdl. Run wsdl2js, and then get busy with a text editor cutting
out the part you want.

Option 2: what we really need here is xsd2js, like the tool provided
in jaxb. The pattern of tool-building in CXF Isn't all that horrible.
If your job will pay you do so some CXF development, I can send you
much more detailed pointers.

Option 3: my original thought. A one-off crock to read your schema
into XmlSchema and then call the class that processes a schema set. On
consideration, this seems silly compared to (1).



On Wed, Dec 2, 2009 at 10:33 PM, noosy
<vanessa.towers@dsto.defence.gov.au> wrote:
>
> Thats what I was hoping you would say. Yes, I have an XML schema for my XML,
> would you mind (briefly) explaining the steps I should take to run
> SchemaJavascriptBuilder against my schema to generate the necessary
> deserialize/serialize functions?
>
> When you say "write a bit of Java" are you saying I should write my own Java
> class that uses SchemaJavascriptBuilder.java? Sorry, I'm not familiar with
> the CXF src so if I'm on the wrong track please let me know. I realise you
> have provided the building blocks for me to run with but I'm not sure what
> to do with them.
>
>
> bimargulies wrote:
>>
>> You can use the CXF stuff all over again if you are willing to write
>> an XML schema for your XML and write a bit of Java.
>>
>> In the CXF code, it wouldn't be too hard to run
>> SchemaJavascriptBuilder to create the necessary functions to serialize
>> and deserialize. then you just parse the string appropriate Javascript
>> DOM function.
>>
>>
>> On Wed, Dec 2, 2009 at 8:33 PM, noosy
>> <vanessa.towers@dsto.defence.gov.au> wrote:
>>>
>>> Thanks again!
>>>
>>> Another question if you don't mind..
>>>
>>> I'm looking for the equivalent of how I would normally use xmlbeans in
>>> Java
>>> - that I can do in JS.
>>>
>>> More specifically, my web service returns xml within xml if that makes
>>> sense. My generated wsdl2js CXF code allows me to work nicely with the
>>> 'outer' xml described by my web service but the xml response that I get
>>> back
>>> contains a metadata tag that contains more xml adhering to a schema that
>>> is
>>> not known to the web service. Currently I'm not sure what the best way is
>>> to
>>> work with the 'inner' xml in JS.
>>>
>>> If I was doing this in Java I would bind the 'inner' xml to a Java type
>>> using XML Beans but alas I am in the strange new world of JS and I am not
>>> sure what my best options are (I can only think of ugly ways). I want to
>>> use
>>> the 'inner' xml in both directions. Eg. Read the 'inner' xml from out of
>>> my
>>> WS xml response and turn it into a workable js type and take a js type
>>> and
>>> turn it into xml to pass back to my WS. I have the schema for the 'inner'
>>> xml so is there a tool that will do this for me in js?
>>>
>>>
>>>
>>> bimargulies wrote:
>>>>
>>>> I just submitted a fix to CXF-2568 which is your problem with the enum
>>>> default values.
>>>>
>>>> On Wed, Nov 18, 2009 at 6:53 PM, noosy
>>>> <vanessa.towers@dsto.defence.gov.au> wrote:
>>>>>
>>>>> The latest snapshot has fixed the problem with the header  - thanks
>>>>> very
>>>>> much
>>>>> :)
>>>>>
>>>>> One question regarding the generated code for the following element
>>>>> (declared in a schema referenced by my wsdl):
>>>>>
>>>>> - <xsd:element default="COLD" name="temperature">
>>>>>        - <xsd:annotation>
>>>>>          <xsd:documentation xml:lang="en">Temp.</xsd:documentation>
>>>>>        </xsd:annotation>
>>>>>        - <xsd:simpleType>
>>>>>                - <xsd:restriction base="xsd:string">
>>>>>                        - <xsd:enumeration value="WARM">
>>>>>                                - <xsd:annotation>
>>>>>                                        <xsd:documentation
>>>>> xml:lang="en">Warm temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                        </xsd:enumeration>
>>>>>                        - <xsd:enumeration value="HOT">
>>>>>                                - <xsd:annotation>
>>>>>                                  <xsd:documentation xml:lang="en">Hot
>>>>> temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                        </xsd:enumeration>
>>>>>                        - <xsd:enumeration value="COLD">
>>>>>                                - <xsd:annotation>
>>>>>                                  <xsd:documentation xml:lang="en">Cold
>>>>> temp.</xsd:documentation>
>>>>>                                  </xsd:annotation>
>>>>>                          </xsd:enumeration>
>>>>>                </xsd:restriction>
>>>>>        </xsd:simpleType>
>>>>>  </xsd:element>
>>>>>
>>>>> A method is generated and the default value for temp is set:
>>>>>
>>>>> function myNamespace_temperature(){
>>>>>    ...
>>>>>    this._temperature = COLD;
>>>>> }
>>>>>
>>>>> To get my code to work, I need to turn COLD into a String. E.g. 'COLD'.
>>>>> Is
>>>>> this a new problem with the auto generated code?
>>>>>
>>>>> Currently, I have manually modified the generated js file to get around
>>>>> this
>>>>> and it is working as expected.
>>>>>
>>>>> Your advice would again be appreciated - if you require more info
>>>>> please
>>>>> just ask.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>>
>>>>> noosy wrote:
>>>>>>
>>>>>> Sorry Benson, I only just got a chance to look at this today. Thanks
>>>>>> so
>>>>>> much - will try the snapshot tomorrow and post back my results.
>>>>>>
>>>>>>
>>>>>> bimargulies wrote:
>>>>>>>
>>>>>>> https://issues.apache.org/jira/browse/CXF-2513. Fixed. Try another
>>>>>>> snapshot.
>>>>>>>
>>>>>>> On Wed, Oct 21, 2009 at 7:51 AM, Benson Margulies
>>>>>>> <bimargulies@gmail.com>wrote:
>>>>>>>
>>>>>>>> I will try to make sense of this tonight. However, I am likelier to
>>>>>>>> be
>>>>>>>> much
>>>>>>>> more helpful much faster if you can either construct a test case you
>>>>>>>> can
>>>>>>>> share or at least share the XML Schema fragments relevant to this
>>>>>>>> problem.
>>>>>>>> This kind of problem boils down to having generated Javascript that
>>>>>>>> is
>>>>>>>> not
>>>>>>>> on the same page as the XML Schema (assuming that your service
>>>>>>>> corresponds
>>>>>>>> to its schema correctly).
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 21, 2009 at 3:49 AM, noosy
>>>>>>>> <vanessa.towers@dsto.defence.gov.au
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Awesome, I got the latest snapshot and the missing code has been
>>>>>>>>> generated
>>>>>>>>> :)
>>>>>>>>>
>>>>>>>>> However... I tried to call a simple WS operation, I can see that I
>>>>>>>>> am
>>>>>>>>> getting the SOAP envelope back containing the result but my
>>>>>>>>> generated
>>>>>>>>> js
>>>>>>>>> function ns_getResult_op_onsuccess(client, responseXml)
>>>>>>>>> is letting me down. I will try and describe the problem as best I
>>>>>>>>> can.
>>>>>>>>>
>>>>>>>>> In FireBug, the POST Response looks like this:
>>>>>>>>>
>>>>>>>>> <env:Envelope
>>>>>>>>> xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>>>>>    <env:Header/>
>>>>>>>>>    <env:Body>
>>>>>>>>>        <java:getResultResponse xmlns:java="java:blah">
>>>>>>>>>            <java:result>myResult</java:result>
>>>>>>>>>        </java:getResultResponse>
>>>>>>>>>    </env:Body>
>>>>>>>>> </env:Envelope>
>>>>>>>>>
>>>>>>>>> Within the method below, I will show you what I see in Firebug as
>>>>>>>>> comments
>>>>>>>>> for each line..
>>>>>>>>>
>>>>>>>>> ns_getResult_op_onsuccess(client, responseXml)
>>>>>>>>> {
>>>>>>>>>    if(client.user_onsuccess)
>>>>>>>>>    {
>>>>>>>>>        var responseObject = null;
>>>>>>>>>        var element = responseXml.documentElement;  // element =
>>>>>>>>> envelope
>>>>>>>>>        this.jsutils.trace('responseXml: ' +
>>>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>>>        element = this.jsutils.getFirstElementChild(element); //
>>>>>>>>> element
>>>>>>>>> =
>>>>>>>>> header
>>>>>>>>>        this.jsutils.trace('first element child: ' +
>>>>>>>>> this.jsutils.traceElementName(element));
>>>>>>>>>        element = this.jsutils.getFirstElementChild(element);  //
>>>>>>>>> element =
>>>>>>>>> null
>>>>>>>>>        this.jsutils.trace('part element: ' +
>>>>>>>>> this.jsutils.traceElementName(element)); // element = null
>>>>>>>>>        this.jsutils.trace('calling
>>>>>>>>> blah_getResultResponse_deserializeResponse');
>>>>>>>>>        responseObject =
>>>>>>>>> blah_getResultResponse_deserializeResponse(this.jsutils, element);
>>>>>>>>>        client.user_onsuccess(responseObject);
>>>>>>>>>    }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> So the problem is arising where element = null.
>>>>>>>>>
>>>>>>>>> When I look at the documentElement in FireBug it looks like this:
>>>>>>>>>
>>>>>>>>> documentElement: envelope
>>>>>>>>>  childElementCount: 2
>>>>>>>>>  children: header, body
>>>>>>>>>    0: header
>>>>>>>>>      childElementCount: 0
>>>>>>>>>    1: body
>>>>>>>>>      childElementCount: 1
>>>>>>>>>      children: getresultresponse
>>>>>>>>>        0: getresultresponse
>>>>>>>>>          childElementCount: 1
>>>>>>>>>          children: result
>>>>>>>>>            0: result
>>>>>>>>>              textContent: myResult
>>>>>>>>>
>>>>>>>>> Is the problem my XML (I'm using a third party WSDL so I can't
>>>>>>>>> change
>>>>>>>>> it)
>>>>>>>>> or
>>>>>>>>> is this a problem with the generated wsdl2js code that parses the
>>>>>>>>> responseXML?
>>>>>>>>>
>>>>>>>>> BTW I greatly appreciate your help so far!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> bimargulies wrote:
>>>>>>>>> >
>>>>>>>>> > I've made a fix to the top-level problem to trunk. Try the next
>>>>>>>>> snapshot.
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://www.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p25987975.html
>>>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26418028.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26619651.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26620505.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>
< Prev | 1 - 2 | Next >