2.9 Значения Nil

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

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

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

И явно представим, что shipDate имеет нулевое значение в документе примера, для этого мы установим атрибут nil (в примере из пространства имен XML Schema) в истину:

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

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

 

Используются технологии uCoz