[ https://issues.apache.org/jira/browse/CXF-5342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13799277#comment-13799277 ]
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: 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)