You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Daniel Kador (JIRA)" <ax...@ws.apache.org> on 2005/06/30 18:52:02 UTC
[jira] Created: (AXIS-2096) Custom simpleType as attribute of an element causes problems when displaying deployed service's WSDL
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
[jira] Commented: (AXIS-2096) Custom simpleType as attribute of an element causes problems when displaying deployed service's WSDL
Posted by "Daniel Kador (JIRA)" <ax...@ws.apache.org>.
[ 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
[jira] Commented: (AXIS-2096) Custom simpleType as attribute of an
element causes problems when displaying deployed service's WSDL
Posted by "Frederick N. Brier (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-2096?page=comments#action_12451201 ]
Frederick N. Brier commented on AXIS-2096:
------------------------------------------
I am just going to add a little more to what my investigations to what seems like the same problem. Enumeration restrictions cause a new Java class to be generated which means problems trying to specify a Java primitive which does not have, nor need a serializer/deserializer using SimpleSerializerFactory/SimpleDeserializerFactory. In addition, this looks a lot like JIRA bug#AXIS-2227, so perhaps we can kill two birds with one stone.
WSDL2Java is generating incorrect code in 3 places: deploy.wsdd, the *BindingStub.java, and the bean containing the string with the restriction base on it. When I modify these files as described below, the problem goes away. I have hacked out a patch for the moment so I can get my current task done, but the problem really requires taking the time to understand the underlying data model for the WSDL and schema, which I have not yet done.
The problem with the deploy.wsdd is in JavaDeployWriter.java, method writeDeployTypes() is that mappings like the one below are being generated:
<typeMapping
xmlns:ns="http://schemas.mycompany.com/mynamespace"
qname="ns:MyStringType"
type="java:java.lang.String"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle=""
/>
I added the following conditional which prevents it from being output for java.lang primitives:
if ( ! javaType.startsWith( "java.lang." ) )
{
//###FNB: Patch to stop output of primitives.
writeTypeMapping(pw, namespaceURI, localPart, javaType,
serializerFactory, deserializerFactory,
encodingStyle);
}
The problem in the *BindingStub.java file was caused by a problem in the JavaStubWriter.java. It was outputting the following unnecessary lines:
qName = new javax.xml.namespace.QName("http://schemas.omnilinksystems.com/xls", "CountryCodeType");
cachedSerQNames.add(qName);
cls = java.lang.String.class;
cachedSerClasses.add(cls);
cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, cls, qName));
cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, cls, qName));
I addressed this in the writeSerializationInit() method by sticking in these two lines:
//###FNB: Stop generation of java.lang primitives.
if ( type.getName().startsWith( "java.lang." ) )
return;
The problem with the bean containing the string with the restriction base on it was the setXmlType() call:
elemField.setXmlName(new javax.xml.namespace.QName("http://schemas.omnilinksystems.com/xls", "MyString"));
elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.omnilinksystems.com/xls", "MyStringType"));
The second line should actually be:
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
In JavaBeanHelperWriter.java, in the writeMetaData() method, I added this conditional. This by the way is a BUG in waiting. Restrictions on other primitive types will barf all over this. I just don't have the time until after Thankgiving to look at underlying Axis schema model..
//###FNB: Attempt to fix bug in restriction types for strings.
if ( elemType.getName().startsWith( "java.lang.String" ) )
{
pw.println(" elemField.setXmlType( new javax.xml.namespace.QName(\"http://www.w3.org/2001/XMLSchema\", \"string\" ) );");
}
else
{
pw.println(" elemField.setXmlType("
+ Utils.getNewQName(xmlType) + ");");
}
Hopefully this will help the Axis developers if they want to fix this now, or some other developer who encounters this bug. If I can get around to it, I will come up with a real fix and submit a patch.
> 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
> Issue Type: Bug
> Components: Serialization/Deserialization
> Affects 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
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
[jira] Commented: (AXIS-2096) Custom simpleType as attribute of an element causes problems when displaying deployed service's WSDL
Posted by "Daniel Kador (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-2096?page=comments#action_12314802 ]
Daniel Kador commented on AXIS-2096:
------------------------------------
I think I may have isolated why this occurs. It appears that you can, in fact, create an attribute of a custom simpleType, but ONLY if it has some sort of enumeration (and probably if it has other such restrictions, i.e. on whitespace, length, etc.). Since my schemas and examples do NOT have these additional restrictions, they don't work with Axis 1.2.1. As soon as I added an enumeration to each simpleType, things worked with no problems. As far as I know, having a simpleType with no enumeration or other facet is still legitimate for a schema, so I think this is a bug.
> 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
[jira] Commented: (AXIS-2096) Custom simpleType as attribute of an
element causes problems when displaying deployed service's WSDL
Posted by "Diego Louzán (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXIS-2096?page=comments#action_12457814 ]
Diego Louzán commented on AXIS-2096:
------------------------------------
I'm a commiter on Apache WSRP4J and this bug is preventing us from servicing the wsdl associated with the wsrp4j producer (with Axis 1.4). I don't know if the 1.x branch is still in development but a patch for this would be welcome.
> 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
> Issue Type: Bug
> Components: Serialization/Deserialization
> Affects 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
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org