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