В этом примере аннотированная схема должна находится в
файле your_schema.xml. Как видно из синтаксиса, возможно создание
параметризированных запросов XPath. Параметр в запросе обозначается начальным
символом $.
Рассмотрим пример аннотированной схемы XDR, который
будет использоваться для запросов XPath. В результирующем документе будут
присутствовать имена, фамилии и адреса всех авторов:
Здесь используется аннотация relation для того, чтобы
указать, с какой таблицей будет связан элемент Authors. Дочерние элементы
наследуют связь с таблицей, указанной для родительского ElementType. Связывание
полей таблицы или представления (view) можно выполнять явно, с использованием
аннотации field. В данном примере для элементов AttributeType этого делать не
нужно, т.к. отображения на соответствующие поля выполняются автоматически.
Однако для дочерних элементов ElementType, которые по умолчанию связываются с
таблицами, такая аннотация может быть необходима. Наиболее часто используемые
аннотации приведены далее.
Теперь можно перейти к самому шаблону. Предположим, аннотированную схему вы сохранили под именем MySchema.xml.
ПРИМЕЧАНИЕ
IIS различает тип XML-документа только
на основе каталога, где он находится. Даже если мы не настроили специальным
образом IIS на исполнение схем, их лучше хранить в одном месте. Я рекомендую
хранить схемы и шаблоны в разных виртуальных каталогах. Например, template
для шаблонов, schema – для схем.
Вот так выглядит шаблон, выбирающий имена, фамилии и
адреса всех авторов:
Так как схемы XDR постепенно вытесняются схемами XSD, перепишем пример с использованием XSD.
ПРЕДУПРЕЖДЕНИЕ
Я полтора дня потерял, когда первый раз
пытался выполнить запрос XPath на XSD-схеме. ISAPI-расширение упорно выдавало ошибку «XPath: unable
to find /authors in the schema». В
конце концов, после непродолжительных консультаций с одним из участников
форума сайта www.sql.ru, проблема была решена. Суть ее в следующем: при
создании виртуального каталога я использовал оснастку mmc SQL IIS Admin.MSC, которая входит в стандартный комплект MS SQL Server’а и ничего не знает о
новых возможностях SQLXML 3.0. Новая оснастка лежит в %Program Files%SQLXML
3.0 и называется sqlisad3.msc. Ее можно запустить из меню Start->Programs->SQLXML
3.0->Configure IIS Support. Всегда пользуйтесь только ею.
Вот список основных отличий XDR от XSD[9], к которому
я очень часто обращаюсь: