Типы
После публикации нашей предыдущей статьи поменялись некоторые обозначения типов. Вместо того чтобы воспользоваться BNF, ограничимся рядом примеров:
xs:integer? | Последовательность из одного или более целых значений |
element()+ | Последовательность из одного или более элементов |
node()* | Последовательность из одного или более узлов |
item()+ | Один или несколько айтемов (узлов или атомарных значений) |
item()+ | Атрибут (одиночный) с любым именем и типом |
element (myco:address) |
Элемент с именем myco:address |
element (*, myco:addrType) |
Элемент с любым именем и типом myco:addrType |
schema-element(zip) | Элемент с именем zip (или в группе постановок с заголовком zip) с аннотацией типа, соответствующей типу элемента zip |
Обозначение типа можно использовать следующим образом: //employee [* instance of element (*, myco:addrType) ]
В ранних версиях XQuery допускались ссылки на элементы и атрибуты, локально объявленные в схеме, но эта возможность была исключена.