1

JavaScript で解析している XML スキーマがあり、それをオブジェクトとしてパックして、バックエンド サーバーの 1 つに渡します。

スキーマは次のようになります

<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 は 1 つの選択肢しかない複合型であるため、typeSpecificSetting プロパティは、testATYPEField、testBTYPEField、... のいずれかになる 1 つのプロパティを含むオブジェクトになります。

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

また

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

于 2008-10-16T06:53:43.420 に答える