Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

5. XML и SQL Server

5.1 Что такое XML

XML в SQL Server 2000, определение и преимущества XML

XML расшифровывается как Extensible Markup Language (расширяемый язык разметки), хотя сам XML - это не язык. XML - набор правил, используемых для создания своих языков разметки. Например, представим себе, что у нас существуют такие данные о сотруднике:

Метаданные

Данные

Имя

Александр Иванов

Адрес

Невский пр, д.1

Город

Санкт-Петербург

Телефон

555-55-55

Эти данные, конечно, можно представить как угодно: в виде таблицы в реляционной базе данных, в виде таблицы Excel или HTML, в виде таблицы в документе Word или в виде текстового документа ASCII, в виде файла *.csv и т.п. Если мы представим их в формате придуманного нами XML-совместимого языка разметки ABML (Address Book Markup Language), то они будут выглядеть так:

<?xml version="1.0"?>
<!DOCTYPE ADDRESS_BOOK SYSTEM "abml.dtd">
<ADDRESS_BOOK>
     <ADDRESS>
            <NAME>Александр Иванов</NAME>
            <STREET>Невский пр, д.1</STREET>
            <CITY>Санкт-Петербург</CITY>
             <PHONE>555-55-55</PHONE>
     </ADDRESS>
</ADDRESS_BOOK>

Немного о том, как расшифровать этот код. Первые две строки - это пролог (использовать его, в принципе, необязательно, но очень рекомендуется). Строка

<?xml version="1.0"?>

называется объявлением XML (XML Declaration) и говорит о том, что этот файл соответствует спецификации XML 1.0, принятой в качестве рекомендации World Wide Web Consortium 10 февраля 1998 года. Строка

<!DOCTYPE ADDRESS_BOOK SYSTEM "abml.dtd">

называется определением типа документа (Document Type Definition) и говорит о том, что структура языка, которому соответствует этот документ, описана в файле abml.dtd (можно использовать и внутренние DTD, когда описание языка находится прямо в документе). Сейчас для описания структуры XML-совместимых языков чаще используются не DTD, а XML Schema - к ним проще обращаться и они обеспечивают больше возможностей, в частности, при описании различных типов данных. Эта же строка с использованием XML Schema может выглядеть так:

<ADDRESS_BOOK xmlns="x-schema:abml.xml">

или

<ADDRESS_BOOK xmlns="urn:schemas-astrosoft-ru:abml">

в зависимости от того, где лежит сама Schema - описание данного языка - в файле abml.xml или на Web-сервере (корпоративное хранилище схем от Microsoft - BizTalk Server).

Пример XML Schema для нашего языка может выглядеть так:

<schema targetNameSpace = "http://schemas.astrosoft.ru/abml"
     xmlns="urn:schemas-astrosoft-ru:abml
<element name = "ADDRESS_BOOK" type = "ADDRESS_BOOK_TYPE" />
<type name = "ADDRESS_BOOK_TYPE">
     <element name = "ADDRESS" type = "ADDRESS_BOOK_TYPE" minOccurs = "1"
     maxOccurs="*" />
</type>
<type name = "ADDRESS_TYPE" >
     <element name = "NAME" type = "string" />
     <element name = "STREET" type = "string" />
     <element name = "CITY" type = "string" />
     <element name = "PHONE" type = "string" />
</type>
</schema>

XML – это формализованный набор правил для «разметки» документа – то есть выделения его логической структуры. То, что находится внутри любого документа, совместимого с форматом XML, можно разбить на две категории: разметку и само содержание. Вся информация о разметки должна начинаться либо с символа амперсанда (&), либо с символа левой угловой скобки (<). В XML существует шесть типов информации разметки: элементы, атрибуты, комментарии, инструкции обработки, ссылки на сущности и разделы CDATA.

·        Элементы (elements) – это наиболее распространенный тип информации о разметке. Элемент выделяет логическую составную часть документа. Обычный документ состоит из открывающих и закрывающих тегов, которые могут окружать содержимое, другой элемент, или и то, и другое вместе. Теги с названиями элемента заключаются в угловые скобки. Вот пример элемента:

<STREET> 4296 Razor Hill Road </STREET>

·        Атрибуты (attributes) состоят из пары имя атрибута/значение атрибута и применяются к элементам. Атрибуты положено помещать после имени элемента в открывающем теге. Например, атрибутами являются ширина и высота:

<APPLET width=”100” height=”200”>

·        Комментарии (comments) – это любой текст, который будет игнорироваться процессором XML. Пример:

<!-- Эта часть является очень важной -->

·        Инструкции обработки (processing instructions) используются для передачи информации приложению, обрабатывающему документ XML. Синтаксис инструкции обработки выглядит так:

<?application data ?>

·        Ссылки на сущности (entity references) используются для того, чтобы помещать в документ зарезервированные символы или зарезервированные слова. К примеру, нам надо вставить в документ левую угловую скобку (<), которая является зарезервированным символом XML. Просто так вставить в текст документа мы ее не сможем: приложение, работающее с документом, решит, что она относится к разметке. Поэтому нам необходимо использовать сочетание символов &lt;. lt означает less than (меньше чем), а амперсанд (&) и точка с запятой (;) выделяют ссылку на сущность.

·        Раздел CDATA (CDATA section) – это часть текста, которая не обрабатывается, как остальные части документа XML, а передаваться приложению напрямую. Это средство может пригодиться, например, при передаче приложению какого-либо кода.

Синтаксические принципы XML:

·        Документы XML состоят из символов Unicode (Unicode – это 16-битный набор символов, который позволяет отображать документы на любых языках).

·        XML чувствителен к регистру. Теги <HTML> и <html> в нем – это разные теги.

·        Пустое пространство (whitespace) – это невидимые символы, такие, как пробел (ASCII 32), символ табуляции (ASCII 9), символы возврата каретки (ASCII 13) и символы перевода строки (ASCII 10). Пустое пространство игнорируется внутри тегов, но сохраняется в символьных данных (то есть между открывающим и закрывающим тегами). Пустое пространство в символьных данных передается обрабатывающему приложению.

·        Многие компоненты XML должны иметь имена (наиболее наглядный пример – элементы и атрибуты). Правила именования XML выглядят следующим образом: имя XML должно начинаться с буквы или подчеркивания, за которым следует любое количество букв, цифр, дефисов, подчеркиваний или точек, например:

Мой_Уникальный_Идентификатор_Тега-123
2_Это_имя_является_неверным

·        Имя компонента XML не может начинаться с символов xml (как в верхнем, так и в нижнем регистре). Такие имена зарезервированы создателями спецификации для служебных целей.

·        Символьные значения должны быть помещены в одинарные или двойные кавычки.

·        В XML должен строго соблюдаться порядок вложенности тегов.

·        Любому открывающему тегу в XML должен соответствовать закрывающий тег.

·        Пустой тег в XML записывается как открывающий тег, перед правой угловой скобкой в котором стоит прямой слеш (/).

·        В документе XML может быть только один корневой элемент.

В чем преимущества размещения данных в XML перед традиционными двоичными форматами? Почему в настоящее время большинство крупных производителей программного обеспечения либо уже полностью перешли на работу с данными в XML-совместимом формате (например, Micrоsoft Office 2003), либо планируют перейти в ближайшем будущем? Главная причина - данные в XML очень легко передавать между самыми разными приложениями и их очень легко преобразовывать. Дополнительные моменты, связанные с преимуществами XML:

  • Независимый формат данных - данные в формате XML можно открывать в любом XML-совместимом (точнее, совместимым с конкретной схемой) приложении. Пример: на любом предприятии документы хранятся в самых разных форматах - форматах разных версий Word, текстовых, HTML, PDF и т.п. Проблем из-за этого возникает очень много, радикально решаются при помощи XML.
  • Общий принцип - один источник данных (документ XML), много представлений. Наглядно можно продемонстрировать на примере Web-сайта, к которому нужно обращаться из разных броузеров и через WAP.
  • Гораздо более простая передача данных "сквозь" приложения. Примеры - прохождение документов через цепочку поставщиков, или прохождение данных между разнородными программными продуктами на одном предприятии (что необходимо очень часто).
  • Улучшенные возможности поиска данных. Во-первых, нет необходимости обращаться к документам разных двоичных форматов, во-вторых, иерархическая структура документов XML облегчает поиск.
  • Более простая разработка приложений - нет необходимости реализовывать в приложениях поддержку большого количества разных двоичных форматов данных.
  • Данные в текстовом формате (стандарт XML - Unicode) проще, чем двоичные, хранить на различных платформах и безопаснее (с точки зрения отсутствия вредоносного двоичного кода) передавать в сетях. Целое направление в разработке приложений - XML Web-службы.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru