Мне нужно записать либо в элемент ND, либо в элемент данных. Для этого я использую фильтр, в котором при обнаружении поля ND он создает элемент ND и записывает код ND, а если это не данные ND, он создает связанный тег XML и записывает туда данные. Однако, если у меня есть что-либо, связанное с тегом элемента ND (соединение с узлом), оно создает пустой самозакрывающийся тег (например, <NoDataOptn/>
). Но что-то должно быть подключено, иначе он никогда не сможет писать туда ND-коды.
Например, ниже (это вывод XML-кода из MapForce), он правильно помещает дату в PoolAddtnDt, но записывает пустое самозакрытиетег для параметра без данных под датой. Когда он пишет ND-теги, он работает отлично (см. RpDt, он не создает пустой тег для даты).
Есть ли способ удалить все пустые теги, сгенерированные таким образом? Или подавить вывод узлов.
Я просмотрел файл xsd и попытался установить для minOccurs значение 0, а также nillable - значение true.
<ActvtyDtDtls>
<PoolAddtnDt>
<Dt>2008-09-01</Dt>
<NoDataOptn/> - i want all these empty tags gone
</PoolAddtnDt>
<RpDt>
<NoDataOptn>
<NoData>ND5</NoData>
</NoDataOptn>
</RpDt>
</ActvtyDtDtls>