Операционная система Windows


 

Меню

Реклама


Стандарт XML. Назначение и структура. Отличия от Html

Xml extensible Markup Language - это расширяемый язык разметки текста, предложенный W3c в 1996 году. Это язык, который в полной мере определяет логическую структуру документа. Задача XML заключается в том, чтобы данные: тексты, изображения или другие части Web-документа, могли быть определены и структурированы независимо от платформы, что их воспроизводит, поставщика и его программного обеспечения, например Web-браузерив.

При создании документов с использованием XML, вы можете использовать ваши собственные элементы и структуры для разметки содержания ваших документов. Возможно определить dtd а Document Type Definition, то есть определение типа документа. DTD определяет то, что можно назвать грамматикой документа, - это список разнообразных элементов и их образований для использования в определенных документах, в чем-то это напоминает использование css, то есть вы можете сделать ссылку на DTD, что находится или в сети или написать его непосредственно в вашем документе.

Таким образом, содержание документа, его структура, типы використвуваних в нем элементов и его видгляд определятся отдельно, то есть независимо друг от друга.

<а name="_toc477751782">чему XML?

Нужно сказать, что XML полезный для автоматизированных программных средств, которые ищут в Web. Несовершенство HTML привело к тому, что сеть превратилась в мешанину текста, полную разнообразных элементов и тэгов, часто используемых, что называется Pro Forma и ничего не значимых.

XML имеет огромный потенциал для усовершенствования гипертекста. Например в HTML для создания связи используется элемент A, XML же позволяет создать не просто ссылку, а например, двунаправленная связь.

Перспектива XML заключается в том, что он будет использоваться для описания других словно разметки, например, Javascript, что используется в HTML-документах.

XML разработан для того, чтобы упростить и облегчить использование SGML, при этом сохранив его большие возможности по созданию, распространению и публикации Web-документив сети.

1. Вступ

Невзирая на то, что XML очень молодая W3c утверждала спецификацию Extensible Markup LANGUAGEXML 1.0 в начале февраля 1998 г и отдельные компоненты этого языка находятся еще в стадии доработки, уже сегодня появляются новые языки, созданные на основе XML, возникают многочисленные Web-сервери, которые используют эту технологию для организации информации, которая сохраняется на них.

<а name="_toc477751785">для чего нужен новый язык разметки?

Язык разметки документов - это набор специальных инструкций, називаних тэгами, предназначенных для формирования в документах какой-то структуры и определения отношений между разнообразными элементами этой структуры. Тэги языка, или, как их иногда называют, управляющие дескрипторы, в таких документах каким-то образом кодируются, выделяются относительно основного содержания документа и служат в качестве инструкций для броузера.

Всю красоту XML можно понять только при сравнении его из HTML. Формализированная в RFC 1866 в 1995 году, HTML является наиболее популярным языком разметки во всем мире. Срок «разметка» относительно документа означает обычно все, что не относится к его информационному наполнению.

В раннюю пору своего развития язык HTML возвышался как средство масштабируемого форматирования документов, которую можно было бы использовать для обмена информацией практически на любой платформе. В основе HTML лежит очень простая идея: вы определяете несложный язык, который описывает структуру документа, и ожидаете, когда компании разработают программные средства, состоятельные подавать такие документы в разнообразных операционных средах с учетом избранных пользователем параметров. С помощью HTML можно было бы создавать материалы, которые допускают представление в любом визуальном или звуковом формате.

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

В файле HTML в его исходном виде тэги форматирования перемешаны с обычным текстом. Главной особенностью разметки HTML является, конечно, возможность вставки ссылок на внешние документы или на внутренние разделы того же документа.

HTML процветал не только как адаптирован язык разметки, но и в качестве промежуточного программного обеспечения. Благодаря своей дешевизне и распространенности браузери Web являют собой отличных клиентов; при посредничестве HTML они могут общаться с самыми разнообразными серверами.

Однако HTML столкнулся с определенными трудностями. Его ограничены возможности форматирования пытались перебороть с помощью CSS, инициативы Truedoc от Bitstream и конечно множественные числа специфических расширений для браузера; а его ограничены возможности в качестве промежуточного ПО - с помощью Java, Active и тому подобное Однако все это не устраняет его фундаментальные недостатки.

В сущности, HTML - это технология представления информации, она описывает то, как браузер повинный скомпоновать текст и график на странице. В итоге «то, что вы видите, - это все, что вы получаете». Нет никакого способа описать данные независимо от отображения этих данных за исключением чрезвычайно слабой системы ключевых слов в заглавии страницы Web. Байдужнисть к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. Это главная причина, почему так трудно найти нужную информацию с помощью механизма поиска.

Клиент не имеет никаких меньше приемлемых средств выдержки данных из страницы Web для последующей работы с ними. Дальше, на любой конкретной странице Web клиент получает только одно представление конкретного множественного числа данных.

Допустим, что вы пересматриваете список аукционов ebay, упорядоченный по дате открытия торгов. Если вы захотите глянуть на тот же список, но отсортированный по дате закрытия торгов, то вашему браузеру придется посылать новый запрос серверу. В свою очередь серверу придется заново отправлять полную страницу HTML со списком аукционов. Такого рода манипулирование данными ведет к значительному увеличению числа обращений к серверам Web и утруждает, таким образом, их последующее масштабирование.

Другая проблема из HTML в том, что это «плоский» язык, то есть авторы не могут использовать ее для предоставления информации об иерархии данных. Дальше, она непоследовательна и потому затрудняет разбор текста программным обеспечениям. Например, хотя большинство открывающих тэгов, такие, как B или H1 имеет соответствующие закрывающие тэги, некоторые например, P их не имеют.

Существенным недостатком HTML можно назвать ограниченность набора его тегов. DTD-правила для HTML определяют фиксированный набор дескрипторов и потому у разработчика нет возможности вводить собственные, специальные тэги.

Простым решением для некоторых из перечисленных проблем было бы введение дополнительных тэгов HTML, таких, как NAME, DATE или PRICE. С их помощью клиент мог бы определить, что собой являют данные, и отображать их по-разному или экспортировать по запросу пользователя. Если же вы решите не ожидать изменения стандарта, то имейте в виду, что вы создаете что-то свое, нестандартное и тем самым отказываетесь от одного из главных преимуществ HTML.

Потому в 1996 году члены рабочей группы Консорциума World Wide Web W3c вернулись к рассмотрению стандартного обобщенного языка разметки Standard Generalized Markup Language, SGML, сильно упрощенным потомком которого является HTML. Предложенная в 1974 году Чарльзом Голдфарбом, SGML являет собой метаязык - систему для описания других языков. Этот язык предназначен для создания других словно разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. При всех своих возможностях она слишком сложна для большинства браузеров Web: одна спецификаций SGML занимает свыше 500 страниц.

Упростив SGML для использования из Web, группа предложила XML рекомендация W3c по статусу на февраля 1998 года. XML – подмножество SGML, причем дорогой действительный документ XML является действительным документом SGML. И, как и SGML, XML - это метаязык, который определяет другие языки разметки для специфических целей. Например, язык синхронизированной интеграции мультимедиа Synchronized Multimedia Integration Language, SMIL базируется на XML.

Консорциум W3c, призывая к использованию XML в Web, фактически предлагает каждому сконструировать личный язык для своих гипертекстовых документов, причем для разных документов это будут разные языки.

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

XML используется для разметки стандартных документов во многом так же, как HTML. Однако XML превосходит его при работе со структурированными данными, такими, как результаты запроса, метаинформация об узле Web или элементы и типы схемы.

Документ XML выглядит во многом похожим на HTML. Он также состоит из текстовых фрагментов, аннотированных вложенными в угловые скобки тэгами. Однако, в отличие от HTML, содержание тэга зависит от регистра, а каждый открывающий тэг повинный во всех случаях иметь парной закрывающий тэг.

XML Extensible Markup Language-э то язык разметки, которая описывает целый класс объектов данных, називаних XML - документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью благоустройства документов. XML не содержит никаких тэгов, предназначенных для разметки, а просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента Rose у документе необходимо использовать тэг flower;, то XML позволяет свободно использовать обусловленный нами тэг и мы можем включать в документ фрагменты, подобные такому:

flowerrose/flower

Таким образом, у разработчиков появляется уникальная возможность определять собственные команды, которые позволяют им наиболее эффективно определять данные, которые сохраняются в документе. Автор документа создает его структуру, строит необходимые связки между элементами, используя те команды, которые удовлетворяют его требованиям и добивается такого типа разметки, что необходимо ему для выполнения операций пересмотра, поиска, анализа документа.

Еще одной из очевидных преимуществ XML есть возможность использования ее в качестве универсального языка запросов к хранилищам информации. Сегодня в глубинах W3c находится на рассмотрении рабочий вариант стандарта XML-QL или XQL, что, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документи могут выступать в качестве уникального средства сохранения данных, которое содержит в себе одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений есть интеграция Java и XML - технологий, что позволяет использовать мощь обеих технологий при построении машинно-независимых дополнений, которые используют, кроме того, универсальный формат данных при обмене информацией.

XML позволяет также осуществлять контроль за корректностью данных, которые сохраняются в документах, делать проверки иерархических соотношений внутри документа и устанавливать единственный стандарт на структуру документов, содержимым которых могут быть сами разнообразные данные. Это значит, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между разнообразными дополнениями, которые работают в одной системе. Создавая структуру механизма обмена информации в самом начале работы над проектом, менеджер может позбути себя в будущем от многих проблем, связанных с несовместимостью используемых разнообразными компонентами системы форматов данных.

На основе XML уже сегодня созданы такие известные специализированы языки разметки, как SMIL, CDF, MATHML, XSL, и список рабочих проектов новых языков, которые находятся на рассмотрении W3c, постоянно пополняется.

<а name="_toc477751786">структура документа

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

Пример для сравнения представления списка имен и адресов на HTML и на XML.

Вот фрагмент HTML:

H1еditor Сontacts/h1

H2имъя: Джонатан Эйнджел/H2

Pпосада: старший редактор/p

Pвидання: Network Magazine/p

Pвулиця и дом: Гарисона, 600 /p

Pмисто: Сан-франциско/p

Pштат: Калифорния/p

Pиндекс: 94107/p

Pелектронна почта:

Jangel@mfi. com/p

Тэги розмищають данные на экране, но ничего не сообщают об их структуре.

В случае XML тот же фрагмент будет подан таким способом и сохранен в файле EDITORS. XML.

?xml version = '1.0' ?

?xml-stylesheet type=ъtext/xsl' href=ъeditors. xsl' ?

editor_contacts

editor

first_namejonatan/first_name

last_nameandjel/last_name

titlechif editor/title

publicationnetwork

Magazine/publication

address

streetgarissona, 600 /street

citysan-francisko/city

statecalifornia/state

zip94107/zip

/address

e_mailjangel@mfi. com/e_mail

/editor

/editor_contacts

В XML тэги не могут налагаться, как в HTML, однако они могут быть вложены один в одний. В действительности, вложение даже рекомендуется как средство создания иерархии данных подчиненные или равноправные отношения. Как очевидно из приведенного приклада, такие элементы, как first_name и e_mail, содержат данные, в то время как другие address присутствуют только с целью структуризации.

Тэги начала и конца элемента являются основными используемыми в XML разметками, но ими дело не исчерпывается. Например, элементам могут быть присвоены атрибуты. Эта возможность аналогична имеющейся в HTML, где, например, элементу table может быть присвоен атрибут align=»center». В XML элемент может иметь один или больше связанных с ним атрибутов, причем при упорядочивании документа вы можете выдумать их столько, сколько побажнете, например publication topic=»networking» circulation=»controlled».

Документы XML могут содержать ссылку на другие объекты. Ссылки являют собой строку, которая начинается из амперсанта и заканчивается ";". Эти ссылки позволяют, в частности, вставить в документ специальные символы. Ссылки XML на объекты предоставляют намного больше возможностей, потому что они могут ссылаться на определенные автором разделы текста в том же или в другом документе.

Например, ссылки на объекты позволяют применить объектно-ориентированный подход при создании журнальной статьи:

article

introduction;

body;

sidebar;

conclusion;

resources;

/article

самый Простой XML- документ может выглядеть так, как это показано в Примере 1

?xml version=1.0?

list_of_items

item id=1first/перший/item

item id=2другий sub_itemпидпункт 1/sub_item/item

item id=3третий/item

item id=4last/останний/item

/list_of_items

В XML существуют открывающие, закрывающие и пустые тэги в HTML понятия пустого тэга тоже существует, но специального его обозначения не нужно.

Тело документа XML состоит из элементов разметки markup и непосредственно содержания документа - данных content. XML - тэги предназначены для определения элементов документа, их атрибутов и других конструкций языка.

Дорогой XML-документ повинен всегда начинаться с инструкции ? xml?, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа.

<а name="_toc477751787">правила создание XML - документа

В общем случае XML - документы должны удовлетворять таким требованиям:

· В заглавии документа помещается объявление XML, в котором указывается язык разметки документа, номер ее версии и дополнительная информация

· Каждый открывающий тэг, который определяет некоторую область данных в документе обязательно повинный иметь соответствующий закрывающий тег

· В XML учитывается регистр символив

· Все значения атрибутов, используемых в определении тэгов, должны быть взяты в лапки

· Вложенность тэгов в XML строго контролируется, потому необходимо следить за порядком следования открывающих и закрывающих тегив

· Вся информация, которая располагается между начальным и конечными тэгами, рассматривается в XML как даны и потому учитываются все символы форматування

Если XML - документ не нарушает приведенные правила, то он называется Формально правильным и все анализаторы, предназначенные для разбора XML - документов, смогут работать с ним корректно.

С XML-документом связаны три ровная корректность:

· Правильно побудований XML-документ - это такой, в котором элементы правильно структурированы в виде дерева с корректно расставленными открывающих и закрывающих тэгами.

· XML-документ Диючий правильно построен и содержит тэги, которые отвечают объявлению типа документа. Он содержит только элементы и значения атрибутов, которые отвечают DTD. Хотя XML-документ может подготавливаться и читаться без DTD, DTD существенно для установления действенности.

· XML-документ Синтаксически коректний находится вне контроля XML. Разработчик такого документа отвечает за его логическую структуризацию.

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

countrytitleRussia/titlecitytitleNovosibirsk/country/title/city

Для того, чтобы обеспечить проверку корректности XML-документив, необходимо использовать анализаторы, которые делают такую проверку и называются верифицированными.

На сегодняшний день существует два способа контроля правильности XML-документа: DTD - определение Document Type Definition и схемы данных Semantic Schema. Определение DTD- правил в XML не является необходимостью.

<а name="_toc477751788">конструкции мови

Содержание XML- документа являет собой набор элементов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных.

<а name="_toc477751789">елементи даних

Элемент - это структурная единица XML - документа. Вкладывая слово rose в в тэги flower /flower, мы определяем непраздный элемент, названный flower, содержанием которого является Rose. В общем случае в качестве содержания элементов могут выступать как простой текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции, из прорабатывания, комментарий, - то есть практически любые части XML - документа.

Дорогой непустой элемент повинен состоять из начального, конечного тегов и данных, между ними заключенных. Например, следующие фрагменты будут быть элементами:

flowerrose/flower

citynovosibirsk/city

,а эти - нет:

rose

flower

Rose

Набором всех элементов, которые содержатся в документе, задается его структура и определяются все иерархические соотношения. Плоская модель данных превращается с использованием элементов в сложную иерархическую систему с множественным числом возможных связей между элементами. Например, в таком примере мы описываем место расположения Новосибирских университетов указываем, что Новосибирский Университет расположен в городе Новосибирску, что, в свою очередь, находится в России, используя для этого вложенность элементов XML:

country id=russia

cities-list

city

titleновосибирск/title

statesiberia/state

universities-list

university id=2

titleновосибирский Государственный Технический Университет/title

noprivate/

address Url= nstu. ru/

descriptionдуже красивый институт/description

/university

university id=2

titleновосибирский Государственный Университет/title

noprivate/

address Url= nsu. ru/

descriptionтеж не поганои/description

/university

/universities-list

/city

/cities-list

/country

Проводя поиск в настоящем документе, программа клиента будет опираться на информацию, заложенную в его структуру, - используя элементы документа. То есть, если, например, нужно найти нужный университет в нужном городе, используя приведенный фрагмент документа, то необходимо будет пересмотреть содержание конкретного элемента university, что находится внутри конкретного элемента city. Поиск при этом, естественно, будет намного эффективнее, чем нахождение нужной последовательности по всему документу.

В XML документе, как правило, определяется хотя бы один элемент, названный корневым и из него программы-анализаторы начинают пересмотр документа. В приведенном примере этим элементом является country

В некоторых случаях тэги могут изменять и уточнять семантику тех или других фрагментов документа, по разному определяя ту же информацию, тем самым предоставляя дополнению-анализатору настоящего документа сводки о контексте использования описываемых данных.

В случае, если элемент не имеет содержания, то есть нет данных, которые он повинен определять, он называется пустым. Необходимо только помнить, что начальный и конечные тэги пустого элемента будто объединяется в один, и нужно обязательно ставить косую черточку перед угловой закрывающей наприклад, empty/;

Коментар

Комментариями является любая область данных, помещенная между последовательностями символов ! -- и -- Комментарий пропускаются анализатором и потому при разборе структуры документа в качестве значимой информации не рассматривается.

Атрибути

Если при определении элементов необходимо задать какие-то параметры, которые уточняют его характеристики, то есть возможность использовать атрибуты элемента. Атрибут - это пару название = значение, что нужно, задавать при определении элемента в начальном тэге. Пример:

color rgb=true#ff08ff/color

color rgb=falsewhite/color

Або

author id=0ivan Petrov/author

Примером использования атрибутов у HTML является описание элемента font:

font color=»white» name=»arial»black/font

<а name="_toc477751792">cпециальни символи

Для того, чтобы включить в документ символ, используемый для определения каких-либо конструкций языка и не вызывать при этом ошибки в процессе разбора такого документа, нужно использовать его специальный символьный или числовой идентификатор. Например, lt;, gt; quot; или #036;десяткова форма записи, #x1a шестнадцатеричная и т. д.

<а name="_toc477751793">директиви анализатора

Инструкции, предназначенные для анализаторов языка, описываются в XML документе с помощью специальных тэгов - ? и ? ;. Программа клиента использует эти инструкции для управления процессом разбора документа. Больше всего часто инструкции используются при определении типа документа например ? Xml version=»1.0»? или создании пространства имен.

Cdata

Разделы символьных данных - это части документа, анализируемые исключительно как символьные даны, что не поддаются разбору, но, в отличии от комментариев, используются приложением, выглядят так:

![CDATA[

Этот текст, даже если он содержит инструкции Javascript или элементы кода HTML, такие, как Bжирныйшрифт/b или H1заголовок/h1, не поддается грамматическому разбору. Вместо этого он отображается как есть.

]]

2. Таблицы стилив

Таблицы стилей вообще, и каскадные таблицы стилей Cascading Style Sheets, CSS в частности, позволяют отделить структуру и содержание документа от уровня представления. В приложении к Web и HTML это значит, что язык HTML не содержит в себе презентационные возможности: характер представления формируется отдельными инструментальными средствами.

Технология CSS заметно упрощает упорядочивание и сопровождение документов. Создав одну таблицу стилей, вы сможете использовать ее в сотнях документов. Уже в Css1, первой версии CSS, были предусмотрены элементы представления, вообще немыслимые в HTML например, регуляции физических размеров шрифтов.

Xml/css как метод публикации можно сопоставить с использованием программного средства прорабатывания текстов, которое поддерживает стили или макрокоманды: Xml/css осуществляет структуризацию документов, но возникающая структура не имеет независимой общедоступной семантики.

CSS могут служить и для форматирования документов XML, но это не очень удачный выбор. Главное преимущество XML в том, что она подает формат документа, для возможных манипуляций, в виде деревовидной структуры. К сожалению, CSS не способны взаимодействовать с деревом и могут только форматировать документы XML «как они есть». Вы можете вывести документ на экран в любом формате, но не можете осуществить какое-то выборочное представление его данных без приложения языка сценариев.

Данные ограничения привели к созданию XSL. Больше всего важна особенность XML и сопутствующей ему технологии расширяемого языка таблицы стилей Extensible Stylesheet Language, XSL складывается в отделении форматирования от информационного наполнения.

Таблицы стилей XSL описывают, как документы XML должны превращаться в другие форматы, такие, как HTML или RTF. Но таблицы стилей XML - это что-то большее, чем просто преобразователи форматов; они также предоставляют механизм для манипулирования данными. Например, данные можно сортировать, делать по им поиск, удалять или добавлять прямо из браузера.

XSL в состоянии также осуществлять условную трансформацию выведения в зависимости от значений разнообразных элементов или атрибутов. Более того, она позволяет спрашивать данные с использованием множественного числа разнообразных операторов шаблонов, символов подстановки, фильтров, булевых операторов и выражений множественного числа. XML и XSL никоим образом не предназначены для замены SQL, к тому же вряд ли найдутся много желающих беречь свои базы данных непосредственно в формате XML. Однако XSL отворяет возможность разнообразного поиска по данным после их загрузки в браузер. Вам некогда уже не понадобится использовать для поиска информации примитивную вмонтированную команду браузера Find.

Значительный потенциал XML в качестве промежуточного программного обеспечения подкрепляется объектной моделью документа Document Object Model, DOM, версия 1.0 якиа была принята в качестве рекомендации W3c в октябре 1998 года.

<а name="_toc477751803">3. Определение Типа Документов Dtd

Если тэги и элементы XML используются исключительно ради удобства на вашем собственном узле Web, то не имеет никакого значения, что вы даете этим элементам и тэгам имена, содержание которых отличается от стандартного и известный только вам. Если же, с другой стороны, вы хотите предоставлять данные внешнему миру и получать информацию от партнеров по бизнесу, то это обстоятельство приобретает огромное значение. Элементы и атрибуты должны употребляться вами точно так же, как и всеми другими людьми, или по крайней мере вы должны документировать то, что делаете.

Для этого используется определение типов документов Document Type Definition – DTD. Сохраненные в начале файла XML или наружу в виде файла.DTD, эти определения описывают информационную структуру документа. DTD перечисляют возможные имена элементов, определяют имеющиеся атрибуты для каждого типа элементов и описывают сочетаемость одних элементов с другими.

Каждая строка в определении типа документа может содержать декларацию типа элемента, именовать элемент и определять тип данных, что элемент может содержать. Она имеет такой вигляд

!ELEMENT имъя_елемента

тип_даних

Например, декларация определяет!ELEMENT publication #pcdata элемент с именем publication, что содержит символьные данные то есть текст.

Декларация !ELEMENT special_report article_1, article_2, article_3 определяет элемент с именем special_report, что содержит подэлемент article_1, article_2 и article_3 в отмеченном порядке, например:

special_report

article_1xml:час прийшов/article_1

article_2xml превосходит именно себе/article_2

article_3керування сетями и системами с помощью Xml/article_3

/special_report

После определения элементов DTD могут также определять атрибуты с помощью команды! ATTLIST. Она вказуе

Элемент, именует связанный с ним атрибут и потом описывает его допустимые значения.!ATTLIST позволяет управлять атрибутами и многими другими средствами: задавать значение по замовченню, уничтожать пробили и так далее DTD могут также содержать декларации! ENTITY, где определяются ссылки на объекты, а также декларации! NOTATION, что указывают, что делать с двоичными файлами не в формате XML.

Серьезное и кое-что чрезвычайное ограничение DTD заключается в том, что они не допускают типизации данных, то есть ограничивают данные конкретным форматом таким, как дата, целое число или число, с плавающей точкой. DTD используют другой синтаксис, чем XML, и не очень-то интуитивно понятные. По названным причинам DTD будут, наверно, замененные на более мощные и простые в использовании схемы XML, работа сверх которого ведется в настоящее время.

<а name="_toc477751808">4. Схемы даних

Схемы данных Schemas являются альтернативным средством создания правил построения XML-документив. В сравнении из DTD, схемы имеют более мощные средства для определения сложных структур данных, обеспечивают более понятное средство описания грамматики языка, состоятельные легко модернизироваться и расширяться. Безусловным преимуществом схем является также то, что они позволяют описывать правила для XML, - документа средствами самого же XML.

Однако это не значит, что схемы могут полностью заменить DTD-описи - это средство определения грамматики языка используется в настоящий момент практическими всеми верифицирующими анализаторами, XML и, более того, сами схемы, как обычные XML - элементы, тоже описываются DTD. Но серьезные возможности нового языка и ее относительной простоты, безусловно, дают основания подтверждать, что будущий стандарт найдет широкое приложение в качестве удобного и эффективного средства проверки корректности упорядочивания документов.

В настоящее время в W3 консорциуме идет работа над первой спецификацией схем данных.

Консорциум World Wide Web W3c не собирается давать свое благословение никаким дополнениям XML в терминологии XML «дополнением» называется описание отраслевых сроков с помощью некоторого набора тегов XML. Другими словами, конкретные вертикальные рынки должны самостоятельно согласовать внутри отрасли имена для своих объектов. Чтобы способствовать открытости и передбачуваности при упорядочивании схем XML в вертикальных отраслях, Microsoft выдвинула инициативу, названную Biztalk. По состоянию на августа 1999 года эту инициативу поддержало свыше 25 компаний.

Отчасти Biztalk являет собой не что другое, как общественный сервер Web, где публикуются все схемы, предложенные для использования в разнообразных отраслях. Однако Biztalk не ставит своей целью объединить все отрасли в попытке составить одну гигантскую схему для всех используемых в каком бы то ни было бизнесе данных.

Biztalk состоит из трех отдельных элементов. Во-первых, это хранилище на сервере Web вместе с рекомендациями и тэгами XML, используемыми для добавления новых схем в хранилище. Во-вторых, это разработка программного продукта, серверу Biztalk. И в-третьих, это будут интерактивные услуги на базе технологии Biztalk.

Отказ от Dtd

В том, которое касается отображения отраслевых данных, Biztalk выходит из бесперспективности определений типив документов Document Type Definition, DTD. Вместо того, чтобы поощрять разработку XML DTD, сторонники Biztalk описывают свои иерархии данных с помощью XML Schema как предусматривается, этот стандарт повинен прийти на смену DTD.

В настоящее время W3c пытается согласовать разнообразные подходы к схемам, но предложена версия стандарта - XML Schema - дает достаточно ясное представление о том, как будет выглядеть замена DTD. XML Schema имеет значительно более широкие возможности, чем DTD, причем описания даются с помощью непосредственно XML, без создания еще одной системы разметки, как в том нуждается DTD.

DTD вполне достаточно для базового определения документа, но они имеют несколько недостатков. Во-первых, они даются не на XML. Учитывая высокую степень адаптированной и расширяемость XML, наличие еще одного формата для определения документов является лишним.

Во-вторых, элементы DTD внутри документа XML нуждаются в полном определении всего, что находится внутри этих элементов. Другими словами, никакой подэлемент «на перспективу» не допускается - если такие будут присутствовать в документе, то, по определению, документ не будет быть правильно составленным. Между тем определения XML Schema используют модель открытого информационного наполнения, у которой неопределенные элементы полностью допустимы.

В-третьих, DTD ограничиваются только грамматикой и синтаксисом то есть отношением одного элемента к другому, тогда как XML Schema может также задавать непосредственные ограничения на тип данных, что элемент может содержать. Это значительно упрощает реализацию передачи данных додатка по сравнению с более традиционным текстовым документом. Например, точно так же, как это делают розроблювачи в языках программирования, вы можете явно отметить, что дана область сохранения может содержать только целочисленные даны. Наконец, розроблювачам, которые работают в средах Wintel, будет очень удобно то обстоятельство, что XML Schema легко отображается на Microsoft Document Object Model. Таким образом, что работает с документами XML программа может пригласить у соответствующей схемы имеется определение для элемента документа по своем выборе. Код выглядит таким способом:

Var booknode = doc. documentelement

Однако как же будет выглядеть сам документ, который содержит схему, изнутри? Во-первых, он будет содержать тэги XML, которые сообщают, что это схема, наподобие:

Schema name=»schema_sample_1»

... содержание схеми

/schema

Каждый пункт внутри схемы объявляется потом индивидуально, причем особенности каждого элемента расшифровываются с помощью вложенных тэгов, например:

Elementtype name=»persona» content=»textonly» /

Определяет элемент Inventor как способный содержать только текстовые данные.

Подобные схемы могут оказаться очень тяжелые для чтения, но они легко поддаются разбору с помощью инструментов XML. Другими словами, вам не будет нужно специальный редактор для работы с документом XML Schema, как в случае DTD.

В случае правил на базе XML для форматов коммерческих данных можно использовать для отображения одной схемы на друге вмонтированы функциональные возможности превращения XML - расширяемый язык таблиц стилей Extensible Stylesheet Language, XSL.

На общем уровне Biztalk Framework требует, чтобы издателе XML Schema придерживали определенных рекомендаций. Да, тэгам предлагается давать осмысленные имена с понятным нескороченим написанием; эти имена должны отвечать функциональному назначению информации, а не ее месту, в частной структуре данных например, «Partlocation» вместо «Partfieldfourteen», а информация, которая содержится в тэге, не должна нуждаться в специальном, отличающемся от XML, декодирование например, обозначение валюты денежной суммы должно сохраняться в виде элемента XML, а не присоединяться к сумме как в «$30us».

Необходимыми составляющими Biztalk Framework являются специальные, общие для всех отраслей тэги XML. Эти тэги призваны освободить розроблювачив от забот по поводу трех важнейших проблем взаимодействия дополнений. Во-первых, от того, как данные передаются из одного додатка в другой; во-вторых, от того, как «вызывать» другое дополнение, - отправление дополнения данных в формате XML должно быть достаточно; в-третьих, от того, в каком порядке должны выплывать элементы данных.

Один из тэгов определяет код, с помощью какого XML программа, которая принимает данные в формате, может установить, что за схема Biztalk используется. С помощью других тэгов дополнение может выяснить, кто является отправителем данных, что отправитель от него хочет и кому данные должны быть потом переданы.

Для обеспечения совместимости документ Biztalk повинен начинаться и, соответственно, заканчиваться тэгом Biztalk, чтобы получатель знал, что он вступил в сектор Biztalk. Тэг Msgtype задает пространство имен XML вашу конкретную схему, которая определяет допустимые элементы документа. Потому что ваша схема использует формат данных XML, то тип данных, которыми вы наполняете свой документ, будет легко установить. Наконец, вы можете также вставить блок маршрутных документов, например:

Route

From locationid=»11111111»

Locationtype=»duns»

process=»» path=»» handle=»3»/

To locationid=»222222222»

Locationtype=»duns»

Process=»» path=»»

Handle=»23cf15»/

/route

Biztalk Framework ничего не говорит о том, какие данные должны входить в четырех атрибута тэгов иfromto, она просто устанавливает назначение каждого из них. Тэги location идентифицируют сетевой узел возможно, с помощью URL, куда направляется документ, в то время как тэги process и handle определяют дополнение и конкретный экземпляр например, номер транзакции, к которому относятся данные. Тэг path служит своего рода вместилищем, где промежуточные серверы могут беречь сведения о дате и другой информации, чтобы маршрут и с помощью расширения обратный маршрут был видим всем серверам вдоль пути.

Бизнес-модель Biztalk

Microsoft выпустит серверный продукт для регуляции обмена BizTalk-сумисними сообщениями XML между партнерами по бизнесу бета-версия в конце осени 1999 года; готов продукт повинный выйти после Windows 2000.

<а name="_toc477751809">як это виглядае

Инструкции в схемах составляют набор правил, используя который, программа-клиент будет делать вывод о том, корректный документ или нет. Схема данных, например, может выглядеть таким образом:

schema id=ourschema

elementtype id=#title

string/

/elementtype

elementtype id=photo

element type=#title

attribute name=src/

/elementtype

elementtype id=gallery

element type=#photo

/elementtype

/schema

Если мы включим приведенные правила внутрь XML - документа, программа-клиент сможет использовать их для проверки. То есть, она теперь сможет определить, что правильным будет быть такой фрагмент:

gallery

photo id=1titlemy computer/title/photo

photo id=2titlemy family/title/photo

photo id=3titlemy dog/title/photo

/gallery

, а некорректным этот:

gallery

photo id=1/

photo index=2titlemy family/title/photo

photo index=3title My dog /titledognamesharik/dogname/photo

/gallery

Все конструкции языка схем описываются правилами XML DTD for Xml-data-schema.

<а name="_toc477751810">область схемы даних

Создавая схемы данных, мы определяем в документе специальный элемент, schema;, внутри которого содержатся описания правил:

schema id=ourschema

!-- последовательность инструкций --

/schema

Если использовать отдельное пространство имен, то полный XML-документ, который содержит в себе схему данных, будет высматривать таким способом:

?XML version=ъ1.0' ?

?xml:namespace href= mrcpk. nstu. ru/schemas/ as=s/?

s:schema id=ourschema

!-- последовательность инструкций --

/s:schema

<а name="_toc477751811">опис елементив

Для определения класса элемента, к которому в дальнейшем будут применяться инструкции, которые описывают его содержание и структуру, назначен специальный элемент схемы elementtype,

elementtype id=issue

descriptелемент содержит информацию о дежурном выпуске часопису/descript

/elementtype

Название элемента задается атрибутом id. Все последующие инструкции, которые относятся к описываемому классу, определяют его внутреннюю структуру и набор допустимых данных, содержатся внутри блока, заданного тэгами elementtype и /elementtype.

Как очевидно из приклада, при определении класса элемента, можно также использовать комментарий к нему, что заключают в тэги descript/descript

<а name="_toc477751812">атрибути елемента

Для того, чтобы в описании элемента определить его атрибуты и описать свойства этих атрибутов мы должны использовать элемент attribute:

elementtype id=photo

attribute name=src/

empty/

/elementtype

В данном примере элемента photo визначаеться атрибут Src, значением которого может быть любая последовательность разрешенных символов:

photo src=0/

photo src=some text

Подобно DTD, схемы данных позволяют устанавливать ограничение на значение и средство использования атрибутов. Для этого в дескрипторе attribute необходимо использовать параметр atttype.

Например, если мы хотим отметить, что значение атрибута должно использоваться программой-анализатором как уникальный идентификатор, то нам необходимо создать такое правило:

elementtype id=bouquet

attribute name=id atttype=id

/elementtype

Если же нужно задать список возможных значений атрибута, то пример будет высматривать таким способом:

attribute name=flower atttype=enumeration values=red green blue default=red

<а name="_toc477751813">модель содержанию елемента

Под моделью содержания в схеме данных понимают описание всех допустимых объектов XML - документа, использование которых внутри данного элемента является корректным. Модель содержания определяется инструкциями, расположенными внутри блока elementtype.

elementtype id=article

attribute name=id atttype=id

element type=#title

string/

/elementtype

Для этого правила корректным будет быть такой фрагмент документа:

article id=0

titleпсихи и маньяки в Интернет/title

/article

Вложенные элементы описываются с помощью инструкции element, в которой параметром type указывается класс объекта - ссылка на его определение:

elementtype id=article

element type=#title/

element type=#author/

/elementtype

Если нужно отметить режим использования вложенного элемента, то нужно определить параметр occurs:

elementtype id=article

element type=#title occurs=required/

element type=#author occurs=optional/

element type=#subject occurs=oneormore/

/elementtype

Возможны значения этого параметра таковы:

REQUIRED - элемент повинен быть обязательно визначений

OPTIONAL - использование элемента не есть обов’язковим

ZEROORMORE - вложенный элемент может встречаться несколько раз или ни одного разу

ONEORMORE - элемент повинен встречаться хотя бы один раз

Примеры правильных XML-документив, которые используют приведенную выше схему:

article

titleнавищо он нужен, XML?/title

authorиван Петров/author

subjectщо такое Xml/subject

subjectпотрибний или он нам/subject

/article

Або

article

titleнавищо он нужен, XML?/title

subjectщо такое Xml/subject

/article

Кроме элементов, содержанием XML-документа могут также быть обычным текстом и областями CDATA. Для обозначения типов содержания текущего элемента в схемах используются такие инструкции:

string/ - указывает на то, что содержанием элемента является только свободная текстовая информация секция PCDATA:

elementtype id=flower

string/

/elementtype

any/ - указывает на то, что содержанием элемента должны быть только элементы, без текста, незаключенного ни в один элемент:

elementtype id=issue

any/

/elementtype

mixed - любое соединение элементов и тексту

elementtype id=contacts

mixed/

/elementtype

empty - пустой елемент

Пример:

elementtype id=title

string/

/elementtype

elementtype id=chapter

string/

/elementtype

elementtype id=chapters-list

any/

/elementtype

elementtype id=content

element type=#chapters-list occurs=optional

/elementtype

elementtype id=article

mixedelement type=#title/mixed

element type=#content occurs=optional

/elementtype

Что в имени твоему?

Расширяемый язык разметки Extensible Markup Language, XML позволяет вам создавать свои собственные тэги, документировать их с помощью определений типов документов Document Type Definition, DTD или схемы XML и потом без проблем обмениваться данными с другими источниками. Все это хорошо, но может оказаться, что другие используют те же, что и вы, имена для элементов и атрибутов, но при этом опираются на другие DTD. Это прямой путь к проблемам.

Во избежание подобных конфликтов W3c разработал концепцию пространств имен и ключевого слова xmlns. Благодаря ним в одном документе могут использоваться имена элементов и атрибутов, которые иначе вступили бы в конфликт друг с другом. Теперь же они отличаются разными префиксами пространства имен и определяются по разнообразным DTD или схемах.

Вот, например, фрагмент кода XML с использованием пространств имен:

inventory xmlns:storea=

« knowknew. com/

Books. dtd» xmlns:storeb=

« amazon. com/schema»

storea:magazine

storea:titlenetwork

Magazine/storea:title

/storea:magazine

storeb:magazine

storeb:magazine storeb:title=

«Data Communications»

/storeb:magazine

/inventory

В определении DTD магазина А название книги является подэлементом журнала. В схеме магазина Бы название является атрибутом журнала.

Благодаря различению имен с помощью разных префиксов пространств имен они могут применяться вместе. Местонахождение DTD и схемы указывается в этом примере с помощью URL, но оно может также определяться с помощью Uniform Resource Name URN, см. RFC 2141 или Uniform Resource Identifier URI, см. RFC 2396.

5. Использование для описания данных Intelligent Enterprise, August 03, 1999, Volume 2, Number 11

Одной из особенностей XML, что привлекает внимание промышленности, является возможность описания структур данных и данных, которые сохраняются. С использованием XML можно определить новые тэги специально для описания эквивалента таблиц и столбиков или сущностей и атрибутов в структуре реляционной базы данных. Еще более существенно то, что тэги для набора столбиков или атрибутов могут связываться с тэгами для их родительской таблицы или сущности. Хотя теговая структура кажется красивым механизмом для описания и понимания структуры базы данных, способ организации данных требует как никогда ранее суровой дисциплины. XML не запрещает иметь повторяются группы, ужасные структуры данных и т. д.

OMG сформировала набор тегов, названный XML Metadata Interchange XMI, с целью предоставления возможности описания в стандартных сроках структуры данных о данных метаданных. Этот стандарт будет полезен для обмена метаданными между CASE-засобами и для описания репозитория метаданных в проектах хранилищ данных. Двигаясь в том же направлении, группа компаний щовключае, в частности, IBM и Oracle находится в процессе определения Common Warehouse Metadata Interchange Cwmi, подмножества XMI для поддержки хранилищ данных.

Это значит, что есть два подхода к описанию структуры базы данных на XML:

Во-первых, прикладную базу данных может описывать DTD XML-документа. В этом случае операционные даны базы данных могут быть размещены между наборами описанных тэгов. Такое DTD может, например, генерироваться одним CASE-засобом, а читаться другим, обеспечивая средство передачи структуры данных.

Во-вторых, можно разместить сами определения таблицы и столбиков между тэгами XMI, определенными на высшем уровне абстракции. Этот подход немного более хитер, поскольку метамодель XMI Дуже абстрактна, но использование метамодели XMI позволяет описывать намного больше, чем таблицы и столбики.

Однако заметим, что проблема определения репозитория метаданных или обмена метаданными между CASE-засобами не связанный с использованием XML или какого-то другого языка. Проблемой является структура и семантика базы данных. Важный вопрос заключается не в том, Як будет представляться универсальный репозиторий метаданных. Можно легко представить репозиторий в виде набора реляционных таблиц или диаграмм сущность/связь. Вопрос заключается в том, Что находится в репозитории и Что это означае? Какие объекты являются существенными и должны быть описаны? Это намного складиша тема, и она все еще находится в стадии обсуждения. Наличие нового языка не вносит существенный взнос в это обсуждение.

В действительности при наличии понимания, что XML является красивым средством для описания структуры базы данных, больше всего очевидным выводом является то, что использование этого языка налагает большую ответственность на администраторов данных по поводу корректности определения данных. XML не обеспечивает такую корректность; XML всего лишь регистрирует любой проект данных, который поступает от разработчика.

Появление XML повышает важность моделирования и проектирования данных.