axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter <peter.van.rensb...@gmail.com>
Subject Re: Axis and xsd:enumeration
Date Tue, 02 Aug 2005 16:58:40 GMT
Hi Anne, 

Thank you for the response. Sorry, <brand> is of type <BrandReferenceType>:

        <xs:complexType name="BrandReferenceType">
                 <xs:sequence>
                         <xs:element name="brandCode" type="BrandTypes"/>
                 </xs:sequence>
        </xs:complexType>

I have since tried to work around this by skipping the complex type
(not ideal - limiting future extensibility) but of course ran into the
same problem further on in my message, I have used xsd:enumerations
all over.

I guess my WSDL is not conforming to wrapped style then, hmmm, all
operations only has one parameter (wrapped containing multiple
parameters underneath of course).

Thanks,
Peter

On 8/2/05, Anne Thomas Manes <atmanes@gmail.com> wrote:
> What's the schema for <brand>?
> 
> In order for wsdl2java to produce WSDD style="wrapped", your WSDL must
> conform to the wrapped convention. Then it's automatic unless you
> specify --unwrapped.
> 
> Anne
> 
> On 8/1/05, Peter <peter.van.rensburg@gmail.com> wrote:
> > Hi,
> >
> > I'm having a bit of a problem with XML schema enumeration types it
> > seems. I have the following XSD:
> >
> >         <xs:complexType name="BrandReferenceType">
> >                 <xs:sequence>
> >                         <xs:element name="brandCode" type="BrandTypes"/>
> >                 </xs:sequence>
> >         </xs:complexType>
> >
> >         <xs:simpleType name="BrandTypes">
> >                 <xs:restriction base="xs:string">
> >                         <xs:enumeration value="BRANDA"/>
> >                         <xs:enumeration value="BRANDB"/>
> >                         <xs:enumeration value="BRANDC"/>
> >                 </xs:restriction>
> >         </xs:simpleType>
> >
> > I used WSDL2Java to generate my objects from that, so basically in my
> > code I'm using:
> >
> >                 BrandReferenceType brandRef = new BrandReferenceType();
> >                 brandRef.setBrandCode(BrandTypes.BRANDA);
> >
> >                 Account account = new Account();
> >                 account.setBrand(brandRef);
> >
> > The serialized (excerpt) message looks this (looks fine?):
> >
> >                 <Account xmlns="http://xxx/EDI/types/messages">
> >                         <ns2:accountId xmlns:ns2="http://xxxx/EDI/types/common">1
> >                         </ns2:accountId>
> >                         <ns3:brand xmlns:ns3="http://xxx/EDI/types/common">
> >                                 <ns3:brandCode>BRANDA
> >                                 </ns3:brandCode>
> >                         </ns3:brand>
> >
> > However I run into this problem on the server when I invoke a method
> > consuming an Account object:
> >
> > ~~~~~~~~~
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.encoding.DeserializationContext] Enter:
> > DeserializationContext::startElement(http://schemas.prophet.net/EDI/types/common,
> > brand)
> > 2005-08-01 14:08:02,647 DEBUG [org.apache.axis.message.RPCHandler]
> > Enter: RPCHandler.onStartChild()
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.i18n.ProjectResourceBundle]
> > org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00)
> > 2005-08-01 14:08:02,647 DEBUG [org.apache.axis.message.RPCHandler]
> > Type from attributes is:  null
> > 2005-08-01 14:08:02,647 DEBUG [org.apache.axis.message.RPCHandler]
> > Exit: RPCHandler.onStartChild()
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.i18n.ProjectResourceBundle]
> > org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.encoding.DeserializationContext] Pushing handler
> > org.apache.axis.encoding.DeserializerImpl@1b22920
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.i18n.ProjectResourceBundle]
> > org.apache.axis.i18n.resource::handleGetObject(gotType00)
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.encoding.DeserializerImpl] Deser got type
> > {http://www.w3.org/2001/XMLSchema}string
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.encoding.DeserializationContext] Exit:
> > DeserializationContext::startElement()
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.encoding.DeserializationContext] Enter:
> > DeserializationContext::startElement(http://schemas.prophet.net/EDI/types/common,
> > brandCode)
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.i18n.ProjectResourceBundle]
> > org.apache.axis.i18n.resource::handleGetObject(cantHandle00)
> > 2005-08-01 14:08:02,647 DEBUG
> > [org.apache.axis.i18n.ProjectResourceBundle]
> > org.apache.axis.i18n.resource::handleGetObject(toAxisFault00)
> > 2005-08-01 14:08:02,647 DEBUG [org.apache.axis.enterprise] Mapping
> > Exception to AxisFault
> > org.xml.sax.SAXException: SimpleDeserializer encountered a child
> > element, which is NOT expected, in something it was trying to
> > deserialize.
> >         at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
> >         at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
> > ~~~~~~~~~
> >
> > So it seems that it does not expect the element <brandCode> inside
> > <brand>, which seems perfectly valid to me (and XMLSpy ;)
> >
> > Any ideas?
> >
> > Incidentally, how can I tell wsdl2java ant task to generated a
> > style="wrapped" wsdd as apposed to style="document" ?
> >
> > Thank you,
> > Peter
> >
>

Mime
View raw message