2008-10-16 7 views
1

J'ai un schéma XML que je suis en train d'analyser en JavaScript, puis je l'empaquette comme un objet à passer à l'un de mes serveurs principaux.XML en JavaScript

Le schéma est comme

<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> 

Je lis le schéma XML et ensuite essayer de construire mon objet de requête.

request = { 
    testField: t1, 
    typeSpecificSetting: t2 
} 

Comment puis-je construire l'objet de demande de choix? Selon le type, je dois emballer des objets ATYPE ou BTYPE ou CTYPE ou DTYPE? Comment puis-je atteindre cet objectif?

Répondre

1

Depuis typeSpecific est un type complexe avec un seul choix propriété typeSpecificSetting sera alors un objet qui contient une propriété qui sera l'un des testATYPEField, testBTYPEField, ...

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

OU

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

etc.