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 "Ulf Heyder (JIRA)" <ji...@apache.org> on 2007/04/27 13:15:15 UTC
[jira] Created: (AXIS2-2600) Code Generator should consider
namespaceprefixes defined in wsdl rather than defining ns1 when generating
code for MY_QNAME in ADB classes
Code Generator should consider namespaceprefixes defined in wsdl rather than defining ns1 when generating code for MY_QNAME in ADB classes
------------------------------------------------------------------------------------------------------------------------------------------
Key: AXIS2-2600
URL: https://issues.apache.org/jira/browse/AXIS2-2600
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: adb, codegen, om
Affects Versions: 1.1.1
Environment: AXIS2-1.1.1, codegen commandline (ant) ADB, jdk1.5, Tomcat 5.5, Win XP SP2
Reporter: Ulf Heyder
I have a small test WSDL (see below). I let AXIS2 Code Generator generate classes by calling
wsdl2java -uri foo.wsdl -o foosrc -p de.theservice.axis2 -ss -ssi -g
-t -sd -ns2p http://www.foo-bar.de/foo=de.theservice.axis2.foo
In the created ADB bean classes the definition of QName-s look like
public static final javax.xml.namespace.QName MY_QNAME =
new javax.xml.namespace.QName("http://www.foo-bar.de/foo",
"CheckServiceRequest", "ns1");
replacing user defined namesspaceprefixes (in my example: "foo") with prefixes like ns1, ns2, ... (in my example: "ns1")
When my client submits a "CheckService" request my service skeleton implementation has to serialize the request object to a file.
public CheckServiceResponse CheckService(CheckServiceRequest request)
throws CheckServiceFaultMsgException {
OMOutputFormat omOutformat = new OMOutputFormat();
omOutformat.setCharSetEncoding("UTF-8");
OMDataSource omOutSource = request.getOMDataSource(
CreateProductSelTypRequest.MY_QNAME,
OMAbstractFactory.getOMFactory());
OutputStream outBeanStr = new FileOutputStream(someFile);
omOutSource.serialize(outBeanStr, omOutformat);
outBeanStr.close();
}
The output file "someFile" looks like
<ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
<ns1:id>00004711</ns1:auftragsID>
<ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
</ns1:CheckServiceRequest>
I use this output as input for a XSL Transformer. The problem now is that I therefor strictly need the original namespaceprefix "foo" instead of the unknown "ns1", since there are dependencies of external xml schema defining namespaceprefix "foo".
As a workaround I tried to set the prefix when serializing the bean to file:
OMDataSource omOutSource = request.getOMDataSource(
new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
OMAbstractFactory.getOMFactory());
This didn't work.
1.
CodeGen should follow the prefixes defined in wsdl. There could be a new flag to turn this beahavior on and off.
2.
There should be a way to overrule the usage of the namespaceprefixes ns1, ns2, ... defined in MY_QNAME in the generated adb classes.
----- WSDL -------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:foo="http://www.foo-bar.de/foo"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
name="TheService" targetNamespace="http://www.foo-bar.de/foo">
<wsdl:types>
<xs:schema targetNamespace="http://www.foo-bar.de/foo"
xmlns:foo="http://www.foo-bar.de/foo">
<xs:element name="CheckServiceRequest"
type="xs:string" />
<xs:element name="CheckServiceResponse"
type="foo:CheckServiceResponseType" />
<xs:element name="CheckServiceFault"
type="xs:string" />
<xs:complexType name="CheckServiceResponseType">
<xs:sequence>
<xs:element name="id"
type="xs:string" />
<xs:element name="resultURI"
type="xs:anyURI" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="CheckServiceRequest">
<wsdl:part element="foo:CheckServiceRequest"
name="CheckServiceRequest" />
</wsdl:message>
<wsdl:message name="CheckServiceResponse">
<wsdl:part element="foo:CheckServiceResponse"
name="CheckServiceResponse" />
</wsdl:message>
<wsdl:message name="CheckServiceFaultMsg">
<wsdl:part name="CheckServiceFault" element="foo:CheckServiceFault" />
</wsdl:message>
<wsdl:portType name="TheService">
<wsdl:operation name="CheckService">
<wsdl:input message="foo:CheckServiceRequest" />
<wsdl:output message="foo:CheckServiceResponse" />
<wsdl:fault name="CheckServiceFault"
message="foo:CheckServiceFaultMsg" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TheServiceSOAP" type="foo:TheService">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="CheckService">
<soap:operation soapAction="CheckService" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="CheckServiceFault">
<soap:fault name="CheckServiceFault" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TheService">
<wsdl:port binding="foo:TheServiceSOAP" name="TheServiceSOAP">
<soap:address
location="http://www.foo-bar.de:8181/TheService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
[jira] Assigned: (AXIS2-2600) Code Generator should consider
namespaceprefixes defined in wsdl rather than defining ns1 when generating
code for MY_QNAME in ADB classes
Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AXIS2-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Deepal Jayasinghe reassigned AXIS2-2600:
----------------------------------------
Assignee: Amila Chinthaka Suriarachchi
> Code Generator should consider namespaceprefixes defined in wsdl rather than defining ns1 when generating code for MY_QNAME in ADB classes
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-2600
> URL: https://issues.apache.org/jira/browse/AXIS2-2600
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: adb, codegen, om
> Affects Versions: 1.1.1
> Environment: AXIS2-1.1.1, codegen commandline (ant) ADB, jdk1.5, Tomcat 5.5, Win XP SP2
> Reporter: Ulf Heyder
> Assigned To: Amila Chinthaka Suriarachchi
>
> I have a small test WSDL (see below). I let AXIS2 Code Generator generate classes by calling
> wsdl2java -uri foo.wsdl -o foosrc -p de.theservice.axis2 -ss -ssi -g
> -t -sd -ns2p http://www.foo-bar.de/foo=de.theservice.axis2.foo
> In the created ADB bean classes the definition of QName-s look like
> public static final javax.xml.namespace.QName MY_QNAME =
> new javax.xml.namespace.QName("http://www.foo-bar.de/foo",
> "CheckServiceRequest", "ns1");
> replacing user defined namesspaceprefixes (in my example: "foo") with prefixes like ns1, ns2, ... (in my example: "ns1")
> When my client submits a "CheckService" request my service skeleton implementation has to serialize the request object to a file.
> public CheckServiceResponse CheckService(CheckServiceRequest request)
> throws CheckServiceFaultMsgException {
> OMOutputFormat omOutformat = new OMOutputFormat();
> omOutformat.setCharSetEncoding("UTF-8");
> OMDataSource omOutSource = request.getOMDataSource(
> CreateProductSelTypRequest.MY_QNAME,
> OMAbstractFactory.getOMFactory());
> OutputStream outBeanStr = new FileOutputStream(someFile);
> omOutSource.serialize(outBeanStr, omOutformat);
> outBeanStr.close();
> }
> The output file "someFile" looks like
> <ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
> <ns1:id>00004711</ns1:auftragsID>
> <ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
> </ns1:CheckServiceRequest>
> I use this output as input for a XSL Transformer. The problem now is that I therefor strictly need the original namespaceprefix "foo" instead of the unknown "ns1", since there are dependencies of external xml schema defining namespaceprefix "foo".
> As a workaround I tried to set the prefix when serializing the bean to file:
> OMDataSource omOutSource = request.getOMDataSource(
> new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
> OMAbstractFactory.getOMFactory());
> This didn't work.
> 1.
> CodeGen should follow the prefixes defined in wsdl. There could be a new flag to turn this beahavior on and off.
> 2.
> There should be a way to overrule the usage of the namespaceprefixes ns1, ns2, ... defined in MY_QNAME in the generated adb classes.
> ----- WSDL -------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:foo="http://www.foo-bar.de/foo"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
> name="TheService" targetNamespace="http://www.foo-bar.de/foo">
> <wsdl:types>
> <xs:schema targetNamespace="http://www.foo-bar.de/foo"
> xmlns:foo="http://www.foo-bar.de/foo">
>
> <xs:element name="CheckServiceRequest"
> type="xs:string" />
> <xs:element name="CheckServiceResponse"
> type="foo:CheckServiceResponseType" />
> <xs:element name="CheckServiceFault"
> type="xs:string" />
> <xs:complexType name="CheckServiceResponseType">
> <xs:sequence>
> <xs:element name="id"
> type="xs:string" />
> <xs:element name="resultURI"
> type="xs:anyURI" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="CheckServiceRequest">
> <wsdl:part element="foo:CheckServiceRequest"
> name="CheckServiceRequest" />
> </wsdl:message>
> <wsdl:message name="CheckServiceResponse">
> <wsdl:part element="foo:CheckServiceResponse"
> name="CheckServiceResponse" />
> </wsdl:message>
> <wsdl:message name="CheckServiceFaultMsg">
> <wsdl:part name="CheckServiceFault" element="foo:CheckServiceFault" />
> </wsdl:message>
> <wsdl:portType name="TheService">
> <wsdl:operation name="CheckService">
> <wsdl:input message="foo:CheckServiceRequest" />
> <wsdl:output message="foo:CheckServiceResponse" />
> <wsdl:fault name="CheckServiceFault"
> message="foo:CheckServiceFaultMsg" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TheServiceSOAP" type="foo:TheService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="CheckService">
> <soap:operation soapAction="CheckService" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> <wsdl:fault name="CheckServiceFault">
> <soap:fault name="CheckServiceFault" use="literal" />
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TheService">
> <wsdl:port binding="foo:TheServiceSOAP" name="TheServiceSOAP">
> <soap:address
> location="http://www.foo-bar.de:8181/TheService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
[jira] Commented: (AXIS2-2600) Code Generator should consider
namespaceprefixes defined in wsdl rather than defining ns1 when generating
code for MY_QNAME in ADB classes
Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AXIS2-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493285 ]
Amila Chinthaka Suriarachchi commented on AXIS2-2600:
-----------------------------------------------------
or
OMElement omElement = testSequence.getOMElement(new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
OMAbstractFactory.getSOAP12Factory());
to get omElement and serialize it to your out put stream
> Code Generator should consider namespaceprefixes defined in wsdl rather than defining ns1 when generating code for MY_QNAME in ADB classes
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-2600
> URL: https://issues.apache.org/jira/browse/AXIS2-2600
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: adb, codegen, om
> Affects Versions: 1.1.1
> Environment: AXIS2-1.1.1, codegen commandline (ant) ADB, jdk1.5, Tomcat 5.5, Win XP SP2
> Reporter: Ulf Heyder
> Assigned To: Amila Chinthaka Suriarachchi
>
> I have a small test WSDL (see below). I let AXIS2 Code Generator generate classes by calling
> wsdl2java -uri foo.wsdl -o foosrc -p de.theservice.axis2 -ss -ssi -g
> -t -sd -ns2p http://www.foo-bar.de/foo=de.theservice.axis2.foo
> In the created ADB bean classes the definition of QName-s look like
> public static final javax.xml.namespace.QName MY_QNAME =
> new javax.xml.namespace.QName("http://www.foo-bar.de/foo",
> "CheckServiceRequest", "ns1");
> replacing user defined namesspaceprefixes (in my example: "foo") with prefixes like ns1, ns2, ... (in my example: "ns1")
> When my client submits a "CheckService" request my service skeleton implementation has to serialize the request object to a file.
> public CheckServiceResponse CheckService(CheckServiceRequest request)
> throws CheckServiceFaultMsgException {
> OMOutputFormat omOutformat = new OMOutputFormat();
> omOutformat.setCharSetEncoding("UTF-8");
> OMDataSource omOutSource = request.getOMDataSource(
> CreateProductSelTypRequest.MY_QNAME,
> OMAbstractFactory.getOMFactory());
> OutputStream outBeanStr = new FileOutputStream(someFile);
> omOutSource.serialize(outBeanStr, omOutformat);
> outBeanStr.close();
> }
> The output file "someFile" looks like
> <ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
> <ns1:id>00004711</ns1:auftragsID>
> <ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
> </ns1:CheckServiceRequest>
> I use this output as input for a XSL Transformer. The problem now is that I therefor strictly need the original namespaceprefix "foo" instead of the unknown "ns1", since there are dependencies of external xml schema defining namespaceprefix "foo".
> As a workaround I tried to set the prefix when serializing the bean to file:
> OMDataSource omOutSource = request.getOMDataSource(
> new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
> OMAbstractFactory.getOMFactory());
> This didn't work.
> 1.
> CodeGen should follow the prefixes defined in wsdl. There could be a new flag to turn this beahavior on and off.
> 2.
> There should be a way to overrule the usage of the namespaceprefixes ns1, ns2, ... defined in MY_QNAME in the generated adb classes.
> ----- WSDL -------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:foo="http://www.foo-bar.de/foo"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
> name="TheService" targetNamespace="http://www.foo-bar.de/foo">
> <wsdl:types>
> <xs:schema targetNamespace="http://www.foo-bar.de/foo"
> xmlns:foo="http://www.foo-bar.de/foo">
>
> <xs:element name="CheckServiceRequest"
> type="xs:string" />
> <xs:element name="CheckServiceResponse"
> type="foo:CheckServiceResponseType" />
> <xs:element name="CheckServiceFault"
> type="xs:string" />
> <xs:complexType name="CheckServiceResponseType">
> <xs:sequence>
> <xs:element name="id"
> type="xs:string" />
> <xs:element name="resultURI"
> type="xs:anyURI" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="CheckServiceRequest">
> <wsdl:part element="foo:CheckServiceRequest"
> name="CheckServiceRequest" />
> </wsdl:message>
> <wsdl:message name="CheckServiceResponse">
> <wsdl:part element="foo:CheckServiceResponse"
> name="CheckServiceResponse" />
> </wsdl:message>
> <wsdl:message name="CheckServiceFaultMsg">
> <wsdl:part name="CheckServiceFault" element="foo:CheckServiceFault" />
> </wsdl:message>
> <wsdl:portType name="TheService">
> <wsdl:operation name="CheckService">
> <wsdl:input message="foo:CheckServiceRequest" />
> <wsdl:output message="foo:CheckServiceResponse" />
> <wsdl:fault name="CheckServiceFault"
> message="foo:CheckServiceFaultMsg" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TheServiceSOAP" type="foo:TheService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="CheckService">
> <soap:operation soapAction="CheckService" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> <wsdl:fault name="CheckServiceFault">
> <soap:fault name="CheckServiceFault" use="literal" />
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TheService">
> <wsdl:port binding="foo:TheServiceSOAP" name="TheServiceSOAP">
> <soap:address
> location="http://www.foo-bar.de:8181/TheService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
[jira] Resolved: (AXIS2-2600) Code Generator should consider
namespaceprefixes defined in wsdl rather than defining ns1 when generating
code for MY_QNAME in ADB classes
Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AXIS2-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Amila Chinthaka Suriarachchi resolved AXIS2-2600.
-------------------------------------------------
Resolution: Won't Fix
namespace prefix change is not a bug since two xml's equals.
> Code Generator should consider namespaceprefixes defined in wsdl rather than defining ns1 when generating code for MY_QNAME in ADB classes
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-2600
> URL: https://issues.apache.org/jira/browse/AXIS2-2600
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: adb, codegen, om
> Affects Versions: 1.1.1
> Environment: AXIS2-1.1.1, codegen commandline (ant) ADB, jdk1.5, Tomcat 5.5, Win XP SP2
> Reporter: Ulf Heyder
> Assigned To: Amila Chinthaka Suriarachchi
>
> I have a small test WSDL (see below). I let AXIS2 Code Generator generate classes by calling
> wsdl2java -uri foo.wsdl -o foosrc -p de.theservice.axis2 -ss -ssi -g
> -t -sd -ns2p http://www.foo-bar.de/foo=de.theservice.axis2.foo
> In the created ADB bean classes the definition of QName-s look like
> public static final javax.xml.namespace.QName MY_QNAME =
> new javax.xml.namespace.QName("http://www.foo-bar.de/foo",
> "CheckServiceRequest", "ns1");
> replacing user defined namesspaceprefixes (in my example: "foo") with prefixes like ns1, ns2, ... (in my example: "ns1")
> When my client submits a "CheckService" request my service skeleton implementation has to serialize the request object to a file.
> public CheckServiceResponse CheckService(CheckServiceRequest request)
> throws CheckServiceFaultMsgException {
> OMOutputFormat omOutformat = new OMOutputFormat();
> omOutformat.setCharSetEncoding("UTF-8");
> OMDataSource omOutSource = request.getOMDataSource(
> CreateProductSelTypRequest.MY_QNAME,
> OMAbstractFactory.getOMFactory());
> OutputStream outBeanStr = new FileOutputStream(someFile);
> omOutSource.serialize(outBeanStr, omOutformat);
> outBeanStr.close();
> }
> The output file "someFile" looks like
> <ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
> <ns1:id>00004711</ns1:auftragsID>
> <ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
> </ns1:CheckServiceRequest>
> I use this output as input for a XSL Transformer. The problem now is that I therefor strictly need the original namespaceprefix "foo" instead of the unknown "ns1", since there are dependencies of external xml schema defining namespaceprefix "foo".
> As a workaround I tried to set the prefix when serializing the bean to file:
> OMDataSource omOutSource = request.getOMDataSource(
> new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
> OMAbstractFactory.getOMFactory());
> This didn't work.
> 1.
> CodeGen should follow the prefixes defined in wsdl. There could be a new flag to turn this beahavior on and off.
> 2.
> There should be a way to overrule the usage of the namespaceprefixes ns1, ns2, ... defined in MY_QNAME in the generated adb classes.
> ----- WSDL -------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:foo="http://www.foo-bar.de/foo"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
> name="TheService" targetNamespace="http://www.foo-bar.de/foo">
> <wsdl:types>
> <xs:schema targetNamespace="http://www.foo-bar.de/foo"
> xmlns:foo="http://www.foo-bar.de/foo">
>
> <xs:element name="CheckServiceRequest"
> type="xs:string" />
> <xs:element name="CheckServiceResponse"
> type="foo:CheckServiceResponseType" />
> <xs:element name="CheckServiceFault"
> type="xs:string" />
> <xs:complexType name="CheckServiceResponseType">
> <xs:sequence>
> <xs:element name="id"
> type="xs:string" />
> <xs:element name="resultURI"
> type="xs:anyURI" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="CheckServiceRequest">
> <wsdl:part element="foo:CheckServiceRequest"
> name="CheckServiceRequest" />
> </wsdl:message>
> <wsdl:message name="CheckServiceResponse">
> <wsdl:part element="foo:CheckServiceResponse"
> name="CheckServiceResponse" />
> </wsdl:message>
> <wsdl:message name="CheckServiceFaultMsg">
> <wsdl:part name="CheckServiceFault" element="foo:CheckServiceFault" />
> </wsdl:message>
> <wsdl:portType name="TheService">
> <wsdl:operation name="CheckService">
> <wsdl:input message="foo:CheckServiceRequest" />
> <wsdl:output message="foo:CheckServiceResponse" />
> <wsdl:fault name="CheckServiceFault"
> message="foo:CheckServiceFaultMsg" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TheServiceSOAP" type="foo:TheService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="CheckService">
> <soap:operation soapAction="CheckService" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> <wsdl:fault name="CheckServiceFault">
> <soap:fault name="CheckServiceFault" use="literal" />
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TheService">
> <wsdl:port binding="foo:TheServiceSOAP" name="TheServiceSOAP">
> <soap:address
> location="http://www.foo-bar.de:8181/TheService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
[jira] Commented: (AXIS2-2600) Code Generator should consider
namespaceprefixes defined in wsdl rather than defining ns1 when generating
code for MY_QNAME in ADB classes
Posted by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AXIS2-2600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493283 ]
Amila Chinthaka Suriarachchi commented on AXIS2-2600:
-----------------------------------------------------
according to the xml definitions there is no need to namespace prefixed to be unique.
i.e.
<ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
<ns1:id>00004711</ns1:auftragsID>
<ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
</ns1:CheckServiceRequest>
is syntactically equal to
<foo:CheckServiceRequest xmlns:foo="http://www.foo-bar.de/foo">
<ns1:id>00004711</ns1:auftragsID>
<foo:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
</foo:CheckServiceRequest>
So there is no problem with the Axis2 side.
So when writting any application you should not assume the same namespaceprefix.
try something like this
XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(System.out);
request.serialize(new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo")
, OMAbstractFactory.getSOAP11Factory(), xmlStreamWriter);
xmlStreamWriter.flush();
use your file writer instead of System.out
> Code Generator should consider namespaceprefixes defined in wsdl rather than defining ns1 when generating code for MY_QNAME in ADB classes
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-2600
> URL: https://issues.apache.org/jira/browse/AXIS2-2600
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: adb, codegen, om
> Affects Versions: 1.1.1
> Environment: AXIS2-1.1.1, codegen commandline (ant) ADB, jdk1.5, Tomcat 5.5, Win XP SP2
> Reporter: Ulf Heyder
> Assigned To: Amila Chinthaka Suriarachchi
>
> I have a small test WSDL (see below). I let AXIS2 Code Generator generate classes by calling
> wsdl2java -uri foo.wsdl -o foosrc -p de.theservice.axis2 -ss -ssi -g
> -t -sd -ns2p http://www.foo-bar.de/foo=de.theservice.axis2.foo
> In the created ADB bean classes the definition of QName-s look like
> public static final javax.xml.namespace.QName MY_QNAME =
> new javax.xml.namespace.QName("http://www.foo-bar.de/foo",
> "CheckServiceRequest", "ns1");
> replacing user defined namesspaceprefixes (in my example: "foo") with prefixes like ns1, ns2, ... (in my example: "ns1")
> When my client submits a "CheckService" request my service skeleton implementation has to serialize the request object to a file.
> public CheckServiceResponse CheckService(CheckServiceRequest request)
> throws CheckServiceFaultMsgException {
> OMOutputFormat omOutformat = new OMOutputFormat();
> omOutformat.setCharSetEncoding("UTF-8");
> OMDataSource omOutSource = request.getOMDataSource(
> CreateProductSelTypRequest.MY_QNAME,
> OMAbstractFactory.getOMFactory());
> OutputStream outBeanStr = new FileOutputStream(someFile);
> omOutSource.serialize(outBeanStr, omOutformat);
> outBeanStr.close();
> }
> The output file "someFile" looks like
> <ns1:CheckServiceRequest xmlns:ns1="http://www.foo-bar.de/foo">
> <ns1:id>00004711</ns1:auftragsID>
> <ns1:ergebnisURI>http://www.foo-bar.de:8181/TheService/download/result00004711.xml</ns1:ergebnisURI>
> </ns1:CheckServiceRequest>
> I use this output as input for a XSL Transformer. The problem now is that I therefor strictly need the original namespaceprefix "foo" instead of the unknown "ns1", since there are dependencies of external xml schema defining namespaceprefix "foo".
> As a workaround I tried to set the prefix when serializing the bean to file:
> OMDataSource omOutSource = request.getOMDataSource(
> new QName("hhtp://www.foo-bar.de/foo", "CheckServiceRequest", "foo"),
> OMAbstractFactory.getOMFactory());
> This didn't work.
> 1.
> CodeGen should follow the prefixes defined in wsdl. There could be a new flag to turn this beahavior on and off.
> 2.
> There should be a way to overrule the usage of the namespaceprefixes ns1, ns2, ... defined in MY_QNAME in the generated adb classes.
> ----- WSDL -------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:foo="http://www.foo-bar.de/foo"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
> name="TheService" targetNamespace="http://www.foo-bar.de/foo">
> <wsdl:types>
> <xs:schema targetNamespace="http://www.foo-bar.de/foo"
> xmlns:foo="http://www.foo-bar.de/foo">
>
> <xs:element name="CheckServiceRequest"
> type="xs:string" />
> <xs:element name="CheckServiceResponse"
> type="foo:CheckServiceResponseType" />
> <xs:element name="CheckServiceFault"
> type="xs:string" />
> <xs:complexType name="CheckServiceResponseType">
> <xs:sequence>
> <xs:element name="id"
> type="xs:string" />
> <xs:element name="resultURI"
> type="xs:anyURI" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="CheckServiceRequest">
> <wsdl:part element="foo:CheckServiceRequest"
> name="CheckServiceRequest" />
> </wsdl:message>
> <wsdl:message name="CheckServiceResponse">
> <wsdl:part element="foo:CheckServiceResponse"
> name="CheckServiceResponse" />
> </wsdl:message>
> <wsdl:message name="CheckServiceFaultMsg">
> <wsdl:part name="CheckServiceFault" element="foo:CheckServiceFault" />
> </wsdl:message>
> <wsdl:portType name="TheService">
> <wsdl:operation name="CheckService">
> <wsdl:input message="foo:CheckServiceRequest" />
> <wsdl:output message="foo:CheckServiceResponse" />
> <wsdl:fault name="CheckServiceFault"
> message="foo:CheckServiceFaultMsg" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TheServiceSOAP" type="foo:TheService">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="CheckService">
> <soap:operation soapAction="CheckService" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> <wsdl:fault name="CheckServiceFault">
> <soap:fault name="CheckServiceFault" use="literal" />
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TheService">
> <wsdl:port binding="foo:TheServiceSOAP" name="TheServiceSOAP">
> <soap:address
> location="http://www.foo-bar.de:8181/TheService" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org