В этом примере аннотированная схема должна находится в
файле your_schema.xml. Как видно из синтаксиса, возможно создание
параметризированных запросов XPath. Параметр в запросе обозначается начальным
символом $.
Рассмотрим пример аннотированной схемы XDR, который
будет использоваться для запросов XPath. В результирующем документе будут
присутствовать имена, фамилии и адреса всех авторов:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType
name="address" />
<ElementType
name="Authors" sql:relation="Authors">
<AttributeType
name="au_fname" dt:type="string" />
<AttributeType
name="au_lname" dt:type="string" />
<attribute
type="au_fname"/>
<attribute
type="au_lname" />
<element
type="address" sql:field="address"/>
</ElementType>
</Schema>
|
Здесь используется аннотация relation для того, чтобы
указать, с какой таблицей будет связан элемент Authors. Дочерние элементы
наследуют связь с таблицей, указанной для родительского ElementType. Связывание
полей таблицы или представления (view) можно выполнять явно, с использованием
аннотации field. В данном примере для элементов AttributeType этого делать не
нужно, т.к. отображения на соответствующие поля выполняются автоматически.
Однако для дочерних элементов ElementType, которые по умолчанию связываются с
таблицами, такая аннотация может быть необходима. Наиболее часто используемые
аннотации приведены далее.
Теперь можно перейти к самому шаблону. Предположим, аннотированную схему вы сохранили под именем MySchema.xml.
ПРИМЕЧАНИЕ
IIS различает тип XML-документа только
на основе каталога, где он находится. Даже если мы не настроили специальным
образом IIS на исполнение схем, их лучше хранить в одном месте. Я рекомендую
хранить схемы и шаблоны в разных виртуальных каталогах. Например, template
для шаблонов, schema – для схем.
|
Вот так выглядит шаблон, выбирающий имена, фамилии и
адреса всех авторов:
<my_root
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query
mapping-schema="../Schema/MySchema.xml">
/Authors
</sql:xpath-query>
</my_root>
|
Так как схемы 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], к которому
я очень часто обращаюсь:
XDR
|
XSD
|
Schema
|
schema
|
ElementType
|
element
|
AttributeType
|
attribute
|
attribute
|
none
|
С учетом этого схема будет выглядеть так:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element
name="authors" sql:relation="authors">
<xsd:complexType>
<xsd:attribute
name="au_fname" sql:field="au_fname" />
<xsd:attribute
name="au_lname" sql:field="au_lname" />
<xsd:attribute
name="address" sql:field="address" />
</xsd:complexType>
</xsd:element>
</xsd:schema> Рекомендуем скачать другие рефераты по теме: права человека реферат, реферат влияние.
Предыдущая страница реферата | 17
18
19
20
21
22
23
24
25
26
27 | Следующая страница реферата
|
|