XML в JavaScript

У меня есть 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? Как я могу этого добиться?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
272
1

Ответы 1

Поскольку typeSpecific является сложным типом с одним выбором, тогда свойство typeSpecificSetting будет объектом, содержащим одно свойство, которое будет одним из testATYPEField, testBTYPEField, ...

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

ИЛИ ЖЕ

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

и т.п.

Другие вопросы по теме