Hi, First of all thank you for your help.
> > Custom providers can also extend this method and wrap > the writer with yet another writer as you do, but in your specific case you > need to register a writer using a response filter, here's an example : > > http://svn.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/XmlStreamWriterProvider.java > > you can register this filter the same way as the custom JAXB provider. I have implemented a NoNamespacesResponseHandler getting a cleaner solution to my problem. Thanks. In the other hand, my problem seems to rely on the CustomXmlStreamWriter I´m providing. Overwriting some methods I have been able to remove all prefixes in the XML but no the "xmlns" attributes in head elements. I´m getting something like this: <?xml version='1.0' encoding='UTF-8'?> <house xmlns:ns2="http://namespace2" xmlns="http://namespace1"> <window>....</window> ..... </house> where "window" elements don´t have any prefixes but xmlns:ns2="http://namespace2" xmlns="http://namespace1" are printed as attributes in "house" element. The "NoNamespacesWriterWrapper" class is now: class NoNamespacesWriterWrapper implements XMLStreamWriter { private XMLStreamWriter wrappedStreamWriter; public NoNamespacesWriterWrapper(XMLStreamWriter wrappedStreamWriter) { this.wrappedStreamWriter = wrappedStreamWriter; } public void close() throws XMLStreamException { wrappedStreamWriter.close(); } public void flush() throws XMLStreamException { wrappedStreamWriter.flush(); } public NamespaceContext getNamespaceContext() { return wrappedStreamWriter.getNamespaceContext(); } public String getPrefix(String uri) throws XMLStreamException { return wrappedStreamWriter.getPrefix(uri); } public Object getProperty(String name) throws IllegalArgumentException { return wrappedStreamWriter.getProperty(name); } public void setDefaultNamespace(String uri) throws XMLStreamException { wrappedStreamWriter.setDefaultNamespace(uri); } public void setNamespaceContext(NamespaceContext context) throws XMLStreamException { wrappedStreamWriter.setNamespaceContext(context); } public void setPrefix(String prefix, String uri) throws XMLStreamException { wrappedStreamWriter.setPrefix(prefix, uri); } public void writeAttribute(String localName, String value) throws XMLStreamException { wrappedStreamWriter.writeAttribute(localName, value); } public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException { writeAttribute(localName, value); } public void writeAttribute(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException { writeAttribute(localName, value); } public void writeCData(String data) throws XMLStreamException { wrappedStreamWriter.writeCData(data); } public void writeCharacters(String text) throws XMLStreamException { wrappedStreamWriter.writeCharacters(text); } public void writeCharacters(char[] text, int start, int len) throws XMLStreamException { wrappedStreamWriter.writeCharacters(text, start, len); } public void writeComment(String data) throws XMLStreamException { wrappedStreamWriter.writeComment(data); } public void writeDTD(String dtd) throws XMLStreamException { wrappedStreamWriter.writeDTD(dtd); } public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException { wrappedStreamWriter.writeDefaultNamespace(namespaceURI); } public void writeEmptyElement(String localName) throws XMLStreamException { wrappedStreamWriter.writeEmptyElement(localName); } public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { writeEmptyElement(localName); } public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { writeEmptyElement(localName); } public void writeEndDocument() throws XMLStreamException { wrappedStreamWriter.writeEndDocument(); } public void writeEndElement() throws XMLStreamException { wrappedStreamWriter.writeEndElement(); } public void writeEntityRef(String name) throws XMLStreamException { wrappedStreamWriter.writeEntityRef(name); } public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { wrappedStreamWriter.writeNamespace(prefix, namespaceURI); } public void writeProcessingInstruction(String target) throws XMLStreamException { wrappedStreamWriter.writeProcessingInstruction(target); } public void writeProcessingInstruction(String target, String data) throws XMLStreamException { wrappedStreamWriter.writeProcessingInstruction(target, data); } public void writeStartDocument() throws XMLStreamException { wrappedStreamWriter.writeStartDocument(); } public void writeStartDocument(String version) throws XMLStreamException { wrappedStreamWriter.writeStartDocument(); } public void writeStartDocument(String encoding, String version) throws XMLStreamException { wrappedStreamWriter.writeStartDocument(encoding, version); } public void writeStartElement(String localName) throws XMLStreamException { wrappedStreamWriter.writeStartElement(localName); } public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { writeStartElement(localName); } public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { writeStartElement(localName); } } Thanks and regards, Juanjo.
