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
> <[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.
>>
>>
> 
> 

-- 
View this message in context: 
http://old.nabble.com/WSD2JS-Not-Creating-Schema-Objects-tp25913919p26635756.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to