我需要发送包含以下元素的XML:
<return>
<getrooms>true</getrooms>
<filters xmlns:a="http://some.com/xsd/atomicCondition" xmlns:c="http://some.com/xsd/complexCondition">
<city></city>
<country></country>
<c:condition>
<a:condition>
<fieldname>fieldName</fieldname>
<fieldtest>fieldTest</fieldtest>
<fieldvalues>
<fieldvalue>fieldValue</fieldvalue>
</fieldvalues>
</a:condition>
<operator>operator</operator>
<a:condition>
<fieldname>fieldName</fieldname>
<fieldtest>fieldTest</fieldtest>
<fieldvalues>
<fieldvalue>fieldValue</fieldvalue>
</fieldvalues>
</a:condition>
</c:condition>
</filters>
<resultsperpage></resultsperpage>
<page></page>
</return>
我很难使用Jsonix形成“c:condition”和“a:condition”Qname。两个Qname都包含一个前缀,但没有命名空间。
我目前的代码是:
{
type: 'element',
name: 'ccondition',
elementName: {
localPart: 'condition',
prefix: 'c',
namespaceURI: 'c'
},
typeInfo: 'DOXML.ComplexCondition'
},
这将产生以下结果:
<c:condition xmlns:c="c">
任何人都知道如何使用Jsonix生成所需的Qname - 没有namespaceURI的“c:condition”?
答案 0 :(得分:0)
在您的示例中,前缀c
实际上绑定到此行中的命名空间http://some.com/xsd/complexCondition
:
<filters xmlns:a="http://some.com/xsd/atomicCondition" xmlns:c="http://some.com/xsd/complexCondition">
前缀a
和c
都绑定到filters
元素范围内的非空名称空间。
所以你应该这样做:
{
type: 'element',
name: 'ccondition',
elementName: {
localPart: 'condition',
prefix: 'c',
namespaceURI: 'http://some.com/xsd/complexCondition'
},
typeInfo: 'DOXML.ComplexCondition'
}
我认为您应该可以使用namespaceURI: ''
映射到空命名空间,但如果我看到的话,这不是您需要的。