1

我有一个 XML Schema,我在 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 对象吗?我怎样才能做到这一点?

4

1 回答 1

1

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

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

或者

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

等等

于 2008-10-16T06:53:43.420 回答