我正在使用camel將消息路由到Web服務。消息類似於XML,但沒有名稱空間/前綴。現在的問題是Web服務期望XML,但是每個元素都有適當的名稱空間。因此,作爲一個例子:將名稱空間和前綴添加到xml
<a>
<b>value_b</b>
<c>value_c</c>
</a>
就是即時得到的,而是需要被髮送出去應該是這樣的
<a xmlns:n1="http://yadda-ns1.com" xmlns:n2="http://yadda-ns2.com">
<ns1:b>value_b</ns1:b>
<ns2:c>value_c</ns2:c>
</a>
,如果它是將剛使用我的所有要素相同的命名空間是什麼一個xslt來添加它。但它大多是2或3個不同的命名空間。
現在是否可以在我的駱駝路線中添加命名空間?我有想法使用jaxb從「不完整的」XML到「完整的」(使用XML),這是否會起作用?我正在嘗試這個,但還沒有成功。
還是有人有不同的想法?我的項目中也有XSD和JAXB註釋類,因此這些也可以使用,並且消息與缺少的命名空間不同。
問候
托馬斯
嘗試使用相同XSD用於輸出。然後,接收請求時名稱空間已經準備就緒。另一種選擇是將請求映射到響應。我總是使用XmlBeans從XSD生成一個Jar。 –
駱駝路由即時通訊使用,你可以認爲它是一種舊系統的適配器(通過tcp發送沒有命名空間的XML)和一個新系統(通過Web服務SOAP接收正確的XML)舊和新系統不能改變。 所以我必須在我的適配器/駱駝路線中解決這個問題。 編輯(也編輯了與該信息的問題):消息是相同的,除了名稱空間 – horus
「*如果它是相同的命名空間在所有元素上,我只是用一個xslt來添加它,但其大多數是2或3不同的名稱空間。「爲什麼你不使用XSLT? (如果你不想使用它,爲什麼你的問題被標記爲'xslt'?) –