[ 
http://issues.apache.org/jira/browse/AXIS-2096?page=comments#action_12314813 ] 

Daniel Kador commented on AXIS-2096:
------------------------------------

I have a little additional input.  I think the potential issue lies in the 
WSDL2Java code.  I've also discovered that it's more restrictive than I 
initially thought - the custom simpleType NEEDS to have an enumeration.  
Without an enum, WSDL2Java doesn't emit a class for that simpleType, and Axis 
gets confused when trying to view the deployed service's WSDL.  I think an 
appropriate bugfix would be to have a class always generated for simpleTypes, 
even if they don't have enumerated values.  Another option would be to fix the 
validating code so that when the WSDL is generated by the webservice, it knows 
that the custom simpleType is, in fact, a simpleType.  It doesn't work if a 
custom class has not been emitted.

> Custom simpleType as attribute of an element causes problems when displaying 
> deployed service's WSDL
> ----------------------------------------------------------------------------------------------------
>
>          Key: AXIS-2096
>          URL: http://issues.apache.org/jira/browse/AXIS-2096
>      Project: Apache Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2.1
>  Environment: WinXP, Tomcat 5.5.9, jdk1.5.0_03
>     Reporter: Daniel Kador

>
> If you create a WSDL similar to the one below in wrapped/literal style, you 
> will not be able to create a complexType whose attribute is of a custom 
> simpleType.  In the example below, the following error is listed when you try 
> to view the deployed service's WSDL through the browser interface:
> AXIS error
> Sorry, something seems to have gone wrong... here are the details:
> Fault - Bean attribute testAttribute is of type 
> org.apache.axis.types.NormalizedString, which is not a simple type
> AxisFault
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
>  faultSubcode: 
>  faultString: Bean attribute testAttribute is of type 
> org.apache.axis.types.NormalizedString, which is not a simple type
>  faultActor: 
>  faultNode: 
>  faultDetail: 
>       {http://xml.apache.org/axis/}hostname:ORLIWG2H5Y61
> I can fix the above error by changing the attribute type from 
> "y:testAttribute" to "xs:normalizedString".  Is Axis designed to behave this 
> way?  It's my understanding that XML allows for custom simpleTypes to be 
> defined and then used as attributes, and the schemas I work with use this 
> feature a good deal.  They validate with no problems in XMLSpy.  The WSDL I 
> use in this example is posted below.  
> <?xml version="1.0" encoding="utf-8"?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";               
>                                                                         
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>                       xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
>                       xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
>                       xmlns:y="http://test.wsdl"; 
>                       xmlns:types="http://test.wsdl/types";
>                       targetNamespace="http://test.wsdl";>
>       <wsdl:types>
>               <xs:schema>
>                       <xs:complexType name="testType">
>                               <xs:sequence>
>                                       <xs:element name="testElement" 
> type="xs:normalizedString"/>
>                               </xs:sequence>
>                               <xs:attribute name="testAttribute" 
> type="y:testAttribute"/>
>                       </xs:complexType>
>                       <xs:simpleType name="testAttribute">
>                               <xs:restriction base="xs:normalizedString"/>
>                       </xs:simpleType>
>                       <xs:element name="testAction">
>                               <xs:complexType>
>                                       <xs:sequence>
>                                               <xs:element name="testParam" 
> type="y:testType"/>
>                                       </xs:sequence>
>                               </xs:complexType>
>                       </xs:element>
>                       <xs:element name="testActionResp">
>                               <xs:complexType>
>                                       <xs:sequence>
>                                               <xs:element name="testResp" 
> type="xs:string"/>
>                                       </xs:sequence>
>                               </xs:complexType>
>                       </xs:element>
>               </xs:schema>
>       </wsdl:types>
>       <wsdl:message name="testActionRequest">
>               <wsdl:part name="parameters" element="y:testAction"/>
>       </wsdl:message>
>       <wsdl:message name="testActionResponse">
>               <wsdl:part name="parameters" element="y:testActionResp"/>
>       </wsdl:message>
>       <wsdl:portType name="testPortType">
>               <wsdl:operation name="testAction">
>                       <wsdl:input message="y:testActionRequest"/>
>                       <wsdl:output message="y:testActionResponse"/>
>               </wsdl:operation>
>       </wsdl:portType>
>       <wsdl:binding name="testSoapBinding" type="y:testPortType">
>               <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
> style="document"/>
>               <wsdl:operation name="testAction">
>                       <wsdl:input>
>                               <soap:body use="literal"/>
>                       </wsdl:input>
>                       <wsdl:output>
>                               <soap:body use="literal"/>
>                       </wsdl:output>
>               </wsdl:operation>
>       </wsdl:binding>
>       <wsdl:service name="testService">
>               <wsdl:port name="testPort" binding="y:testSoapBinding">
>                       <soap:address 
> location="http://localhost:8080/axis/services/testPort"/>
>               </wsdl:port>
>       </wsdl:service>
> </wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to