Microsoft SQL Server 2000: підтримка XML

Зміст



У цій статті ми ознайомимося з деякими новими можливостями Microsoft SQL Server 2000, пов'язаними з підтримкою мови XML. Ми розглянемо використання SQL-запитів через URL, використання XML-шаблонів, XDR-схем і XPath-запитів, а також наведемо деякі приклади роботи з механізмом updategrams, що дозволяє застосовувати XML-шаблони для вставки, видалення і оновлення даних.


Дана стаття має на увазі, що читачі знайомі з XML, XSL і SQL-запитами.


Настроювання Web-сервера


Перш ніж ми зможемо почати використання підтримки XML у Microsoft SQL Server 2000, нам необхідно зробити ряд настройок Web-сервера. Для цього слід виконати команду Programs / Microsoft SQL Server / Configure SQL XML Support in IIS і вказати ряд параметрів в панелі IIS Virtual Directory Management for SQL Server.


Клацніть мишею по елементу Default Web Site і виконайте команду New / Virtual Directory. З'явиться діалогова панель New Virtual Directory Properties, що складається з ряду вкладок. У табл. 1 показані налаштування на комп'ютері автора.


URL-запити


Використовуючи створений вище віртуальний каталог, ми можемо виконувати запити до бази даних Northwind, поміщаючи їх безпосередньо в URL. Щоб перевірити цю можливість в дії, запустимо браузер Microsoft Internet Explorer і введемо в рядку Address наступний URL:


http://terra/northwind?sql= _
SELECT+*+FROM+Customers+FOR+XML+AUTO&root=ROOT


Результат (у вигляді XML) відображається в браузері так, як показано на рис. 1.


Розглянемо зазначений нами адресу більш докладно. Він складається з наступних частин:



SELECT+*+FROM+Customers+FOR+XML+AUTO&root=ROOT


Цей запит практично не відрізняється від звичайного запиту, виконуваного нами в коді або в Query Analyzer. Зауважимо, що прогалини у ньому замінені на знак «+» (ця вимога форматування URL) і в кінці запиту добавлена директива FOR XML AUTO. Власне, ця директива і вказує SQL Server на необхідність генерації XML замість звичайного набору даних. Наш URL-запит завершується завданням кореневого елемента XML-документа – Це необхідно в тих випадках, коли ми використовуємо директиву FOR XML AUTO і отримуємо більше однієї «записи».


Як видно з наведеного прикладу, при використанні директиви FOR XML AUTO ми отримуємо XML-документ, де значення полів представлені у вигляді атрибутів елемента, ім'я якого відповідає імені запитуваної таблиці:


<Customers
CustomerID=”ALFKI”
CompanyName=”Alfreds Futterkiste”
ContactName=”Maria Anders”
ContactTitle=”Sales Representative”
Address=”Obere Str. 57″
City=”Berlin”
PostalCode=”12209″
Country=”Germany”
Phone=”030-0074321″
Fax=”030-0076545″
/>


Щоб отримати XML-документ, в якому значення полів представлені дочірніми елементами, слід використовувати ключове слово Elements:


http://terra/northwind?sql=SELECT+ * + FROM + Customers + FOR + XML + AUTO, ELEMENTS & root = Northwind


Результат виконання цього запиту зображений на рис. 2.


Одна із записів у таблиці Customers буде представлена у вигляді наступного XML-елементу і його дочірніх елементів:


<Customers>
<CustomerID>ALFKI</CustomerID>
<CompanyName>Alfreds Futterkiste</CompanyName>
<ContactName>Maria Anders</ContactName>
<ContactTitle>Sales Representative</ContactTitle>
<Address>Obere Str. 57</Address>
<City>Berlin</City>
<PostalCode>12209</PostalCode>
<Country>Germany</Country>
<Phone>030-0074321</Phone>
<Fax>030-0076545</Fax>
</Customers>


Відзначимо, що директива FOR XML AUTO створює структурований XML-документ в тих випадках, коли використовуються більш складні запити. Наприклад, запит:


SELECT Customers.CustomerID, Customers.ContactName,
Orders.OrderID, Orders.CustomerID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID


повертає набір записів з двох таблиць, що містить ідентифікатори всіх замовлень, виконаних усіма клієнтами. Фрагмент такого набору записів показаний в табл. 2.


Виконавши цей самий запит з використанням директиви FOR XML AUTO, ми отримаємо структурований XML-документ, показаний на рис. 3.


<Customers CustomerID="ALFKI" ContactName="Maria Anders">
<Orders OrderID=”10643″ CustomerID=”ALFKI”/>
<Orders OrderID=”10692″ CustomerID=”ALFKI”/>
<Orders OrderID=”10702″ CustomerID=”ALFKI”/>
<Orders OrderID=”10835″ CustomerID=”ALFKI”/>
<Orders OrderID=”10952″ CustomerID=”ALFKI”/>
<Orders OrderID=”11011″ CustomerID=”ALFKI”/>
</Customers>
<Customers CustomerID=”ANATR” ContactName=”Ana Trujillo”>
<Orders OrderID=”10308″ CustomerID=”ANATR”/>
<Orders OrderID=”10625″ CustomerID=”ANATR”/>
<Orders OrderID=”10759″ CustomerID=”ANATR”/>
<Orders OrderID=”10926″ CustomerID=”ANATR”/>
</Customers>


Підтримка XML в Microsoft SQL Server 2000 не обмежується можливістю виконання простих URL-запитів. Крім цього ми можемо використовувати збережені процедури і XML-шаблони. Ці теми ми розглянемо в наступних розділах.


Використання збережених процедур


Запустимо Query Analyzer і введемо код, який визначає збережену процедуру sp_GetXML, що повертає дані про клієнта, ім'я якого задано першою літерою:


IF EXISTS (SELECT name FROM sysobjects
WHERE name=”sp_GetXML” AND type=”P”)
DROP PROCEDURE sp_getXML
GO

CREATE PROCEDURE sp_GetXML(
@CID varchar(5)
)
AS
BEGIN
SELECT CustomerID, CompanyName, ContactName
FROM Customers
WHERE CustomerID LIKE @CID + “%”
FOR XML AUTO
END


Як і у випадку з розглянутими вище SQL-запитами, ми використовуємо директиву FOR XML AUTO для вказівки SQL Server на те, що ми хочемо отримати XML-документ. Щоб виконати збережену процедуру в URL-запиті, необхідно вказати в браузері наступну адресу (рис. 4):


http://terra/northwind?sql=exec+sp_GetXML+”A”&root=Northwind


Якщо ж нам необхідний більш структурований XML-документ, значення полів в якому зберігаються як атрибути, в директиві FOR XML AUTO необхідно додати ключове слово Elements. У результаті ми отримаємо документ, показаний на рис. 5.


Відзначимо, що використання збережених процедур більш переважно безпосередньою вказівкою SQL-запиту в URL. У першу чергу з міркувань безпеки, в другу – з точки зору універсальності коду. Як видно в останньому прикладі, для зміни XML-документа достатньо змінити лише код збереженої процедури – сам URL-запит залишається таким самим. Втім, як тільки ми розповімо, що ту чи іншу базу даних можна запитувати через URL, кому-небудь обов'язково захочеться виконати команди INSERT, UPDATE або DELETE …


Використання XML-шаблонів


Щоб повністю убезпечити нашу базу даних від непередбаченої активності, але зберегти при цьому можливість генерації XML-документів, ми повинні використовувати XML-шаблони. Ідея використання даних шаблонів полягає в тому, що ми поміщаємо SQL-запит у XML-документ і забороняємо виконання сервером запитів, що знаходяться в URL. Для цього необхідно відключити опцію Allow URL Queries на вкладці Settings у панелі New Virtual Directory Properties.


Потім слід перейти на вкладку Virtual Names і задати новий каталог – у нашому прикладі це буде каталог Templates типу template, що знаходиться у фізичному каталозі C: InetpubNorthwindTemplates.


Тепер ми готові приступити до використання XML-шаблонів. Почнемо зі створення шаблону, в якому скористаємося написаним нами раніше SQL-шаблоном:


SELECT Customers.CustomerID, Customers.ContactName,
Orders.OrderID, Orders.CustomerID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
XML-шаблон для виконання цього запиту буде виглядати так:
<ROOT xmlns:sql=”urn:schemas-microsoft-com:xml-sql”>
<sql:query>
SELECT Customers.CustomerID, Customers.ContactName,
Orders.OrderID, Orders.CustomerID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
FOR XML AUTO
</sql:query>
</ROOT>


Виділеним шрифтом показані відмінності між звичайним SQL-запитом і XML-шаблоном на його основі. У цьому XML-документі ми використовуємо простір імен sql (urn: schemas-microsoft-com: xml-sql) і елемент query даного простору імен. Для виконання такого шаблону та отримання XML-документа необхідно вказати ім'я шаблону в URL (шаблон знаходиться у файлі LIST1.XML в підкаталозі Templates):


http://terra/northwind/templates/list1.xml


Результат виконання цього запиту буде точно таким же, що і при використанні SQL-запиту в URL, але сам запит базується на XML-шаблоні. Як і у випадку з збереженими процедурами, ми можемо змінити текст шаблону, не міняючи самого URL-запиту. Наприклад, якщо ми захочемо структурувати XML-документ та додати ключове слово Elements, ми повинні зробити це в XML-шаблоні.


XML-шаблони мають ще одну перевагу в порівнянні зі звичайними SQL-запитами в URL і використанням збережених процедур: у шаблонах ми можемо вказати XSL-шаблон і таким чином замість XML-отримувати, наприклад, HTML-документи, текстові документи і т.п. Нижче ми розглянемо приклад використання XML-і XSL-шаблонів для генерації HTML-документів.


Спочатку створимо ще один XML-шаблон, цього разу більш простий, ніж ми розглядали вище. Ось текст цього шаблону:


<ROOT xmlns:sql=”urn:schemas-microsoft-com:xml-sql”>
<sql:query>
SELECT FirstName, LastName, Title, Notes
FROM Employees
FOR XML AUTO
</sql:query>
</ROOT>


Збережемо цей шаблон у файлі з ім'ям LIST2.XML і виконаємо його. Як і слід було очікувати, ми отримуємо XML-документ. Для того щоб перетворити його в HTML-документ, необхідно створити XSL-шаблон. У нашому прикладі ми будемо відображати дані про кожного співробітника у вигляді одного ряду в таблиці. Ось текст XSL-шаблону:


<?xml version=”1.0″ encoding=”UTF-8″?>
<xsl:stylesheet xmlns:xsl=”http://www.w3.org/TR/WD-xsl”
version=”1.0″>
<xsl:template match=”*”>
<xsl:apply-templates />
</xsl:template>
<xsl:template match=”Employees”>
<TR>
<TD><xsl:value-of select=”@FirstName” /></TD>
<TD><xsl:value-of select=”@LastName” /></TD>
<TD><xsl:value-of select=”@Title” /></TD>
<TD><xsl:value-of select=”@Notes” /></TD>
</TR>
</xsl:template>
<xsl:template match=”/”>
<HTML>
<BODY>
<TABLE BORDER=”1″>
<TR>
<TH COLSPAN=”4″>Employees</TH>
</TR>
<xsl:apply-templates select=”ROOT” />
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>


Для того щоб вказати використовуваний XSL-шаблон, необхідно змінити перший рядок описаного вище XML-шаблону; зміни показані виділеним шрифтом.


<ROOT xmlns:sql=”urn:schemas-microsoft-com:xml-sql”
sql:xsl=”list2.xsl”>


Викликавши даний XML-шаблон у браузері, ми отримаємо результат трансформації нашого XML-документа в HTML-документ, представлений у вигляді … XML-документа, показаного на рис. 6.


Щоб перетворити цей документ в реальний HTML-документ, в кінці URL необхідно додати параметр contenttype = text / html. Тепер результат перетворення повністю відповідає нашим очікуванням (рис. 7):


Відзначимо, що XSL-шаблони можна вказувати і як параметри. Для цього в кінець URL слід додати ім'я файлу у вигляді & xsl = list2.xsl.


Завершимо наш розгляд використання XML-шаблонів коротким прикладом використання параметрів у шаблонах. Повернемося до нашого попереднього шаблоном:


<ROOT xmlns:sql=”urn:schemas-microsoft-com:xml-sql”>
<sql:query>
SELECT FirstName, LastName, Title, Notes
FROM Employees
FOR XML AUTO
</sql:query>
</ROOT>


Він містить SQL-запит, який повертає дані про кожного співробітника в таблиці Employees. Якщо ми хочемо отримувати дані тільки про один працівника, нам необхідно задати в нашому XML-шаблоні параметри. Для цього треба додати елемент <sql:header>, описати передається параметр за допомогою елемента <sql:param> і змінити код самого SQL-запиту. Нижче виділеним шрифтом показані зміни, внесені до наш XML-шаблон.


<ROOT xmlns:sql=”urn:schemas-microsoft-com:xml-sql”>
<sql:header>
<sql:param name=”EmpID”>1</sql:param>
</sql:header>
<sql:query>
SELECT FirstName, LastName, Title, Notes
FROM Employees
WHERE EmployeeID = @EmpID
FOR XML AUTO
</sql:query>
</ROOT>


Тепер ми можемо вказувати ідентифікатор співробітника при виклику нашого шаблону:


http://terra/northwind/templates/list2a.xml?EmpID=2


Таким чином, механізм XML-шаблонів надає більш гнучкі засоби для одержання даних, у тому числі і можливість їхньої трансформації.


XDR-схеми і XPath-запитів


Крім розглянутих вище способів вилучення даних, SQL Server 2000 підтримує XPath-запити, звані також XPath-уявленнями. XPath – це мова запитів, що дозволяє вибирати окремі елементи XML-документа. Більш докладно мова XPath описаний в документі «XML Path Language (XPath Version 1.0: W3C Recommendation 16 November 1999)», доступному на Web-сайті World Wide Web Consortium за адресою: http://www.w3.org/tr/xpath.


Для створення подібного запиту ми повинні виконати дві дії. По-перше, створити XDR-схему, що описує, як елементи документа відображаються на поля таблиці бази даних. По-друге, написати XML-шаблон, містить XPath-запит на основі даної схеми.


Для нашого прикладу створимо XDR-схему, що описує відображення полів таблиці Employees на елементи XML-документа. Шаблон для нашої схеми виглядає таким чином:


<?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”>

</Schema>


Тут ми задаємо простір імен urn: schemas-microsoft-com: xml-data, що використовується для опису даних, і визначаємо два простору імен, що використовуються в нашому документі, – sql (urn: schemas-microsoft-com: xml-sql) і dt (urn: schemas-microsoft-com: datatypes)


Додамо в наш шаблон елемент <Employee>, що має атрибути EmpID, FName і LName.


<ElementType name=”Employee” >
<AttributeType name=”EmpID” />
<AttributeType name=”FName” />
<AttributeType name=”LName” />

<attribute type=”EmpID” />
<attribute type=”FName” />
<attribute type=”LName” />
</ElementType>


Після того як елемент описаний, ми повинні вказати, як його атрибути відображаються на атрибути таблиці бази даних. Для цього використовуємо директиву sql: relation, вказує таблицю бази даних, і директиву sql: field, вказує поле, на яке відображається атрибут. Повна XDR-схема для нашого прикладу показана нижче.


<?xml version=”1.0″ ?>
<Schema xmlns=”urn:schemas-microsoft-com:xml-data”
xmlns:dt=”urn:schemas-microsoft-com:datatypes”
xmlns:sql=”urn:schemas-microsoft-com:xml-sql”>

<ElementType name=”Employee” sql:relation=”Employees” >
<AttributeType name=”EmpID” />
<AttributeType name=”FName” />
<AttributeType name=”LName” />

<attribute type=”EmpID” sql:field=”EmployeeID” />
<attribute type=”FName” sql:field=”FirstName” />
<attribute type=”LName” sql:field=”LastName” />
</ElementType>
</Schema>


Тепер ми можемо зберегти цю схему у файлі LIST3.XDR і написати XPath-шоу, яке буде застосовувати дану схему для отримання даних. Спочатку створимо простий запит, який використовує фіксований параметр:


<Northwind Xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema=”list3.xdr”>
/Employee
</sql:xpath-query>
</Northwind>


Відзначимо, що директива sql: xpath-query необхідна для вказівки використовуваної нами XDR-схеми. Якщо ми викличемо це подання через URL – http://www.terra/northwind/templates/list3.xml, То отримаємо XML-документ, що містить список всіх співробітників (поля EmployeeID, FirstName, LastName таблиці Employees), в якому кожен з них представлений окремим елементом Employee (рис. 8).


Наведений вище приклад – це найпростіше з того, що можна робити з XPath-уявленнями. Відзначимо, що на відміну від звичайних SQL-запитів через URL ми отримуємо можливість визначати структуру XML-документа і назви елементів і атрибутів. Ця функціональність набагато простіше використання директиви FOR XML EXPLICIT.


Змінимо XPath-запит на наступний:


/Employee[@FName=”Nancy”]


Виконавши дане подання, ми отримаємо дані про одну співробітниці – Nancy Davolio. Тепер, якщо ми хочемо передавати нашим поданням параметри, потрібно змінити його початковий текст на такий:


<Northwind Xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header>
<sql:param name=”FName”>Nancy</sql:param>
</sql:header>
<sql:xpath-query mapping-schema=”list3.xdr”>
/Employee[@FName=$FName]
</sql:xpath-query>
</Northwind>


Зверніть увагу на те, що ми додали опис параметра (директива sql: param) і змінили текст XPath-запиту. Для виклику даного подання через URL введіть наступну адресу:


http://terra/northwind/templates/list3.xml?FName=Andrew


Результат виконання нашого запиту – дані про співробітника з ім'ям Andrew – показаний на рис. 9.


Відзначимо, що для створення комплексних XDR-схем можна скористатися утилітою XML View Mapper, безкоштовно розповсюджується фірмою Microsoft. Детальний розгляд XDR-схем і XDR-уявлень – тема окремої статті, яка буде опублікована в найближчих номерах.


Вставка, видалення і оновлення даних


Всі операції з XML-документами, розглянуті вище, дозволяли нам отримувати дані, вказуючи той чи інший критерій. Нижче ми розповімо, як скористатися підтримкою XML у Microsoft SQL Server 2000 для вставки, видалення і оновлення даних, іншими словами – як можна виконати операції INSERT, UPDATE і DELETE.


Для виконання операцій вставки, видалення і оновлення даних Microsoft SQL Server 2000 підтримує механізм updategrams – спеціальний XML-синтаксис, що дозволяє описати дані до і після операції.


Даний механізм перебуває в стані бета-тестування. Для того щоб ним скористатися, необхідно завантажити з Web-сайту фірми Microsoft пакет Microsoft SQL Server XML Tools і встановити його на комп'ютері, де інстальований SQL Server 2000.


Ідея механізму updategrams дуже проста: якщо описані дані до операції відрізняються від даних після операції, виконується оновлення даних. Наприклад, якщо блок «до» містив дані, а блок «після» – ні, дані видаляються, якщо дані в блоках «до» і «після» різні – виконується оновлення, а якщо дані присутні тільки в блоці «після», то виконується вставка даних.


Нижче показаний шаблон, який використовується механізмом updategrams.


<ROOT xmlns:updg=”urn:schames-microsoft-com:
xml-updategram”>
<updg:sync>
<updg:before>
<TABLENAME [updg:id=”value”]
col=”value”
col=”value” …. />
</updg:before>
<updg:after>
<TABLENAME [updg:id=”value”]
[updg:at-identity=”value”]
col=”value”
col=”value” …. />
</updg:after>
<updg:sync>
</ROOT>


Перше, що кидається в очі, – це те, що updategrams схожі на розглянуті нами вище XML-шаблони. Вони також починаються з кореневого елемента і опису простору імен. Але замість префікса sql ми вказуємо префікс updg і пов'язуємо його з адресою urn: schames-microsoft-com: xml-updategram. Крім того, можна помітити новий елемент sync, що є контейнером для опису даних до (before) і після (After) операції. Даний блок синхронізації описує транзакцію: якщо будь-яка операція всередині блоку завершиться з помилкою, будуть скасовані всі операції. Ім'я таблиці, імена колонок і їх значення (до і після операції) використовуються для визначення типу операції – вставка, видалення або оновлення. Таким чином, все, що необхідно зробити для виконання тієї чи іншої операції, – це задати відповідні дані.


Після того як ми ознайомилися з теорією updategrams, давайте розглянемо приклади використання цього механізму. Почнемо зі вставки нового запису в таблицю Employees – додамо нового співробітника з ім'ям John Smith, що займає позицію Accounting Manager:


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<updg:sync>
<updg:before>
</updg:before>
<updg:after>
<Employees FirstName=”John”
LastName=”Smith”
Title=”Accounting Manager” />
</updg:after>
</updg:sync>
</ROOT>


Зверніть увагу на те, як описуються дані у разі операції вставки: блок before порожній, а блок after містить нові дані.


Після того як ми вставили нову запис, ми можемо оновити деякі з її полів. Наприклад, додати дату народження співробітника:


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<updg:sync>
<updg:before>
<Employees EmployeeID=”10″ />
</updg:before>
<updg:after>
<Employees BirthDate=”1960-10-22″ />
</updg:after>
</updg:sync>
</ROOT>


Зверніть увагу, що в цьому випадку в блоці before ми вказуємо ідентифікатор запису, а в блоці after – оновлювані дані. Може виникнути цілком резонне питання: як у разі вставки даних ми дізнаємося ідентифікатор нового запису (значення поля EmployeeID для нашої нової запису)? У механізмі updategrams для цієї мети передбачені директиви returnid і at-identity, приклад використання яких показаний нижче.


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<updg:sync>
<updg:before>
</updg:before>
<updg:after updg:returnid=”EmpID”>
<Employees updg:at-identity=”EmpID”
FirstName=”John”
LastName=”Smith”
Title=”Accounting Manager” />
</updg:after>
</updg:sync>
</ROOT>


У разі виконання такого набору XML-інструкцій в результуючому документі буде повернуто значення поля EmployeeID для нашої нової запису:


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<returnid><EmpID>10</EmpID></returnid>
</ROOT>


Нарешті, використовуючи механізм updategrams, ми можемо видаляти записи. Наприклад:


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<updg:sync>
<updg:before>
<Employees EmployeeID=”10″ />
</updg:before>
<updg:after>
</updg:after>
</updg:sync>
</ROOT>


У цьому випадку ми заповнюємо лише блок before, залишаючи порожнім блок after. Це вказує SQL Server на необхідність видалення записів, які відповідають заданим у блоці before критерію.


Завершуючи обговорення механізму updategrams, слід сказати кілька слів про використання параметрів. Для завдання параметрів ми використовуємо префікс updg: param і атрибут name, маючи в своєму розпорядженні опис параметрів в секції <updg:header>. Наприклад, для оновлення даних ми використовуємо наступний код:


<ROOT xmlns:updg=”urn:schemas-microsoft-com:
xml-updategram”>
<updg:header>
<updg:param name=”EmployeeID”>
<updg:param name=”LastName”>
</updg:header>
<updg:sync>
<updg:before>
<Employees EmployeeID=”$EmployeeID” />
</updg:before>
<updg:after>
<Employees LastName=”$LastName” />
</updg:after>
</updg:sync>
</ROOT>


У наведеному вище шаблоні ми вказали на два параметри: EmployeeID і LastName. При виклику шаблону ми задаємо параметри так:


http://terra/northwind/templates/emp_update.xml?EmployeeID=1&LastName=Johnson


Крім розглянутих тут способів використання механізму updategrams для вставки, оновлення та видалення даних можна виконувати більш комплексні операції – змінювати більше одного запису в рамках одного шаблону, використовувати більше однієї таблиці і задавати XDR-схеми для вказівки відповідності полів. Ці, а також інші можливості Microsoft SQL Server XML Tools – теми окремої статті.


Висновок


У даній статті ми ознайомилися з деякими новими можливостями Microsoft SQL Server 2000. Ми розглянули основні кроки для налаштування Web-сервера, синтаксис URL-запитів, використання збережених процедур і XML-шаблонів, а також вилучення даних за допомогою XDR-схем і XPath-запитів. Далі ми поговоримо про основні операції, які можна виконувати за допомогою механізму updategrams.


Зрозуміло, в рамках однієї статті неможливо повністю розкрити таку комплексну тему, як підтримка XML у Microsoft SQL Server 2000. У наступних номерах ми ознайомимося з утилітою для створення XDR-схем, а також розглянемо питання, пов'язані з використанням підтримки XML у Microsoft SQL Server 2000 з ASP-сторінок, і опишемо, як ця технологія підтримується в ASP. Net і в рамках всієї платформи Microsoft. Net.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*