nullable

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

nullable

Сообщение vg »

не догоняю немного ... как такое может быть:

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

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

Подскажите, плз. Спасибо.
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

Не совсем понятно, что непонятно...
Хотя...
Наводящий вопрос: как будет выглядеть element NameValue если его значение пустая строка?
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Я очевидно ошибался, думая, что раз нет явного описания nullable = "true" (по дефолт nullable = "false"), то элемент документа не может иметь "нулевое" значение (в данном случай строка нулевой длины).
Поясните, пожалуйста, смысл атрибута nullable.
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

null и строка нулевоц длины, это все таки немного разные вещи.
Пустая строка, это все таки строка, только без символов. О null мы вообще ничего не можем сказать, значение не определно.
С этим вообще много казусов в разном софте.
ura
Житель
Сообщения: 915
Зарегистрирован: 09 мар 2003, 22:46

Сообщение ura »

А ты попробуй провалидировать этот документ согласно этой схемы.
nullable может означать обязательность элемента в xml документе.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение 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.
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение 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.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

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