Hi Sergey, you are right. This use case is rather strange and actually not xml-compliant. It can be considered a non-xml legacy (ie., xml-looking but not xml) application connecting case.
I heard of a similar use case for the outbound direction (I think the outbound case is more likely than the inbound case, as some old legacy systems sometimes have such non-xml legacy interfaces). To get the optimal solution, wecan wait a little bit to hear more from cogitate and others about the justification for this option and their requirements. In particular for cogitate's case, if they know the namespaces on the original document, they can configure a few namespace mapping rules explicitly to collapse the namespaces. That will solve their problem without any new option. regards, aki 2012/3/12 Sergey Beryozkin <[email protected]>: > Hi Aki > > On 12/03/12 09:43, Aki Yoshida wrote: >> >> hi cogitate, >> so, basically you want to remove all the namspaces and assign a new >> one in a general way (i.e., without knowing the namespaces used in the >> original document)? > > > I'm not sure yet what specific case it would help with, do we have a > scenario where an outgoing element has 2/3 active namespaces and the > receiver is expecting a single namespace only ? > > Is it more an optimization enhancement (why type {bar}*: {foo}*) rather than > anything else ? > >> >> @sergey, >> I think this will be straightforward and we can include this option. >> > Agreed > > Cheers, Sergey > > >> regards, aki >> >> 2012/3/11 cogitate<[email protected]>: >>> >>> hi sergey : >>> any chance of the following test case for in transform reader? >>> the problem is there are two vendors who don't care about the contract >>> of >>> namespaces. >>> maybe {*}* can do "matches" instead of "equals"? >>> [ i am using cxf-2.5.2 ] >>> >>> it seems the namespaces the vendors generate may not even be specific.. >>> >>> from vendor - >>> <ns0:Echo_PayloadResponse xmlns:ns0="tns"><ns1:Payload >>> xmlns:ns1="None">Y</ns1:Payload></ns0:Echo_PayloadResponse> >>> >>> what we need - something like : >>> <ps1:Echo_PayloadResponse >>> >>> xmlns:ps1="http://schemas.w3c.org/W3C"><ps1:Payload>Y</ps1:Payload></ps1:Echo_PayloadResponse> >>> >>> thanks in advance, >>> -cogitate >>> >>> @Test >>> public void testSpecificNS() throws Exception >>> { >>> String input = "<ns0:Echo_PayloadResponse >>> xmlns:ns0=\"tns\"></ns0:Echo_PayloadResponse>"; >>> InputStream is = new ByteArrayInputStream(input.getBytes()); >>> XMLStreamReader reader = StaxUtils.createXMLStreamReader(is); >>> reader = new InTransformReader(reader, >>> >>> Collections.singletonMap("{*}*","{http://schemas.w3c.org/W3C}*"), >>> null, false); >>> ByteArrayOutputStream bos = new ByteArrayOutputStream(); >>> StaxUtils.copy(reader,bos); >>> String value = bos.toString(); >>> System.out.println("[input="+input+" output="+value+"]"); >>> //expect: [input=<ns0:Echo_PayloadResponse >>> xmlns:ns0="tns"></ns0:Echo_PayloadResponse> >>> output=<ps1:Echo_PayloadResponse >>> xmlns:ps1="http://schemas.w3c.org/W3C"/>] >>> assertTrue("<ps1:Echo_PayloadResponse >>> xmlns:ps1=\"http://schemas.w3c.org/W3C\"/>".equals(value)); >>> } >>> >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://cxf.547215.n5.nabble.com/InTransformReader-Test-possible-enhancement-tp5554151p5554151.html >>> Sent from the cxf-user mailing list archive at Nabble.com. > > >
