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
<[email protected]> 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
>> <[email protected]> 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
>>>> <[email protected]> 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
>>>>>>> <[email protected]>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
>>>>>>>> <[email protected]
>>>>>>>> > 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.
>
>

Reply via email to