способный иметь значение NULL и атрибуты элемента minOccurs XSD

Я иду назад и вперед с установкой элемента к minOccurs="0" и nillable="true".

Я читал эту статью, и теперь в моем WSDL я не уверен, если использование обоих стоит того. Статья дает хороший пример представления массивов, где Вам можно было бы вкрапить нулевые значения повсюду, поскольку это не может быть, покончили просто minOccurs="0". Теперь, конвенция, с которой я шел, состоит в том, что, если элемент не является дополнительным, это не способно иметь значение NULL. Различие насколько я понимаю, и где мой вопрос находится, то, что путем применения способного иметь значение NULL свойства к элементу, я говорю, что можно передать в XSD, эквивалентном из Нулевого значения? Иначе, элемент без способного иметь значение NULL свойства, должен иметь значение в ограничении, установленном для него?

35
задан informatik01 28 August 2013 в 21:28
поделиться

1 ответ

Вам необходимо решить, думаете ли вы об XML как об XML или о XML как о способе передачи Java (или другого) объекта отсюда туда.

В XML, nillable допускает построение в качестве индикатора явно отсутствующего значения, например SQL NULL. Это семантически отличается от просто . И оба они вообще ни от чего не отличаются. Итак, глядя на XML, вы должны различать четыре случая:

<!-- nothing -->
<myElement attr1='true'>some content</myElement>
<myElement/>
<myElement xsi:nil='true'/>

Если, с другой стороны, вас в первую очередь интересует Java - возможно, потому, что вы используете SOAP, то вам нужно подумать о том, как объект Java отображает обратно и т. д.

Для любого элемента Java, наследуемого от Object, JAXB и другим технологиям отображения требуется способ работы с нулевыми значениями. Nillable - способ сделать это. Если вы запретите nillable для чего-то, что может быть объектом, наборы инструментов будут раздражающе использовать массив, чтобы найти способ представления отсутствия.

С другой стороны, если у вас есть массив, имейте в виду, что сам массив является объектом и может иметь значение NULL. Итак, каждый инструментарий должен отличать массив с нулевым элементом от нулевого.

С другой стороны, если у вас есть примитивный тип (например, int ), nillable приведет к проблемам, так как нет отображения xsi: nil на примитив.

каждый инструментарий должен отличать массив с нулевым элементом от нулевого.

С другой стороны, если у вас есть примитивный тип (например, int ), nillable приведет к проблемам, поскольку нет никакого отображения из xsi: nil в примитив.

каждый инструментарий должен отличать массив с нулевым элементом от нулевого.

С другой стороны, если у вас есть примитивный тип (например, int ), nillable приведет к проблемам, поскольку нет никакого отображения из xsi: nil в примитив.

56
ответ дан 27 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: