2.9 Значения Nil

Lawnmower - один из продуктов в заказе на покупку, перечисленный в po.xml, не имеет элемента shipDate. В пределах контекста нашего сценария, автор схемы может преднамеренно пропустить указание элементов item, которые еще не отправлены. Вообще пропуск элемента не имеет никакого особого смысла. Это может лишь указывать, что информация неизвестна, неподходящая, или есть какая-либо другая причина, по которой элемент может отсутствовать. Иногда предпочтительнее представить сведения о неотправленном продукте item (неизвестную информацию, или информацию явно с элементом не связанную), чем пропустить элемент. Например, желательно указывать значение "null" для элементов, которые посылаются или извлекаются из реляционных баз данных. Для таких случаев XML Schema представляет механизм nil, который дает возможность элементу появляться как с нулевым, так и ненулевым значением.

Механизм Nil XML Schema подразумевает нулевое значение. В реальности же никакого нулевого значения, которое появляется как содержимое элемента, нет. Вместо этого есть атрибут, указывающий, что содержимое элемента - nil. Для иллюстрации мы изменим объявления элемента shipDate так, чтобы нулевые значения могли быть показаны:

<xsd:element name=”shipDate” type=”xsd:date” nillable=”true”/>

Теперь явно представим shipDate с нулевым значением в экземпляре документа. Для этого установим атрибут nil (из пространства имен XML Schema) равный true:

<shipDate xsi:nil=”true”></shipDate>

Атрибут nil определен как часть пространства имен XML Schema http://www.w3.org/2001/XMLSchema-instance для экземпляров документов. Поэтому он должен появляться в экземпляре документа с префиксом xsi: , который связывает его с этим пространством имен. (Как и префикс xsd:, префикс xsi: используется в соответствии с соглашением при описании пространства имен.) Отметим, что nil механизм применяется только для значений элементов. Со значениями атрибутов он не применяется. Элемент с xsi:nil="true"  может не иметь элементов содержания, но, тем не менее, включать атрибуты.

 

Сайт создан в системе uCoz