gpt4 book ai didi

namespaces - jsonix - 如何创建一个带前缀但不带命名空间的元素?

转载 作者:行者123 更新时间:2023-12-04 16:57:18 25 4
gpt4 key购买 nike

我需要发送包含以下元素的 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 - “c:condition” 没有 namespaceURI?

最佳答案

在您的示例中,前缀 c实际上绑定(bind)到命名空间 http://some.com/xsd/complexCondition在这一行:
<filters xmlns:a="http://some.com/xsd/atomicCondition" xmlns:c="http://some.com/xsd/complexCondition">

你俩都加前缀 ac绑定(bind)到 filters 范围内的非空命名空间元素。

所以你实际上应该这样做:
{
type: 'element',
name: 'ccondition',
elementName: {
localPart: 'condition',
prefix: 'c',
namespaceURI: 'http://some.com/xsd/complexCondition'
},
typeInfo: 'DOXML.ComplexCondition'
}

我认为您应该能够使用 namespaceURI: '' 映射到空命名空间,但是如果我没看错的话,这不是您的情况所需要的。

关于namespaces - jsonix - 如何创建一个带前缀但不带命名空间的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com