我有一个CRM实体XML消息如下:
<c:KeyValuePairOfstringanyType xmlns:c="ns1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" >
....
<c:value i:type="**b:AliasedValue**" **xmlns:b="ns3"**>
SomethingHere...
</c:value>
</c:KeyValuePairOfstringanyType>
然后我将它反序列化为一个对象并序列化为xml
我得到了
<c:KeyValuePairOfstringanyType xmlns:c="ns1" xmlns:i="http://www.w3.org/2001/XMLSchema- instance" >
<c:value i:type="b:AliasedValue" >
SomethingHere...
</c:value>
</c:KeyValuePairOfstringanyType>
我松开了xmlns:b的定义。 知道为什么吗?
答案 0 :(得分:0)
四十二是正确的:属性值不带任何默认语义,因此xml处理器不会识别名称空间使用情况。
如果您想引用b
- 属性中的某些i:type
- 数据,我使用映射元素将c:value
与(假设的)b:value
相关联,即:
<mapping xml:id="idXY'/>
...
<c:value c:ref="idXY">...</c:value>
...
<b:value b:ref="idXY">...</b:value>
...
...您将_:ref
声明为相应xml架构中的IDREF属性。您可能需要调整1:n- / m:n - 映射的设计,例如:将引荐来源作为_:value
的子元素。
最好的问候,carsten