Страница 1 из 1

nullable

Добавлено: 10 янв 2006, 19:51
vg
не догоняю немного ... как такое может быть:

для схемы
<xs:element name="NameValue" type="xs:string">
</xs:element>

имеем в документе
<SomeName >
<NameValue/>
</SomeName>

Подскажите, плз. Спасибо.

Добавлено: 10 янв 2006, 20:48
Marmot
Не совсем понятно, что непонятно...
Хотя...
Наводящий вопрос: как будет выглядеть element NameValue если его значение пустая строка?

Добавлено: 11 янв 2006, 16:27
vg
Я очевидно ошибался, думая, что раз нет явного описания nullable = "true" (по дефолт nullable = "false"), то элемент документа не может иметь "нулевое" значение (в данном случай строка нулевой длины).
Поясните, пожалуйста, смысл атрибута nullable.

Добавлено: 11 янв 2006, 18:37
CdR
null и строка нулевоц длины, это все таки немного разные вещи.
Пустая строка, это все таки строка, только без символов. О null мы вообще ничего не можем сказать, значение не определно.
С этим вообще много казусов в разном софте.

Добавлено: 11 янв 2006, 22:12
ura
А ты попробуй провалидировать этот документ согласно этой схемы.
nullable может означать обязательность элемента в xml документе.

Добавлено: 12 янв 2006, 05:57
vg
ura писал(а):А ты попробуй провалидировать этот документ согласно этой схемы.
nullable может означать обязательность элемента в xml документе.
An element is optional if the value of the minOccurs attribute in its declaration is 0. In general, an element is required to appear when the value of minOccurs is 1 or more. The maximum number of times an element may appear is determined by the value of a maxOccurs attribute in its declaration.

Добавлено: 12 янв 2006, 06:51
Marmot
Во-первых: не nullable а nillable

Во-вторых: идём вот сюда http://www.w3.org/TR/xmlschema-1/ и читаем:
"If {nillable} is true, then an element may also be ·valid· if it carries the namespace qualified attribute with [local name] nil from namespace http://www.w3.org/2001/XMLSchema-instance and value true (see xsi:nil (§2.6.2)) even if it has no text or element content despite a {content type} which would otherwise require content. Formal details of element ·validation· are described in Element Locally Valid (Element) (§3.3.4)."

В-третьих: всё это безобразие придумано в основном для отображения списков с null элементами, например {1,2,null,4} будет выглядеть вот так:
<num>1</num>
<num>2</num>
<num xsi:nil="true"/>
<num>4</num>

И в-четвертых 2vg et al,учитесь использовать google и RTFM.

Добавлено: 12 янв 2006, 17:08
vg
Marmot писал(а):Во-первых: ... И в-четвертых 2vg et al,учитесь использовать google и RTFM.
Ну вот теперь понятнее про списки стало, где это используется. :D
Спасибо.