Здесь явно указаны аннотации, позволяющие связать
XML-элементы с таблицей authors и соответствующими полями. В данном случае все
они не обязательны, т. к. SQLXML может вывести связи из названий узлов. Вот
пример, где аннотации действительно необходимы. Для разнообразия адрес и
фамилия вынесены в отдельные элементы:
<?xml
version="1.0" encoding="windows-1251" ?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Авторы" sql:relation="authors">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Фамилия" sql:field="au_lname"/>
<xsd:element name="Адрес" sql:field="address" />
</xsd:sequence>
<xsd:attribute name="Имя" sql:field="au_fname"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
|
Если схема находится в виртуальном каталоге, тип
которого schema, вы можете выполнять XPath-запросы, непосредственно указывая их
в URL. Результирующий документ может не иметь корневого элемента, поэтому не
забывайте указывать параметр root.
http://server/server_pubs/schema/xsd_map_schema.xml/Авторы?root=root
|
Вот другие аннотации, часто используемые в схемах:
relationship – элемент, обозначающий связь с
соответствующими друг другу первичными и внешними ключами. Используется для
построения иерархических XML-документов.
is-constant – указывает, что соответствующий элемент
не связывается с таблицей или колонкой базы данных.
map-field – булева переменная, принимающая значение 0
или 1. Значение 0 указывает, что соответствующий элемент не будет
присутствовать в результирующем документе. С выходом SQLXML 3.0 аннотация была
переименована в mapped.
limit-field и limit-value – предназначены для указания
поля и его значения, по которым будет фильтроваться запрос к базе данных.
Результат использования этих аннотаций аналогичен ограничению результирующего
набора строк с помощью оператора WHERE.
use-cdata – указывает, что соответствующий XML-узел
будет представлен в секции CDATA результирующего документа. Узел должен быть
связан с полем таблицы или представления и не может применяться совместно с
url-encode или ID, IDREF, IDREFS, NMTOKEN и NMTOKENS.
hide – булева переменная, принимающая значение 0 или
1. Указывает на то, что соответствующий XML-узел будет скрыт (значение 0) в
результирующем XML-документе, однако может быть использован в запросе XPath. Не
путайте её с аннотацией mapped. Различие в том, что при помощи mapped XML-узел
совсем исключается из документа, так что не может быть использован в запросе
XPath.
Рассмотрим пример, демонстрирующий работу некоторых из
перечисленных аннотаций. В разделе FOR XML EXPLICIT был составлен иерархический
список издательств и служащих, которые в них работают. Попробуем получить такой
же XML-документ с помощью аннотированной схемы:
<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship
name="PubsEmployees"
parent="publishers" parent-key="pub_id"
child="employee"
child-key="pub_id" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element
name="pubs" sql:relation="publishers">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="employee"
sql:relation="employee"
sql:relationship="PubsEmployees" >
<xsd:complexType>
<xsd:attribute
name="First_Name" sql:field="fname"
type="xsd:string" />
<xsd:attribute
name="Last_Name" sql:field="lname"
type="xsd:string" />
<xsd:attribute
name="minit" sql:field="minit"
type="xsd:string" sql:hide="1" />
</xsd:complexType>
</xsd:element>
</xsd:sequence> Рекомендуем скачать другие рефераты по теме: права человека реферат, реферат влияние.
Предыдущая страница реферата | 18
19
20
21
22
23
24
25
26
27
28 | Следующая страница реферата
|
|