[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    [jira] Commented: (AXIS-2096) Custom simpleType as attribute of an element causes problems when disp
From:       "Daniel Kador (JIRA)" <axis-dev () ws ! apache ! org>
Date:       2005-06-30 20:20:57
Message-ID: 1370970310.1120162857062.JavaMail.jira () ajax ! apache ! org
[Download RAW message or body]

    [ 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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic