cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <>
Subject [jira] [Commented] (CXF-5342) Letting to be absolute XSISchemaNamespace
Date Fri, 18 Oct 2013 16:46:46 GMT


Sergey Beryozkin commented on CXF-5342:

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:
>             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
> 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

View raw message