[
https://issues.apache.org/jira/browse/CXF-5342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13799277#comment-13799277
]
Sergey Beryozkin edited comment on CXF-5342 at 10/18/13 4:46 PM:
-----------------------------------------------------------------
Hi Alessandro
Thanks for your input, I did not know that this attribute can have a relative
value, but after downloading the xsi instance schema I can see its value space
is completely open.
I think we can simply add a boolean property to
XSISchemaLocation annotation, set to true by default, something like
"absolute"=true, you'd set it to 'false' in your case
I can also make it simpler to override the relevant JAXBProvider code
Thanks, Sergey
was (Author: sergey_beryozkin):
Hi Alessandro
Thanks for your input, I did not know that this attribute can have a relative
value, but after the xsi instance schema I can see its value space is
completely open.
I think we can simply add a boolean property to
XSISchemaLocation annotation, set to true by default, something like
"absolute"=true, you'd set it to 'false' in your case
I can also make it simpler to override the relevant JAXBProvider code
Thanks, Sergey
> 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
> Priority: Minor
>
> 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 addSchemaLocation 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)