我有一个XML模式,我正在用JavaScript进行解析,然后将其打包为一个对象以传递到我的后端服务器之一。

架构就像

<complexType name='Test'>
    <sequence>
        <element name='testField' type='string'/>
        <element name='typeSpecificSetting' type='tns:TypeSpecific'/>
    </sequence>
</complexType>
<complexType name="TypeSpecific">
    <choice>
         <element name='A' type='tns:ATYPE'/>
         <element name='B' type='tns:BTYPE'/>
         <element name='C' type='tns:CTYPE'/>
         <element name='D' type='tns:DTYPE'/>
    </choice>
</complexType>

<complexType name="ATYPE">
    <element name='testATYPEField' type='string'/>
</complexType>

<complexType name="BTYPE">
     <element name='testBTYPEField' type='string'/>
</complexType>


我正在阅读xml架构,然后尝试构建我的请求对象。

request = {
    testField:  t1,
    typeSpecificSetting: t2
}


如何构造供选择的请求对象?根据类型,我必须打包ATYPE或BTYPE还是CTYPE或DTYPE对象?我该如何实现?

最佳答案

由于typeSpecific是只有一个选项的复杂类型,因此typeSpecificSetting属性将是一个对象,其中包含一个属性,该属性将是testATYPEField,testBTYPEField等...

 request = {
     testField: t1
     typeSpecificSetting: {
         A: {
             testATYPEField: t2
         }
     }
 }


要么

 request = {
     testField: t1
     typeSpecificSetting: {
         B: {
             testBTYPEField: t2
         }
     }
 }


等等

关于javascript - JavaScript中的XML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/207193/

10-12 12:24
查看更多