У меня есть схема ввода (input_schema) как таковая:
...
<ContactNo>
<Contact_1>
<Contact-Type>MOBILE|HOME|WORK</Contact-Type>
<Contact-SubType>UK|OVERSEAS</Contact-SubType>
<Contact-CountyCode>44</Contact-CountyCode>
<Contact-No>01443788800</Contact-No>
<Contact-Ex>85000</Contact-Ex>
</Contact_1>
<Contact_2>
<Contact-Type>MOBILE|HOME|WORK</Contact-Type>
<Contact-SubType>UK|OVERSEAS</Contact-SubType>
<Contact-CountyCode>44</Contact-CountyCode>
<Contact-No>01443788800</Contact-No>
<Contact-Ex>85000</Contact-Ex>
</Contact_2>
<Contact_3>
<Contact-Type>MOBILE|HOME|WORK</Contact-Type>
<Contact-SubType>UK|OVERSEAS</Contact-SubType>
<Contact-CountyCode>44</Contact-CountyCode>
<Contact-No>01443788800</Contact-No>
<Contact-Ex>85000</Contact-Ex>
</Contact_3>
...
</ContactNo>
...
Каждый из дочерних узлов ContactNo может встречаться только один раз (один Contact_1, один Contact_2 и один Contact_3). Мне нужно применить некоторую бизнес-логику для Contact-Type, SubType, чтобы построить Contact-No, но мой вопрос заключается в том, как лучше всего сопоставить эту структуру с соответствующими узлами схемы output_put (эти узлы не более 20), но могут только иметь максимум три на основе структуры схемы input_schema ниже:
...
<HomeTelephone>
<WorkTelephone>
<MobileTelephone>
...
Пример ввода/вывода
...
<ContactNo>
<Contact_1>
<Contact-Type>HOME</Contact-Type>
<Contact-SubType>UK</Contact-SubType>
<Contact-CountyCode />
<Contact-No>01443788800</Contact-No>
<Contact-Ex/>
</Contact_1>
<Contact_2>
<Contact-Type>WORK</Contact-Type>
<Contact-SubType />
<Contact-CountyCode />
<Contact-No>01743788800</Contact-No>
<Contact-Ex>86000</Contact-Ex>
</Contact_2>
<Contact_3>
<Contact-Type>WORK</Contact-Type>
<Contact-SubType>UK</Contact-SubType>
<Contact-CountyCode />
<Contact-No>01443788800</Contact-No>
<Contact-Ex>85000</Contact-Ex>
</Contact_3>
...
</ContactNo>
...
...
<HomeTelephone>01443788800</HomeTelephone>
<WorkTelephone>0174378880086000</WorkTelephone>
<WorkTelephone>0144378880085000</WorkTelephone>
<MobileTelephone />
...
В настоящее время я проверяю тип контакта (= Home), а затем сопоставляю вывод через средство отображения значений с функтоидом сценария для подтверждения данных перед отображением вывода. Кажется, это вызывает дублирование узлов.