SELECT,,,,,, UNION ALL SELECT ,+CompanyName+,+CustomerID+, FROM Customers UNION ALL SELECT,,,,,, ИСПОЛЬЗОВАНИЕ HTML В SQL.

Презентация:



Advertisements
Похожие презентации
SELECT,,,,,, UNION ALL SELECT ,+CompanyName+,+CustomerID+, FROM Customers UNION ALL SELECT,,,,,, ИСПОЛЬЗОВАНИЕ HTML В SQL.
Advertisements

БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Язык запросов XML. XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного.
WEB- ТЕХНОЛОГИИ Лекция 4. Задача преобразования XML- данных 1 Задача преобразования Для передачи данных между разными приложениями необходимо преобразовать.
XML - расширенный язык разметки Моисеевой О. Макушиной Д. (eXtensible Markup Language)
XSLT-ТРАНСФОРМАЦИЯ XML- ТЕХНОЛОГИИ Лекция 4. Трансформация XML- данных Категории трансформации Структурные трансформации – трансформация одного словаря.
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
XML - ПРАВИЛА ПОСТРОЕНИЯ ДОКУМЕНТОВ. Элементы электронного УМК Учебный план Программа дисциплины Структура курса Электронный конспект Обучающие и аттестующие.
Языки, технологии и средства создания Web-сайтов. Компонентная структура. Выполнил Федорова Я.В., студентка СФУ ИППС 1 курс заочное отделение.
Автоматическая обработка естественного языка I. Обработка письменного текста.
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)
База данных – это совокупность структурированных данных определенного назначения. Структурирование данных – это объединение данных по определенным параметрам.
Информационные системы. Базы данных. Информационная система – любая система обработки информации (шир)
1. Краткая характеристика MS Access1. Краткая характеристика MS Access 2. Достоинства и недостатки 3. Типы БД 4. Базы данных и системы управления базами.
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
XML eXtensible Markup Language 1.Язык навигации внутри XML-документа (XPath) 2.Пространства имён (Namespaces) 3.Язык трансформаций (XSLT)
XML и XSLT (2) Матросов Александр Васильевич Санкт-Петербургский государственный университет.
это десятки миллионов Web-серверов Интернета, содержащих Web-страницы, в которых используется технология гипертекста. Технология WWW позволяет создавать.
Транксрипт:

SELECT,,,,,, UNION ALL SELECT ,+CompanyName+,+CustomerID+, FROM Customers UNION ALL SELECT,,,,,, ИСПОЛЬЗОВАНИЕ HTML В SQL

HTML не расширяем. Каждый браузер поддерживает фиксированный набор тегов, и возможности добавить новые теги не существует Язык ориентирован на форматирование данных. Если изменится формат данных, которые считывает некоторая программа, то она, скорее всего, перестанет работать Язык статичен. DHTML и подобные технологии смягчают этот момент, но HTML никогда не предназначался для работы с изменяющимися данными HTML HTML HTML ПРОБЛЕМЫ HTML

HTML дает только одно представление данных. Изменение представления данных оказывается более сложным, чем следует. Мало семантики. Нет возможности для представления данных отличным от отображения способом Создан для решения проблем, связанных с ограничениями HTML. Это метаязык предназначенный для определения новых языков, которые можно использовать для обмена данными HTML HTML XML ПРОБЛЕМЫ HTML И XML

ВИНЕГРЕТ ТЕХНОЛОГИЙ HTML,DHMTL Формат без структуры CSS Лучше формат, нет структуры XML Есть структура, нет формата XSL Формат для структуры DOM Все вместе

Язык с возможностями расширенной разметки (XML) XML – это стандартный язык, который используется для структурирования и определения данных в виде, приемлемом для различных приложений *XML – это стандартный язык, который используется для структурирования и определения данных в виде, приемлемом для различных приложений * Подвид стандарта ISO SGMLПодвид стандарта ISO SGML –Короче и проще –Оптимизирован для WWW XML и HTML похожи и дополняют друг другаXML и HTML похожи и дополняют друг друга –HTML может использоваться для показа XML документов Спецификация XML 1.0 – одобрена W3CСпецификация XML 1.0 – одобрена W3C – html * William J Pardi – XML in Action – Microsoft Press

XML И HTML Использование и структураИспользование и структура –HTML – для представления, менее структурирован –XML – для данных, более структурирован РасширяемостьРасширяемость –Имена HTML элементов и аттрибутов - фиксированные –Имена XML элементов и аттрибутов вполне расширяемы, что делает XML предпочтительным для данных

"Заметки об XSL" "Заметки об XSL" Леонов Игорь Васильевич Леонов Игорь Васильевич ПРОСТОЙ ПРИМЕР XML

This order replaces order 7844 which was cancelled by the customer. This order replaces order 7844 which was cancelled by the customer. XML документ в хорошей форме well-formed xml document (4 правила) XML объявление Корневой элемент Открытие тега Закрытие тега ЭлементАтрибут Содержание Пустой элемент

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 1 Все элементы должны корректно открываться, закрываться и быть вложенными. Например, это корректно: Jane Main Street Jane Main Street Это не корректно: Jane 123 Main Jane 123 Main Как и это: Jane 123 Main Jane 123 Main

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 2 XML не позволяет иметь незакрытые элементы. Так, если элементу не нужен закрывающий тэг (как в случае при отсутствии содержимого), это следует отражать при определении открывающего тэга элемента. Это можно сделать, завершая тэг символом "/". Почему это правило необходимо? XML-документам не нужно Определение Типа Документа (DTD – Document Type Definition). Без DTD процессор не может понять, нужен элементу закрывающий тэг или нет, так что по умолчанию каждый элемент должен быть закрыт тем или иным способом.

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 3 Все значения атрибутов должны заключаться в кавычки. (В конце концов, существует стандарт.) Это верно: Это неверно:

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 4 XML чувствителен к регистру. Можно пользоваться любым регистром, но следует быть последовательным. в нашем примере допустимо, в нашем примере допустимо, в то время как или нет.

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 5 Свободное место не игнорируется. Следующие два примера будут интерпретироваться по-разному. The mysterious mathematician The mysterious mathematician The mysterious mathematician The mysterious mathematician

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило 6 На верхнем уровне XML-файла всегда находится один элемент.

ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Это базовые правила XML. Если документ отвечает этим требованиям, он считается правильно оформленным. Если документ этим требованиям не удовлетворяет он обработан не будет. Можно ли вообразить, что бы было, если бы это относилось и ко всем HTML-документам? Как видите, создать XML-документ предельно легко. Особенно, если уже знать HTML.

ЭЛЕМЕНТЫ ИЛИ АТРИБУТЫ? Необычность XML заключается в том, что этот язык предлагает два почти эквивалентных, хотя и не совсем, способа написания фразы: "это данные". Первый способ указания значения данных - поместить его во вложенный элемент, второй - присвоить значению атрибута. Поскольку очевидный ответ на вопрос, когда какой из этих двух подходов является наиболее походящим, как правило, отсутствует, XML не является полностью ортогональным (в теории программирования под этим термином понимается следующее: "каждая конструкция выполняет одну вещь, и никакая другая конструкция не делает то же самое").

ЭЛЕМЕНТЫ ИЛИ АТРИБУТЫ? PowerProduct PowerProduct PowerProduct PowerProduct PowerProduct PowerProduct......

Пространства имен Модульный подход – грамотный подход (reuse)Модульный подход – грамотный подход (reuse) Создание контекстных словарей для своих приложений (имена элементов и атрибутов)Создание контекстных словарей для своих приложений (имена элементов и атрибутов) –Чтобы избежать коллизий нужно обеспечить уникальность –XML Namespaces ( –URI-Квалификатор, xmlns – атрибуты объявления xmlns:dm=" Essential Legos Essential Legos Essential Mindstorm Essential Mindstorm

ОБРАБОТЧИКИ И ОБЪЕКТНЫЕ ИНТЕРФЕЙСЫ ЗадачаЗадача –Анализ / выверка XML документа –Программное управление XML документами –Запуск кода (компонентов) с помощью XML Технологии / стандартыТехнологии / стандарты –Microsoft ® XML Parser (MSXML) Используется ПО Microsoft для работы с XMLИспользуется ПО Microsoft для работы с XML Поддерживает схемы DTD и XDR для валидацииПоддерживает схемы DTD и XDR для валидации Последняя версия поддерживает XSLT и XPathПоследняя версия поддерживает XSLT и XPath –Microsoft XML object model Работа с XML документами из COM/VBScript/JScriptРабота с XML документами из COM/VBScript/JScript Поддержка W3C XML Document Object Model (DOM) Level 1Поддержка W3C XML Document Object Model (DOM) Level 1 –Simple Object Access Protocol (SOAP) Способ вызова методов, адаптированный для ИнтернетСпособ вызова методов, адаптированный для Интернет В работе в IETF (Draft)В работе в IETF (Draft) msdn.microsoft.com/downloads/tools/xmlparser/xmldl.asp

ОПРЕДЕЛЕНИЕ ТИПА ДОКУМЕНТА DOCUMENT TYPE DEFINITION, ИЛИ DTD DTD позволяет указать, сколько элементов связано друг с другом. Например: Один элемент обозначен как главный, а остальные как подчиненные. Чтобы быть корректным, любой документ, содержащий эти элементы, должен поддерживать эти отношения. DTD ответственен за определение как этих отношений, так и дополнительных факторов порядка использования элементов, типа данных, которые могут в них содержаться и пр. PCDATA это резервное имя, описывающее базовые элементы и представляющее тип данных, содержащихся в элементе. Оно означает наличие символьных данных, которые могут быть подвергнуты грамматическому анализу. Есть и дополнительные способы определения содержания элемента, а также атрибутов, которые могут содержаться в элементе.

ФОРМАЛИЗАЦИЯ СТРУКТУРЫ XML Существуют способы формального определения структуры XML- документов DTD (Document Type Definition) XML-Схема (XML Schema) Устарело! Не для новых разработок Устарело! Не для новых разработок

ОПИСАНИЕ XML ДОКУМЕНТОВ ТребованияТребования –Описать структуру любого класса XML документов, напр., Заказы –Определить является XML документ валидным представителем своего класса Используемые стандартыИспользуемые стандарты –Document Type Definitions (DTDs) Устоявшийся стандарт в мире SGMLУстоявшийся стандарт в мире SGML Подходит для задания документоориентированных типов данныхПодходит для задания документоориентированных типов данных –Схемы XML-Data/XML-Data Reduced (XDR) Нарождающийся стандартНарождающийся стандарт Подходит для БД-ориентированных типов данныхПодходит для БД-ориентированных типов данных

Простая XDR схема

XML СХЕМЫ Схемы общедоступные и могут быть опубликованы новыеСхемы общедоступные и могут быть опубликованы новые –Это закладывает базис для тестирования бизнес-договоров Одна программа выдает необходимый XML документОдна программа выдает необходимый XML документ Другая егоперевариваетДругая егопереваривает –С помощью схемы можно проверить соответствие договору XM L

ПОЧЕМУ СХЕМЫ - ЛУЧШЕ? Схемы лучше наращиваютсяСхемы лучше наращиваются –XML-синтаксис Лучше типизация данныхЛучше типизация данных –БД/ программно – ориентированная типизация и кодировка –Легче налагать правила (диапазоны, списки и т.д.) –Можно расширять типы данных Поддержка пространств именПоддержка пространств имен –Основное требование при подаче схемы в библиотеку

ФОРМАТИРОВАНИЕ/ПРЕОБРАЗОВАНИЕ XML ЗадачаЗадача –Форматирование XML-документов для показа –Перевод исходного XML в целевой XML/HTML –Работа с секциями документа XML Технологии/СтандартыТехнологии/Стандарты –Extensible Stylesheet Language (XSL) – Стили Аналогичны каскадным (CSS)Аналогичны каскадным (CSS) Более функциональны для форматирования XMLБолее функциональны для форматирования XML В работе в W3C (Working draft)В работе в W3C (Working draft) –XSL Transformation Language (XSLT) Раздвигает границы возможностей XSL в плане преобразований данныхРаздвигает границы возможностей XSL в плане преобразований данных Спецификация W3CСпецификация W3C –XML Path Language (XPath) – Задание путей Общий синтаксис и семантика для запросов и адресации содержания XML документовОбщий синтаксис и семантика для запросов и адресации содержания XML документов Базовая фильтрация и навигация по путямБазовая фильтрация и навигация по путям Используется XSLTИспользуется XSLT Рекомендация W3CРекомендация W3C

XSL ТРАНСФОРМАЦИИ Применение стилевой таблицы XSL к XML документу XML документ (иной формат) XSL процессор HTML страница (XML-совместимая) XML документ XSL таблица стилей +

ТАБЛИЦЫ СТИЛЕЙ XSL XSL документ = Правильно оформленный XML документXSL документ = Правильно оформленный XML документ –В «шапке» - элемент –В «шапке» - элемент –Внутри него - элементы шаблонных правил –Внутри него - элементы шаблонных правил –Внутри правила - действие, определяющее вывод элемента template rule 1 output template template rule 2 output template

ПОИСК XML УЗЛОВ В ИЕРАРХИИ ДОКУМЕНТА Всех элементовВсех элементов Конкретного элементаКонкретного элемента Конкретного элемента по его путиКонкретного элемента по его пути

ШАБЛОНЫ НА ВЫХОДЕ Задача: определить как будут преобразованы элементы и атрибуты XML документаЗадача: определить как будут преобразованы элементы и атрибуты XML документа – для указания текущего значения свойства – –

ОСНОВЫ XSLT XML НЕ Показывает и НЕ Преобразует данныеXML НЕ Показывает и НЕ Преобразует данные –XML отделяет данные от форматов и трансформации Что может XSLT?Что может XSLT? –Хранить информацию о передаче и преобразовании данных –Примеры: преобразование данных, прог. сценарии, фильтры и генерация HTML-кода

ОСНОВЫ XSLT XSLT содержит пакет функций для преобразования данныхXSLT содержит пакет функций для преобразования данных –Целевые группы КонкатенацияКонкатенация ВычисленияВычисления Преобразование данныхПреобразование данных СценарииСценарии BizTalk Mapper работает с этими функциями с помощью FunctoidsBizTalk Mapper работает с этими функциями с помощью Functoids

"Заметки об XSL" "Заметки об XSL" Леонов Игорь Васильевич Леонов Игорь Васильевич ПРОСТОЙ ПРИМЕР XML и XSL

"Заметки об XSL" "Заметки об XSL" Леонов Игорь Васильевич Леонов Игорь Васильевич ПРОСТОЙ ПРИМЕР XML и XSL

ЯЗЫК ЗАПРОСОВ XPATH XPath – язык для выборки подмножества узлов из XML-документаXPath – язык для выборки подмножества узлов из XML-документа –Основан на спецификации W3C; см. xpath html Доступ осуществляется по местонахождению (location path), состоящему из 3-х частейДоступ осуществляется по местонахождению (location path), состоящему из 3-х частей –Ось – оговаривает относительное положение узла в дереве XML- документа Child, Parent, Self, AttributeChild, Parent, Self, Attribute –Узел – элемент, по отнош. к к-му применяется действие оси –Предикат выборки – по сути, условие WHERE Берется в скобки [ ]Берется в скобки [ ] ПримерыПримеры –child::Customer Выбираются все дочерние подэлементы элемента Выбираются все дочерние подэлементы элемента –child::Customer/child::Orders Для данного выбираются все подэлементы внутри него со своими детьмиДля данного выбираются все подэлементы внутри него со своими детьми –Customer[attribute::CustomerID="ALFKI"] Условие выборки – только c заданным значением атрибута CustomerIDУсловие выборки – только c заданным значением атрибута CustomerID

… … … … Похож на путь к файлу /usr/bin/xmllint/usr/bin/xmllint Простой XPath

Результат множество узлов /AAA/CCC/AAA/CCC Простой XPath

// Поиск по всему поддереву// поддереву //DDD/BBB//DDD/BBB

* Любое имя * /AAA/*/*/BBB/AAA/*/*/BBB

(/AAA/BBB)[1](/AAA/BBB)[1](/AAA/BBB)[last()](/AAA/BBB)[last()] ФИЛЬТРАЦИЯ

XPath: Примеры Найти имя ректораНайти имя ректора /institute/rector/person/text() /institute/rector/person/text() Найти названия факультетовНайти названия факультетов Найти всех сотрудниковНайти всех сотрудников //person //person Найти имя декана факультета «Б»Найти имя декана факультета «Б» Найти имя второго по счету заместителя Малюка А. А.Найти имя второго по счету заместителя Малюка А. А. //dean/person[starts-with(., Малюк)] /../../deputies/person[position() = 2] //dean/person[starts-with(., Малюк)] /../../deputies/person[position() = 2]

Xpath (ранее XQL - Extensible Query Language) (msdn.microsoft.com/downloads/webtechnology/xml/msxml.asp) Адреса узлов в иерархии XML документовАдреса узлов в иерархии XML документов MSXML 2.6: объект IXMLDOMNode методы selectNodes и selectSingleNodeMSXML 2.6: объект IXMLDOMNode методы selectNodes и selectSingleNode Smith Smith /descendant::contact[fullname="Smith"]/child::numbers/child::* doc.setProperty "SelectionLanguage", "XPath" sel = doc.selectNodes("descendant::numbers")

XQuery – Язык XML запросов XQuery – это SQL для XML XQuery – это SQL для XML Независимость от конкретной СУБД Независимость от конкретной СУБД Простота использования Простота использования Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g) Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g) Базируется на XPath, но более понятен и может работать на множестве документов Базируется на XPath, но более понятен и может работать на множестве документов XQuery – это SQL для XML XQuery – это SQL для XML Независимость от конкретной СУБД Независимость от конкретной СУБД Простота использования Простота использования Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g) Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g) Базируется на XPath, но более понятен и может работать на множестве документов Базируется на XPath, но более понятен и может работать на множестве документов

ЯВЛЯЕТСЯ ЛИ XML БАЗОЙ ДАННЫХ? Если строго придерживаться определения базы данных, то «XML» – в том случае, если под этим термином подразумевается XML-документ, – базой данных не является. Хотя XML-документ содержит данные, без дополнительного программного обеспечения, которое служит для обработки этих данных, он является базой данных не в большей степени, чем любой другой текстовый файл. Хотя XML-документ содержит данные, без дополнительного программного обеспечения, которое служит для обработки этих данных, он является базой данных не в большей степени, чем любой другой текстовый файл.

ЯВЛЯЕТСЯ ЛИ XML БАЗОЙ ДАННЫХ? Если говорить более широко, то есть, подразумевая под «XML» собственно XML-документ и сопровождающие XML инструменты и технологии – ответ будет звучать как «да, но». «Да», потому что XML предоставляет множество функций баз данных: хранение (XML-документ), схемы (DTDS, язык определения схем XML), язык запросов (XQL, XML-QL, QUILT и другие), интерфейсы для языков программирования (SAX, DOM) и так далее. «Но», потому что многие функции присущие классическим базам данных все же отсутствуют: эффективное хранение, индексация, обеспечение безопасности, обработка транзакций и поддержка целостности данных, многопользовательский доступ, триггеры, поддержка запросов ко многим документам и т.д.

ПОТЕРЯ СООТВЕТСТВИЯ Daniela Florescu (редактор языка XQuery): «Для меня остается полной загадкой, как разработчикам удается реализовывать свои заказы, представленные в трех различных видах (XML, Java/C# и кортежи) – тратить так много времени на поддержание согласованности и написание преобразований, и так много времени на копирование данных из одного формата в другой. Подобное «животное с тремя ногами», как его называют, – это техническое недоразумение...»

XML и MS SQL Server 2000 Сервер пишет и читает XML документыСервер пишет и читает XML документы –Новое в Transact-SQL (выражение FOR XML, режимы RAW|AUTO|EXPLICIT, ключевые слова TAG и PARENT) –HTTP GET/POST –XML документы можно посылать как текст и работать с ними с помощью системных хранимых процедур Работает с Internet Information ServerРаботает с Internet Information Server –Через ISAPI DLL и новый SQL Server OLE DB провайдер XML запросы на чтение и обновлениеXML запросы на чтение и обновление Поддержка XDR схемПоддержка XDR схем Поддержка XSL-обработки на сервереПоддержка XSL-обработки на сервере

XML И SQL ИНСТРУКЦИЯ SELECT FOR XML Этот оператор предназначен для представления результирующего набора строк в виде XML-документа. Рассмотрим его синтаксис: FOR XML { RAW | AUTO | EXPLICIT } [, XMLDATA ] [, XMLDATA ] [, ELEMENTS ] [, ELEMENTS ] [, BINARY BASE64 ] [, BINARY BASE64 ] FOR XML { RAW | AUTO | EXPLICIT } [, XMLDATA ] [, XMLDATA ] [, ELEMENTS ] [, ELEMENTS ] [, BINARY BASE64 ] [, BINARY BASE64 ]

FOR XML RAW Каждая строка представляется в виде элемента. Название поля формирует название атрибута, а значение поля – значение атрибута

FOR XML AUTO Документ XML форматируется точно так же, как и при XML RAW, только название элемента, представляющего строку, заменяется на название таблицы. FOR XML AUTO Документ XML форматируется точно так же, как и при XML RAW, только название элемента, представляющего строку, заменяется на название таблицы. ПРЕДУПРЕЖДЕНИЕ SQL Server не позволяет использовать предикат GROUP BY совместно с FOR XML AUTO. ПРЕДУПРЕЖДЕНИЕ

FOR XML EXPLICIT Самый сложный и гибкий вариант для создания XML-документов. В этом режиме можно формировать документы практически любой формы, однако для этого сам запрос должен быть написан по определенным правилам. FOR XML EXPLICIT Самый сложный и гибкий вариант для создания XML-документов. В этом режиме можно формировать документы практически любой формы, однако для этого сам запрос должен быть написан по определенным правилам.

FOR XML EXPLICIT В данном режиме можно формировать практически любые документы. Структура результирующего XML-документа определяется непосредственно в самом запросе. Запрос может принимать очень сложный вид. Первое поле всегда называется tag и представляет собой числовой идентификатор таблицы. Вы можете указывать для него любые числовые значения. В результирующем документе он не появляется, и нужен только, чтобы определить связи между таблицами для формирования иерархического документа. Второе поле называется parent и тоже может представлять любой числовой идентификатор. Он определяет родительскую таблицу для данной таблицы и в результирующем документе также не присутствует. Если родитель отсутствует, указывается 0 или NULL. Для иерархических выборок нужно использовать несколько запросов, объединенных с помощью оператора UNION ALL.

FOR XML EXPLICIT После двух обязательных полей tag и parent следуют поля, которые требуется выбрать из таблицы. Для них должен быть задан псевдоним, определяющий тип XML-узла, его название и другую информацию. Вот синтаксис этого псевдонима: ElementName ! TagNumber ! AttributeName ! Directive

FOR XML EXPLICIT ElementName ! TagNumber ! AttributeName ! Directive ElementName – имя элемента, в котором будет находится элемент данного поля. Обычно здесь указывается имя таблицы. ElementName – имя элемента, в котором будет находится элемент данного поля. Обычно здесь указывается имя таблицы. TagNumber – идентификатор таблицы, в которой находится данное поле. Одному и тому же ElementName всегда должен соответствовать один TagNumber. Он также не отображается ни в каком виде в результирующем документе, однако нужен для определения иерархических связей между таблицами. TagNumber – идентификатор таблицы, в которой находится данное поле. Одному и тому же ElementName всегда должен соответствовать один TagNumber. Он также не отображается ни в каком виде в результирующем документе, однако нужен для определения иерархических связей между таблицами. AttributeName – имя атрибута (или элемента), представляющего данное поле. AttributeName – имя атрибута (или элемента), представляющего данное поле.

FOR XML EXPLICIT ElementName ! TagNumber ! AttributeName ! Directive Directive – по существу, представляет собой тип узла. Может принимать следующие значения: element поле представляется в виде элемента xml То же самое, что element, но не выполняет трансформации текста. Например, символ меньше (

FOR XML EXPLICIT SELECT au_fname, au_lname, address FROM authors WHERE au_fname like 'M%' FOR XML RAW; SELECT au_fname, au_lname, address FROM authors WHERE au_fname like 'M%' FOR XML RAW; SELECT 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_fname as 'authors!1!fname', au_lname as 'authors!1!lname', au_lname as 'authors!1!lname', address as 'authors!1!address' address as 'authors!1!address' FROM authors WHERE au_fname like 'M%' FOR XML EXPLICIT; SELECT 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_fname as 'authors!1!fname', au_lname as 'authors!1!lname', au_lname as 'authors!1!lname', address as 'authors!1!address' address as 'authors!1!address' FROM authors WHERE au_fname like 'M%' FOR XML EXPLICIT;

Немного исправим запрос для демонстрации возможностей директивы FOR XML EXPLICIT. select 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_fname as 'authors!1!fname', au_lname as 'authors!1!lname!element', au_lname as 'authors!1!lname!element', address as 'authors!1!!cdata address as 'authors!1!!cdata from authors where au_fname like 'M%' for xml explicit select 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_fname as 'authors!1!fname', au_lname as 'authors!1!lname!element', au_lname as 'authors!1!lname!element', address as 'authors!1!!cdata address as 'authors!1!!cdata from authors where au_fname like 'M%' for xml explicit

Вот результат: Marjorie Marjorie Michael Michael Meander Meander Morningstar Morningstar Michel Marjorie Marjorie Michael Michael Meander Meander Morningstar Morningstar Michel

XMLDATA Иногда бывает полезно получить не только сами данные, но и их схему. Схема данных также записывается в формате XML. Она определяет типы элементов и атрибутов, накладывает ограничения на их значения, и вообще представляет метаинформацию, позволяющую проверить документ на действительность (validity). Существует несколько разновидностей (форматов) схем данных. SQL Server использует XDR-схемы (XML Data Reduced). Ключевое слово XMLDATA может быть использовано для всех трех режимов формирования XML-документа (raw, auto и explicit).

ELEMENTS Ключевое слово, использующееся только совместно с FOR XML AUTO. При его указании поля формируются как элементы: название поля соответствует названию элемента, а значение поля – значению элемента.

BINARY BASE64 Определяет, как будут выведены двоичные данные (binary data).

Зачем XML нужен в СУБД? Передача запросов и результатов через ИнтернетПередача запросов и результатов через Интернет –XML прозрачно проходит сквозь сетевые экраны В отличие, скажем, от СОМ-объектовВ отличие, скажем, от СОМ-объектов Взаимодействие в гетерогенных средахВзаимодействие в гетерогенных средах –XML сейчас понимают все независимо от платформы и ОС Интеграция не только с другими СУБД, но и с серверами B2B, электронной коммерции и пр.Интеграция не только с другими СУБД, но и с серверами B2B, электронной коммерции и пр. Не требует установки дополнительного ПО на клиентаНе требует установки дополнительного ПО на клиента –Клиент может быть сколь угодно тонким Опять же потому, что средства его поддержки присутствуют изначальноОпять же потому, что средства его поддержки присутствуют изначально

СерверыСерверы ПосредникиПосредники КлиентыКлиенты NT Web PDA Phones ATMs Kiosks CICS MF CICS UNIX CORBA NT TIBCO SNA MQ HTTP CORBA JAVA RMI DCOM

СерверыСерверы ПосредникиПосредники КлиентыКлиенты NT Web PDA Phones ATMs Kiosks CICS MF CICS UNIX CORBA NT XML

ОБЪЕДИНЕННЫЕ СЛУЖБЫ Торговля Online Планирование АСУ РП XML Виртуальный торговый центр Потребители Поставщик A SAP Поставщик C Siebel Поставщик B JD Edwards XML сообщение XML Заказы Склад Мощность XSL XSL XSL XSL XSL

Windows DNA 2000 Платформа для веб-приложений следующего поколения Клиентский ярус Ярус данных Службы приложений IIS/ASP, COM+/MTS, MSMQ. ADO/OLE DB, Active Directory, XML, Commerce Службы приложений IIS/ASP, COM+/MTS, MSMQ. ADO/OLE DB, Active Directory, XML, Commerce Ярус прикладной логики BrowserBrowser ASP/COM+приложениеASP/COM+приложение Доступ к данным И их хранилищам Доступ к данным И их хранилищам SQL Server Другие СУБД Хост-системыХост-системы …… ПриложениеПриложение Internet (TCP/IP, HTTP, HTML, XML) МиниПКМиниПК Microsoft SQL Server SQL Server 2000 Microsoft SQL Server SQL Server 2000

ПЕРВОЕ И ВТОРОЕ ПОКОЛЕНИЯ ВЕБ ПРИЛОЖЕНИЙ 1 в 1 соответствие страницы файлу BrowserBrowser Веб- сервер ФайлФайл ДинамическиеДинамические страницы ДинамическиеДинамические страницы BrowserBrowser ФайлФайл Веб- сервер БДБД ШтатныеразработкиШтатныеразработки

ТРЕТЬЕ ПОКОЛЕНИЕ ФайлФайл БДБД Динамические страницыДинамические страницы BrowserBrowser Веб-серверВеб-сервер Штатныеразработки БрандмауэрБрандмауэр Web site Как подключить приложение к сайту сегодня = HTMLсканирование экрана илипо договоренности Завтра, внешние веб-сайты могут стать строительными кирпичиками с помощью XML Веб-службыВеб-службы МегасервисыМегасервисы Веб- служба

Установка вредоносного программного кода Демонтаж оборудования Порча оборудования Просмотр, изменение, удаление файлов

КОМПЬЮТЕРЫ

ЧЕЛОВЕЧКИ