Alessandro Canevese created CXF-5342:
----------------------------------------
Summary: Letting to be absolute XSISchemaNamespace
Key: CXF-5342
URL: https://issues.apache.org/jira/browse/CXF-5342
Project: CXF
Issue Type: Improvement
Components: JAX-RS
Affects Versions: 2.7.7
Environment: Tomcat Spring
Reporter: Alessandro Canevese
Hi all. It's my first contribute to CXF. Maybe it has already been solved but
I've not figured out how to obtain it.
I need to have a xml produced with
xsi:schemaLocation="john andrew".
I've tried @XSISchemaLocation("john andrew") but you know it's rendered
http://blabla/john%20andrew.
I've tried to configure through the bean property schemaLocation in spring/cxf
xml configuration file (for a bean of class
org.apache.cxf.jaxrs.provider.JAXBElementProvider<T>, but I obtain that Spring
fires an exception of operation not supported (maybe it would not work anyway).
So, in the end, I've copied the class above and I made a class of my own
changing the private void addSchemaLocation(Marshaller ms, Annotation[] anns)
method as follows:
private void addSchemaLocation(Marshaller ms, Annotation[] anns)
throws Exception
{
XSISchemaLocation sl = AnnotationUtils.getAnnotation(anns,
XSISchemaLocation.class);
if (sl != null)
{
log.debug("It would produce " +
buildAbsoluteXMLResourceURI(sl.value()));
//String value = buildAbsoluteXMLResourceURI(sl.value());
log.debug("It produces instead" + sl.value());
String value = sl.value();
String propName = !sl.noNamespace() ?
Marshaller.JAXB_SCHEMA_LOCATION
: Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION;
ms.setProperty(propName, value);
}
}
It's not the right way as it should be configured to have a choice on turning
on/off absolute paths.
Maybe in a future version it will be set?
Thank you.
Excuse me if it turns out it's not an appropriate post.
Ciao
Alessandro
--
This message was sent by Atlassian JIRA
(v6.1#6144)