Namespace declarations too verbose -- Reopened
----------------------------------------------
Key: XFIRE-1029
URL: http://jira.codehaus.org/browse/XFIRE-1029
Project: XFire
Issue Type: Bug
Affects Versions: 1.1.2
Reporter: Dmitriy Likhten
Assignee: Dan Diephouse
Fix For: 1.2
Creating issue as requested by Dan on xfire user list, thread "how to enforce
namespace/prefix usage in SOAP replies?":
Hi Jochen,
This seems to be a bug in how we're using stax. It should be an easy
enough tweak, but we'll have to patch the main code to do this. Could
you please file a JIRA issue? Thanks.
/ Dan
Jochen Hergeroeder wrote:
{quote}
Hi,
I am using XFire 1.1.2 together with the
org.codehaus.xfire.spring.XFireSpringServlet and JSR 181 annotations.
I am declaring an Interface to be exposed as a web service like this:
package de.company.project.server.core.services.internal.designTask;
@WebService(targetNamespace= http://webservices.project.company )
public interface DesignTaskService
{
...
}
@WebService(serviceName = "DesignTaskService",
endpointInterface =
"de.company.project.server.core.services.designTask.DesignTaskService")
public class DesignTaskServiceImpl implements DesignTaskService
...
The Interface declares methods having bean parameters from (recursively)
different packages:
- de.company.project.server.core.services.internal.designTask
- de.company.project.server.core.services
The generated WSDL file correctly declares a namespace for each involved
package, together with a prefix, like:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://designTask.services.core.server.project.company.de"
xmlns:tns=http://webservices.project.company
targetNamespace=http://webservices.project.company>
<wsdl:types xmlns:ns2="http://services.core.server.project.company.de">
...
But the SOAP reply does not use the namespace prefixes at all, instead
declaring the namespace for each bean property, like this:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body><getDesignTaskDetailResponse
xmlns="http://webservices.project.company">
<out xmlns="http://webservices.project.company">
<articleDetails
xmlns="http://designTask.services.core.server.project.company.de">
<DesignTaskArticleDetail>
<articleData>
<dateOfIssue xmlns="http://services.core.server.project.company.de"
xsi:nil="true" />
<designTaskId xmlns="http://services.core.server.project.company.de"
xsi:nil="true" />
<deskName xmlns="http://services.core.server.project.company.de"
xsi:nil="true" />
....
###########################
This seems to be much too verbose.
###########################
How can I enforce to declare the namespace at the bean-level instead of each
property, e.g.
<articleData xmlns="http://services.core.server.project.company.de">
<dateOfIssue xsi:nil="true" />
<designTaskId xsi:nil="true" />
...
or even shorter:
<ns2:articleData">
<dateOfIssue xsi:nil="true" />
<designTaskId xsi:nil="true" />
or
<articleData">
<ns2:dateOfIssue xsi:nil="true" />
<ns2:designTaskId xsi:nil="true" />
Thanks in advance,
Jochen
{quote}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email