Введение в XML


Содержание

XML для начинающих

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

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

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

В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

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

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

) и местоположение рисунков.

Отличительные черты XML

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

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

Учитывайте при работе следующее:

HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

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

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

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

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Правильно сформированные данные

Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

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

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

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

Схемы

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

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

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов . :

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

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

Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

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

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

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

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

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

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

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают расширенную поддержку XML. Начиная с 2007 Microsoft Office System, Microsoft Office использует форматы файлов на основе XML, например DOCX, XLSX и PPTX. Так как XML хранит данные в текстовом формате, а не в собственном двоичном формате, клиенты могут определять собственные схемы и использовать ваши данные разными способами, без необходимости платить ройалтиес. Дополнительные сведения о новых форматах см. в статье форматы Open XML и расширения имен файлов. Ниже приведены другие преимущества.

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и повышенная безопасность. XML — это читаемость, поэтому если файл поврежден, вы можете открыть его в Microsoft Notepad или в другом текстовом средстве чтения и восстановить по крайней мере часть ваших данных. Кроме того, новые файлы более безопасны, поскольку они не могут содержать код Visual Basic для приложений (VBA). Если для создания шаблонов используется новый формат, все элементы ActiveX и макросы VBA располагаются в отдельном, более безопасном разделе файла. Кроме того, для удаления личных данных можно использовать инструменты, такие как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных путем проверки документов.

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

Включение средств XML в Office

По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2020, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

Введение в XML

XML является Software- и аппаратно-независимый инструмент для хранения и транспортировки данных.

Зачем изучать XML?

XML играет важную роль во многих ИТ-систем.

По этой причине важно, чтобы все разработчики программного обеспечения, чтобы иметь хорошее понимание XML.

Перед тем, как продолжить, вы также должны иметь базовое понимание:

Если вы хотите изучать эти предметы во- первых, найти учебники на нашей домашней странице .

Что такое XML?

  • XML означает расширяемый язык разметки
  • XML является языком разметки HTML так же, как
  • XML был разработан для хранения и транспортировки данных
  • XML был разработан, чтобы быть самостоятельной описательный
  • XML является Рекомендация W3C

XML ничего не делает

Может быть, это немного трудно понять, но XML ничего не делает.

Это примечание примечание к Tove, из Джани, хранится в виде XML:

Вид, создание и структура XML-файла

XML — это расширение файла Extensible Markup Language, применяемого для создания общих информационных форматов и совместного использования как формата, так и данных во Всемирной паутине, интрасетях и в других местах с использованием стандартного текста ASCII. Это универсальный формат данных и структурированных документов с расширением XML. Как и HTML, он использует теги слова, разделенные символами «>» и » Документы XML обязаны иметь корневой элемент — родительский для всех остальных. Они могут содержать вложенные элементы, текст и атрибуты. Дерево, представленное таким документом, начинается с элемента-корня и ветвится до самого низшего уровня элементов. Хотя нет единого мнения о терминологии, используемой в деревьях XML, W3C выпустил по крайней мере две стандартные терминологии:

  1. Терминология, используемая в модели данных XPath.
  2. Терминология, используемая в информационном наборе XML.

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

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

Обмен данными

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

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

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

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

Разработка тестовых приложений

Когда у пользователя есть файл XML, который содержит полезные данные, рано или поздно, потребуется их применить. Для этого можно легко отобразить их в любом текстовом редакторе или открыть в браузере с поддержкой XML, например, в Microsoft Internet Explorer. Если нужно отобразить их не просто в виде текста, можно использовать все — от приложений базы данных до веб-браузеров.

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

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

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

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

Механизм XDTO в 1С

Создатели 1С, ставя перед собой задачу обмена данных с использованием изучаемого языка, разработали механизм — XDTO для объектов передачи структуры XML-файла 1С. Каковы преимущества? Версия программы 8.1 и выше позволяет обмен информацией с системами, не углубляясь в темы создания XML-файла, решая большинство проблем 1С. И также можно отправлять только необходимую информацию для образования документа. Для этого программисту потребуется заранее выполнить некоторые процедуры.

Для загрузки файла XML с использованием XDTO, нужно передать структуру файла 1C с помощью набора схем, созданных в текстовом редакторе или использовать специальное ПО. Результатом должен быть файл, описывающий уникальный тип и структуру, использующих в XML. Прежде чем прочитать или писать последний файл, программист загружает полученную конфигурацию в области «Пакеты XDTO». Для воссоздания у пользователя должен быть основной элемент и вложения с атрибутами. Полученная схема экспортируется в файл XSD и отправляется совместно с изучаемым, таким образом формируя пакет XDTO.

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

Распространенные ошибки

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

Итак, распространенные ошибки структуры XML файла:

  1. Нужно указать язык с помощью оператора объявления, чтобы браузер понимал код, на котором он написан.
  2. XML работает в иерархическом стиле. Это означает, что все дочерние элементы должны иметь родителей, строки данных должны быть между тегами элемента, комментарии должны быть внутри тегов.
  3. XML требует, чтобы были закрыты все теги. В HTML можно избежать случайного открытия тега, и некоторые браузеры даже закрывают теги при отображении страницы. Документ XML с открытым тегом всегда будет выдавать ошибку.
  4. Поскольку изучаемый язык работает в древовидной структуре, каждая страница должна иметь корневой элемент на вершине дерева. Имя элемента не имеет значения, но оно должно быть там перед тем, как получить структуру XML-файла. Иначе последующие теги не будут должным образом вложены.
  5. XML интерпретирует 50 пробелов так же, как и один. Язык собирает несколько пробелов, известных как пробельные символы, и скомпактирует их в один. Это не имеет ничего общего с визуальным отображением или дизайном. Пробел, используемый для выравнивания текста, ничего не значит в коде XML, поэтому если разработчик добавляет много лишних пробелов, чтобы попытаться продемонстрировать какой-то визуальный макет или дизайн, он просто теряет время.

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

Описание данных с помощью XML

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

Расширяемый язык разметки (Extensible Markup Language, XML), созданный в 1996 году Консорциумом W3C (World Wide Web Consortium), является подклассом стандартного языка разметки (Standard Generalized Markup Language, SGML). XML был задуман как гибкий и в то же время формальный метаязык для использования в Интернете.

Метаязык (metalanguage) — это язык, предназначенный для описания других языков. Например, можно сказать, что словарь английского языка в совокупности с английской грамматикой образуют метаязык, описывающий английский язык.

Что касается языка XML, то назначение его — описывать языки разметки. В языке разметки (markup language) для структурирования данных используются теги. Язык гипертекстовой разметки (Hypertext Markup Language, HTML), наиболее распространенный на сегодняшний день язык разметки, исходно был написан на SGML, но мог бы быть и в какой-то степени был написан и на XML.

Язык HTML был задуман для решения специфических задач — разметки документов научной и академической направленности. Если вы занимались какой-либо деятельностью по разработке web-страниц, то хорошо знаете, что в настоящее время HTML «трещит по всем швам», так как на протяжении многих лет делаются попытки дополнить его так, чтобы он соответствовал всем запросам web-программистов. Многие называют XML заменой HTML, но это не совсем точное высказывание.

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

и ) [Price — цена, quantity — количество. — Примеч. перев. ].

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

сам файл XML, имеющий строго определенную структуру;

определение типа документа (Document Type Definition, DTD), где определяется структура файла XML (необязательный элемент);

таблицы стилей, содержащие информацию о том, как данные должны быть отформатированы при выводе (необязательный элемент);

процессор XML и различные служебные функции для манипулирования данными и переформатирования данных.

Для разработчиков web-приложений привычными являются рассуждения о том, что делают с текстом те или иные теги. Мы привыкли к тому, например, что тег выделяет соответствующий текст жирным шрифтом. Тем не менее фактически этот тег не имеет какого-либо собственного значения. Как будет отображен текст, помеченный тегом , полностью зависит от программы, анализирующей данные. В случае HTML такой программой обычно является web-браузер. Поскольку документы HTML создаются обычно в предположении, что их будут читать с помощью web-браузера, многие теги HTML указывают, как следует форматировать данные, но не содержат никакой информации для обычного человека. Назначение XML заключается как раз в том, чтобы отделить данные, содержащиеся в документе, от кода, который задает формат отображения этих данных. Это свойство XML позволяет извлекать данные из документа автоматически, то есть с помощью программных средств.

К примеру, предположим, что вы — торговый посредник и занимаетесь продажей электрических лампочек. На вашем web-сайте приводится самая свежая информация о ценах на товары от различных производителей. Вместо того чтобы вручную проверять web-сайты этих производителей и таким образом узнавать информацию о ценах, вы решаете написать программу, которая автоматически бы считывала цены, добавляла бы 10 % (надбавка для вас) и отображала бы информацию о товарах на вашем web-сайте. Пусть одним из ваших поставщиков является фирма ABC Lightening. В листинге 1.1 приводится часть кода HTML для таблицы, содержащей данные о товарах из web-сайта ABC Lightening [Авторы курса в листингах лекций 1 и 2 приводят вымышленные описания товаров, которые не следует воспринимать всерьез. — Примеч. перев. ].

Листинг 1.1. Код HTML для таблицы, содержащей информацию о товарах [Все представленные в курсе тексты программ можно найти на сайте издательства по адресу www.piter.com. — Примеч. ред. ]

Документ HTML только определяет, как должен быть отформатирован данный текст. Автоматическое извлечение информации из статической страницы HTML даже в лучшем случае окажется весьма непростой задачей. Если вы хотите написать программу, которая бы извлекала данные о цене из приведенного кода HTML, вы можете указать, что цена фонарика присутствует в третьем столбце таблицы в той строке, где в первом столбце стоит слово «фонарик». Но при этом вы рискуете тем, что ваша программа перестанет работать, если изменится дизайн web-сайта ABC Lightening или просто поменяется название данного товара.

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

В листинге 1.2 приведен пример того, как та же информация может быть представлена с помощью XML [Catalog — каталог, product — товар, name — название, description — описание. — Примеч. перев ].

Листинг 1.2. Документ XML, содержащий информацию о товарах

Первая строка этого документа — объявление XML, которое содержит информацию, предназначенную для анализатора XML. Объявление XML (XML declaration) идентифицирует тип документа и версию XML, которая использовалась при создании документа. Эта строка не является обязательной, но, как правило, именно с нее начинается документ XML. Атрибут standalone = «no» означает, что данный документ снабжен DTD. Следующая строка — это объявление типа документа (document type declaration), которое указывает, какому DTD соответствует этот документ. В данном случае используется определение DTD, называемое catalog.dtd. Обратите внимание на то, что, хотя аббревиатуры совпадают, имеется большая разница между определением типа документа (сокращенно DTD — Document Type Definition) и объявлением типа документа. Объявление типа документа используется, чтобы указать, какому определению типа документа соответствует данный документ XML.

В объявлении типа документа также указывается корневой элемент документа. Корневой элемент (root element) — это элемент, который включает в себя все остальные элементы документа. В данном случае корневым является элемент ABC_Lightening:catalog. Часть имени элемента, расположенная перед двоеточием, идентифицирует пространство имен тега. Пространства имен не являются обязательными, но их можно использовать для того, чтобы гарантировать уникальность тегов. Если фирма ABC_Lightening начнет продавать товары других производителей, то пространства имен помогут избежать возможной путаницы, связанной с тем, что появятся элементы данных, внешние по отношению к этой фирме, с теми же названиями, но иначе структурированные.

Ниже показано, как может выглядеть определение catalog.dtd для гипотетического каталога товаров:

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

WEB-РЕСУРСЫ XML

Следующие web-ресурсы содержат информацию о последних разработках в области XML, планах на будущее и инструментальных средствах, полезных при работе с XML:

xmlhack (www.xmlhack.com) — новости для web-разработчиков;

Enhydra (www.enhydra.org) — домашняя страница сервера Enhydra, посвященного приложениям Java/XML;

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

На стороне клиента XML позволяет достичь такого уровня соответствия конкретным условиям представления данных, которого очень трудно или невозможно достичь с использованием HTML. Например, для таких устройств, как PDA (Personal Digital Assistant — «карманный» компьютер, предназначенный для выполнения некоторых специальных функций) или мобильный телефон, требуется, чтобы страницы были отформатированы совсем не так, как для стандартных web-браузеров. Обычно, если даже имелась готовая страница, предназначенная для web-браузера, для подобных устройств приходилось полностью ее переделывать, то есть фактически создавать новую версию этой страницы. Однако благодаря структурированным данным документа XML, в котором содержательные данные отделены от форматирующих указаний, все, что вам надо сделать для приведения страницы в соответствие с каждым конкретным отображающем ее прибором, — это применить к имеющимся данным нужную таблицу стилей.

В наши дни XML оказывает очень большое влияние на организацию работы сервера. Один из способов применения XML на стороне сервера — передача сообщений (messaging), то есть обмен данными между приложениями или компьютерами. Чтобы приложения и компьютеры могли обмениваться информацией, для них должен быть определен единый формат сообщений. Представить себе то огромное влияние, которое XML может иметь в этой области, невозможно, не зная, хотя бы в общих чертах, истории передачи сообщений. Выбор стандарта для этого остается проблемой с тех времен, когда люди начали общаться между собой, но здесь я имею в виду только последние 30 лет.

Электронная коммерция, согласно определению европейского семинара, посвященного технической поддержке электронной коммерции (European Workshop on Open System’s Technical Guide on Electronic Commerce, EWOS TGEC 066), включает в себя такие разнообразные области, как маркетинг, поддержка логистики, проведение деловых операций и взаимодействие с административными органами (например, обмен данными по налогам и таможенным отчислениям). Механизм EDI (Electronic Data Interchange), предназначенный для обмена данными в электронной форме, начинает свою историю с 1970-х годов, когда он был впервые предложен Комитетом по координации передачи данных (Transportation Data Coordinating Committee, TDCC). В таких отраслях деятельности, как финансовая, где сетевые технологии начали применяться уже более тридцати лет назад, EDI служил в качестве стандартного формата обмена сообщениями. Недостаток систем EDI заключается в том, что их установка и поддержка обходятся дорого и, кроме того, они часто требуют выделенных линий.

В 1980-х годах началось бурное распространение и внедрение в фирмах систем электронной почты для рабочих групп. По мере того как производители пытались утвердить свои варианты таких систем в качестве стандарта, все больше фирм переходило на использование в своем бизнесе электронной почты. Такие пакеты, как Microsoft Mail и Lotus cc:Mail, позволяли небольшим компаниям обмениваться электронными сообщениями в пределах своей внутренней сети, но при попытке увеличить ее охват обычно начинались проблемы, управление сетью становилось все более трудной задачей. Также оказалось сложным объединить с внешним миром локальную сеть (Local Area Network, LAN). Результат, как и всегда в отношении компьютерных технологий, заключался в том, что передача сообщений становилась все более децентрализованной. По мере того как передача электронных сообщений отходила от первоначальной централизованной, строго контролируемой системы, требующей выделенных линий связи, в эту технологию вовлекалось все больше пользователей. Децентрализация привела также к огромным проблемам в отношении совместимости различных форматов, к дублированию разработок в области электронной коммуникации и к невозможности организованного ее развития.

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

В первую очередь нужно было договориться о языке, и здесь XML оказался наиболее подходящим кандидатом. Основная причина, по которой XML прекрасно подходит для создания форматов передачи сообщений, — это его простота. XML подчиняется строго определенному стандарту, он не связан с какой-либо операционной системой или производителем, он совместим с большим количеством инструментальных средств и приложений, которые на протяжении многих лет разрабатывались для SGML. Требование строгого соответствия документов XML стандартам, установленным для правильно оформленных (well-formed) документов, гарантирует, что любой анализатор XML будет в состоянии прочесть и осмыслить любой документ XML. Кроме того, гораздо больше людей знакомы с языками разметки, чем с форматами сообщений, необходимыми для построения систем EDI. Благодаря XML формат сообщений может разработать любой, кто способен составить правильно оформленный документ XML.

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

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

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

Unicode — это официальный путь реализации универсального набора символов (Universal Character Set, UCS), определенного Международной организацией по стандартизации (International Standards Organization, ISO); иначе говоря, это универсальный стандарт кодировки символов для электронного представления текста и его компьютерной обработки. Для преобразования кодировок символов в фактический набор битов используются форматы преобразования UCS, или сокращенно — UTF (UCS Transformation Formats).

Спецификация XML требует, чтобы процессоры XML поддерживали два формата UTF: UTF-8 и UTF-16. В UTF-16 используются два байта для представления каждого символа. В UTF-8 для символов ASCII используется кодировка ASCII, занимающая один байт, а для символов, не входящих в ASCII, — кодировка переменной длины. Формат UTF-8 полезен, если вы хотите поддерживать совместимость с ASCII. Недостатком этого формата является то, что для представления остальных символов (не входящих в ASCII) в нем может потребоваться от 1 до 3 байтов. Если ваш текст в основном состоит из ASCII-символов, UTF-8 позволит вам сэкономить объем памяти. Если же вы используете другие символы, то этот формат, напротив, потребует излишних затрат. По умолчанию в XML применяют формат UTF-8. Кодировка документа определяется в объявлении XML с помощью специального атрибута кодировки (encoding), как показано в следующем примере:

В, настоящее время HTML-браузеры, как правило, делают попытки отобразить любой документ, даже содержащий ошибки или использующий очень старую версию HTML. С другой стороны, процессоры XML должны сообщать о неисправимой ошибке в случае, если они встречают ошибку в разметке. Неисправимая ошибка (fatal error) означает, что приложение не может выполняться далее, и выдает сообщение об ошибке. Такая строгая обработка ошибок иногда называется драконовской (draconian error-handling). Хотя этот способ обработки ошибок для тех, кто создает свои документы на HTML или на SGML, может показаться примитивным, в случае с XML он необходим, так как гарантирует, что любые XML-анализаторы будут воспринимать данный документ XML одинаково.

Илон Маск рекомендует:  Фреймы. Frame.

Документ XML, соответствующий правилам синтаксиса XML, называется правильно оформленным (well-formed). Авторы XML включили требование об этом в спецификацию XML, чтобы предотвратить для XML опасность стать жертвой так называемых «войн браузеров». Результатом таких «войн» между Microsoft и Netscape стало то, что теперь при создании HTML-документа авторам приходится постоянно заботиться о совместимости. Если бы такая история приключилась и с языком XML, он стал бы совершенно бесполезным.

Процессор XML (XML processor) — это программный модуль, который обеспечивает доступ приложений к данным, хранящимся в документах XML. Процессоры XML могут быть как проверяющими, так и не проверяющими допустимость (validating) документа. Проверяющий допустимость документа процессор определяет, существует ли для данного XML-документа DTD, и в случае положительного результата — соответствует ли структура документа правилам, указанным в DTD. Не проверяющий допустимость документа процессор должен удостовериться только в том, что документ соответствует правилам XML.

Весь текст XML-документа можно грубо разделить на две категории, символьные данные и разметку. К разметке (markup) относится все, что начинается с символа или начинается с символа & и заканчивается парой символов &;. Символьные данные (character data) — это все, что не является разметкой. Символьные данные можно подразделить еще на две категории: проверенные символьные данные (Parsed Character DATA, PCDATA) и непроверенные символьные данные (unparsed character data). Как следует из названия, данные PCDATA — это данные, проверенные анализатором XML.

В листинге 1.3 показан пример правильно оформленного документа XML [Beverage — напиток, manufacturer — производитель, nutntion_facts servmg_size= «1 can’ — содержание питательных веществ в одной бутылке, calories — калории, amount unit=»g» — количество в граммах, fat — жиры, sodium — натрий, carb — углеводы, protein — белки — Примеч перев ]:

Листинг 1.3. Правильно оформленный документ XML

В первую очередь в этом листинге следует отметить, что в объявлении XML присутствует атрибут standalone=»yes». Это означает, что в данном документе нет определения DTD. Наличие DTD в документах XML не является обязательным. Фактически приложения, в которых задействованы данные XML, часто не включают DTD в целях повышения эффективности в тех случаях, когда структура документа и возможность его многократного использования не являются важными факторами.

Следом за объявлением XML идут элементы. Элемент (element) — это наиболее распространенная форма разметки; он выделяется с помощью угловых скобок ( ) и описывает тот фрагмент данных, который заключен между скобками > и . , например). Имя элемента называется его общим идентификатором (Generic Identifier, GI) или типом (type). Текст между открывающим и закрывающим тегами называется содержимым (content) элемента. Например, типом следующего элемента является book (книга), а название книги (Java Developer’s Guide to XML) — его содержимым:

Элемент, лишенный содержимого, называется пустым элементом (empty element). Открывающий и закрывающий теги пустого элемента можно объединить в один тег, поместив в его конец косую черту:
. В XML также допускается запись пустого элемента с помощью открывающего и закрывающего тегов, например
.

Фактически существуют два типа пустых элементов: те, которые заранее определены как пустые и в принципе не могут иметь содержимого, и те, которые оказались пустыми случайно. Чтобы различить эти два типа элементов, рекомендуется использовать пару (открывающий тег, закрывающий тег) для тех элементов, которые не содержат данных, и один тег для тех элементов, которые определены как пустые.

Например, тег HTML
не может иметь содержимого, поэтому его нужно записывать как
Если же, к примеру, в вашем документе XML имеется экземпляр элемента, который в данный момент не имеет содержимого, но может получить его в дальнейшем, следует использовать стандартный синтаксис, то есть два тега [Cupboard — шкаф — Примеч перев ]:

У элементов могут быть атрибуты. Атрибут (attribute) — это пара имя-значение, расположенная в открывающем теге элемента. В следующем примере src, width и height являются атрибутами элемента img [Image — изображение, width — ширина, height — высота — Примеч перев ].

СОВЕТ

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

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

DTD, или определение типа документа, — это способ явным образом определить структуру класса документов XML Например, в DTD для перечня животных может быть задано, что для каждого животного нужно указать его имя, вид и характерный звук, который издает это животное DTD для этого перечня может выглядеть так [Animal-list — список животных, animal — животное, name — имя, type — вид, sound — звук. — Примеч перев]:

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

ПРИМЕЧАНИЕ

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

Основным базовым типом объявления в DTD является объявление элемента, . Формат объявления элемента:

Каждый элемент, который используется в документе XML, должен быть определен в DTD. Существует несколько правил, которым нужно следовать при именовании элементов:

имена элементов не должны содержать символа ;

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

имена элементов не могут начинаться с последовательности xml (в любой комбинации верхнего или нижнего регистров),

двоеточия запрещены, они применяются только в пространствах имен

В объявлении элемента вы указываете, что может появиться в качестве содержимого этого элемента Если вам нужно объявить элемент, который не должен содержать никаких данных, вы можете использовать тип EMPTY (например, ).

Хороший пример пустого элемента — элемент HTML img Чтобы этот элемент не нарушал принципа допустимости документа XML, нужно использовать синтаксис, определенный для пустого элемента XML:

Если вам нужно, чтобы в элементе были только данные PCDATA, используется следующее объявление:

Вы можете также указать, какие типы элементов могут появиться в элементе, в каком порядке и в каком количестве, как показано в следующем примере [My memoires — мои воспоминания, title — название, author — автор, philosophizing — философствования, sad_story — грустная история, funny_story — смешная история, lesson — наставление, conclusion — вывод — Примеч nepee ]:

В данном примере каждый из приведенных типов элементов должен появиться один раз (и только раз) внутри элемента mymemories в том порядке, в котором они перечислены в объявлении.

ПРИМЕЧАНИЕ

Элементы, которые появляются в элементе mymemoires, называются его дочерними элементами, а сам элемент mymemoires называется родительским. Каждый элемент может быть дочерним по отношению к любому количеству других элементов в документе. Элементы, разделенные более чем одним уровнем в иерархической системе, называются внуками, правнуками и т. д. (или соответственно дедами, прадедами — в другом направлении). Также можно при описании взаимоотношений между элементами использовать термины «предок» и «потомок».

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

? — элемент должен встретиться один раз или не встретиться ни разу;

+ — элемент должен встретиться один или более раз;

* — элемент может встретиться любое количество раз или не встретиться вовсе.

Ниже снова приведено объявление элемента mymemoirs, переписанное с использованием операторов повторяемости:

Вы также можете указать, что некоторые элементы могут появиться как альтернатива другим элементам (то есть что между ними нужно делать выбор) с помощью вертикальной черты (|):

В этом объявлении элемент mymemoirs может содержать один или более элементов lesson или conclusion, но не оба одновременно. Еще более сложные правила можно создавать с использованием вложенных скобок. В листинге 1.4 показано, как может выглядеть определение mymeroirs.dtd [Paragraph — абзац, letter — письмо. — Примеч. перев. ].

Листинг 1.4. Полная версия определения mymeroirs.dtd

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

ПРИМЕЧАНИЕ

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

Атрибуты используются для связывания пар имя-значение с элементами. Они определяются с помощью специальных объявлений атрибутов. Формат объявления атрибута в DTD следующий [Target_element — элемент, к которому относится данный атрибут, type — тип, default_value — значение по умолчанию. — Примеч. перев. ]:

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

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

Ниже приведены некоторые примеры объявлений атрибутов (несколько позже будет объяснено их значение) [Gender (male|female) — пол (мужской|женский), species — вид, «Cams familiaris» — «собака обыкновенная». — Примеч. перев.]:

Существует девять различных типов атрибутов, которые подразделяются на три категории: строковые (string), маркерные (tokenized) и перечислимые (enumerated). Строковые атрибуты определяются с помощью ключевого слова CDATA, которое указывается в качестве типа атрибута, как показано в следующем примере:

Значением этой строки может быть любая корректная строка символов.

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

Атрибуты ID и IDREF можно использовать почти так же, как теги якоря А в HTML Значением атрибута IDREF должно быть значение атрибута ID какого-либо другого элемента (то есть они задают перекрестную ссылку). Например, в следующем фрагменте DTD объявляется элемент с атрибутом ID и элемент с атрибутом IDREF, который ссылается на первый элемент [Featured_products — ключевые товары, product_reference — ссылка на товар — Примеч перев]:

В файле XML, который использует это DTD, может содержаться фрагмент, подобный следующему:

В атрибутах перечислимых типов приводится список всех возможных значений этого атрибута. Например, если вы хотите объявить атрибут с именем angle_type для элемента, названного triangle, можно указать возможные значения следующим образом [Triangle — треугольник, angle_type — тип угла, obtuse|acute|nght — тупои|острыи|прямой — Примеч перев]:

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

Этот атрибут должен присутствовать в каждом экземпляре элемента

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

Этот атрибут должен присутствовать в каждом экземпляре элемента и иметь указанное значение

Объявления сущностей позволяют использовать ссылки на сущность. Ссылка на сущность (entity) — это последовательность символов, которая автоматически подставляется вместо другой последовательности символов. Обычно ссылки на сущность требуются для того, чтобы обозначить символы, которые иначе могут быть приняты за символы разметки. Если вы имели дело с HTML, то, вероятно, сталкивались со ссылками на сущность. Наиболее распространенный тип сущности — это общая сущность (general entity), то есть сущность, которую можно подставить вместо символов в документах XML Формат объявления общей сущности следующий:

Ссылки на сущность имеют вид &имя_сущности; В XML имеется пять встроенных сущностей. Их не обязательно объявлять в DTD, хотя в спецификации XML это сделать рекомендуется, чтобы гарантировать возможность взаимодействия с HTML и SGML. Пять встроенных сущностей перечислены в приведенной ниже таблице:

Ссылка на сущность

Эти сущности можно объявить следующим образом:

ПРИМЕЧАНИЕ

Встроенные ссылки на сущности необходимы для создания документов XML, в которых любой из приведенных символов используется сам по себе, а не как фрагмент разметки Ссылки на общие сущности, которые вы определяете самостоятельно, удобны для присваивания имен последовательностям символов, которые вы часто используете. Например, чтобы объявить ссылку на сущность, представляющую символ торговой марки (™), можно включить следующее объявление:

Символ торговой марки можно затем вставить в любой документ XML, в котором имеется DTD с этим объявлением. Например:

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

Ниже приведен пример некорректного определения сущностей:

А это — корректное определение:

Объявление параметрических сущностей

Также можно объявлять ссылки на сущности, которые в DTD будут заменяться определениями сущности. Такой тип сущностей называется параметрическим. Ссылка на параметрическую сущность (parameter entity) начинается с символа * и не может присутствовать внутри документа XML — только в DTD, где она определяется. Ниже приведен пример использования параметрической сущности:

Объявление внешних сущностей

Внешние сущности (external entities) — это способ включить внешние файлы в документ XML. Они объявляются следующим образом:

После объявления внешней сущности вы можете включить содержимое указанного документа XML в ваш документ, используя ссылку на сущность — в данном случае &latest_prices.

Объявление непроверенных сущностей

Непроверенные сущности (unparsed entities) можно использовать для включения в документ XML данных в формате, отличном от XML. Для определения такой сущности используется ключевое слово NOATA. Например:

Непосредственно за ключевым словом NDATA следует ключевое слово нотации (notation data keyword). Это ключевое слово объявляется с помощью объявления нотации. Объявления нотации (notation declarations) предоставляют дополнительную информацию (например, для идентификации) или, как в данном случае, сведения о формате для непроверенных данных. Ключевое слово нотации определяется с помощью объявления . Например:

Проверенные символьные данные не могут содержать разметку. Следовательно, если вы хотите включить в содержимое элемента символы

Разделы символьных данных начинаются со строки . Кроме строки ]]>, содержимое раздела символьных данных не подвергается синтаксическому анализу. Если вы хотите включить пример кода XML в документ XML, вместо того чтобы заменять все символы & и It на &lt и &атр, можете включить весь блок, содержащий эти символы, в раздел символьных данных. Например:

Это пример правильно оформленного документа XML:

Комментарии (comments) в XML устроены и функционируют так же, как в

HTML, что видно из следующего примера:

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

В HTML комментарии часто используются в качестве контейнера текста, который не является частью документа, но доступен для программ. Например, команды CGI и JavaScript в документах HTML часто помещаются внутрь комментариев. Но анализаторы XML могут полностью игнорировать комментарии, поэтому в XML этим приемом не следует увлекаться, для этого имеются снециальные инструкции по обработке.

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

Инструкции по обработке (Processing Instructions, PI) используются для того, чтобы включить в документ информацию, предназначенную для приложений. Подобно комментариям, инструкции по обработке не считаются частью символьных данных документа. Но в отличие от комментариев, инструкции по обработке не игнорируются анализатором XML, а передаются приложениям.

Инструкции по обработке начинаются с символов . Первое слово в PI — это имя того приложения, для которого предназначается данная инструкция. Также можно использовать имя нотации, чтобы связать URI (Uniform Resource Identifier, универсальный идентификатор ресурса) с именем приложения. Следом за идентификационной информацией в PI может содержаться любой тип символьных данных. Ниже приведен пример PI:

Эта инструкция инициирует воспроизведение соответствующим приложением файла формата трЗ.

Хотя определения DTD в настоящее время являются стандартом определений типов документов XML, у них есть несколько серьезных ограничений. Определения DTD были унаследованы от языка SGML, где они были исходно разработаны для определения языков разметки, а не для создания схем баз данных. Самое существенное ограничение определения DTD заключается в том, что оно не обеспечивает достаточного контроля над содержимым элементов. Например, с помощью DTD невозможно указать, что показанный ниже элемент является допустимым [Today’s date — сегодняшняя дата — Примеч. перев. ]:

Точно так же нельзя указать, что следующий элемент не является допустимым:

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

В результате этих ограничений, а также из-за того, что XML все больше используется для хранения данных, были предложены некоторые альтернативные варианты. В настоящее время среди них лидирует язык определений схем XML (XML Schema Definition Language, XSD).

ПРИМЕЧАНИЕ

На момент написания данного курса XSD находится в стадии разработки. Это означает, что к моменту, когда этот язык получит официальный статус, в нем могут произойти значительные изменения по сравнению с нынешней версией. Со спецификацией XSD можно ознакомиться по адресу www.w3.org/XML/Schema.html.

Назначение схем XML то же, что и DTD: определение классов документов XML. Основная разница между ними заключается в том, что в схемах XML все элементы подразделяются на два типа: простые и сложные.

Элементы, которые содержат другие элементы или атрибуты наряду с символьными данными, относятся к типу сложных (complex), а те элементы, которые содержат только символьные данные, называются простыми (simple) элементами. Атрибуты всегда имеют простой тип. В листинге 1.5 показана схема XML для каталога товаров. В листинге 1.6 приведен документ XML, использующий эту схему [On sale date — дата начала продаж, quantity in stock — количество имеющегося в наличии товара. — Примеч. перев. ].

Листинг 1.5. Схема для каталога (catalog.xsd)

Элементы сложного типа определяются с помощью элемента compl exType. Как было уже сказано, элементы сложного типа содержат другие элементы и атрибуты. Элементы и атрибуты, содержащиеся внутри сложных элементов, определяются с помощью элементов element и attribute соответственно. Например, в листинге 1.5 элемент product определен как элемент сложного типа. Внутри определения типа ProductType определяются пять элементов: productName, quantity_in_stock, price, comment и partNum.

Элементы простого типа не имеют атрибутов и не содержат других элементов. В XSD имеется ряд встроенных простых типов, в том числе string, binary, boolean, double, float и т. д. На основе встроенных простых типов можно сконструировать дополнительные простые типы. В частности, в предыдущем примере определяется простой тип Sku, сконструированный на основании типа string.

Процесс конструирования новых простых типов из уже существующих называется ограничением (restriction). Обратите внимание, что в определении нового типа Sku используется регулярное выражение, задающее шаблон, которому должно соответствовать содержимое любого элемента или атрибута данного типа.

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

Расширяемый язык таблиц стилей (Extensible Stylesheet Language, XSL), как следует из его названия, — это язык для конструирования таблиц стилей. Таблицы стилей XSL используются для описания внешнего вида документов XML, предназначенных для чтения людьми.

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

Применение таблицы стилей к документу процессор таблиц стилей осуществляет в два этапа. Первый этап — трансформация дерева (tree transformation). Вы можете, например, написать таблицу стилей, которая расположит товары в вашем каталоге в алфавитном порядке или пронумерует их, прежде чем отобразить. Трансформация дерева позволяет также перемещать данные XML и выполнять вычисления с этими данными.

Второй этап — форматирование (formatting). Форматирование фактически представляет собой процесс задания стиля отображения данных, размеров шрифтов, разрывов страниц и т. п.

Спецификация XSL содержит три различных языка, предназначенных для осуществления этих двух задач:

XML Path Language (XPath) — язык для создания ссылок на различные части документа XML;

XSL Transformations (XSLT) — язык, предназначенный для генерации дерева документа;

Extensible Stylesheet Language (XSL) — XSLT плюс описание набора объектов форматирования и свойств форматирования.

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

Листинг 1.7. Пример каталога музыкальной библиотеки (MyMusic.xml)

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

Листинг 1.8. Таблица стилей, генерирующая документ HTML (CDstyle.xsl)

Связать таблицы стилей с документом XML можно с помощью инструкции по обработке. Например:

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

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

Эта строка задает цикл по всем экземплярам элемента cd внутри элемента library. Если вы хотите создать разделенный запятыми список всех песен на каждом диске (каждому диску соответствует свой экземпляр элемента cd), вы можете задать еще один цикл внутри приведенного выше цикла, как показано в следующем примере:

Если получившийся документ XML открыть в браузере, поддерживающем XSL, то он будет выглядеть примерно так, как показано на рис. 1.1.

Рис. 1.1. Результат применения таблицы CDstyle.xsl к файлу MyMusic.xml

В данном курсе мы будем использовать базу данных XML, предназначенную для хранения каталога товаров, которыми торгует вымышленный электронный магазин. Хотя мы предполагаем, что доступ к данным XML непосредственно из приложений осуществляется достаточно быстро, все же для повышения эффективности можно импортировать XML-базу данных приложения в реляционную базу данных. В настоящее время все поставщики баз данных предлагают средства (или планируют сделать это), позволяющие передавать данные между реляционной базой данных и документами XML, и ряд других вспомогательных инструментальных средств. Данные можно извлекать из любой базы данных и преобразовывать в данные XML, которые используются в приложении, при этом не приходится модифицировать само приложение. Вероятно, в этом и заключается основное преимущество создания приложений, рассчитанных на данные XML: XML — это стандарт, в который могут быть преобразованы данные любого типа, следовательно, приложение гарантированно сможет работать в будущем с данными любого нового типа.

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

Язык SGML был ориентирован на документ как на единое целое, поэтому нет ничего удивительного в том, что и в отношении XML сначала использовался подход, связанный с объектной моделью документа (Document Object Model, DOM). Любая обработка документа в соответствии с моделью DOM предполагает, что документ прошел синтаксический анализ и представлен в памяти в виде древовидной структуры, каждая часть которой одинаково доступна. Этот подход символически иллюстрирует рис. 1.2.

Рис. 1.2. Модель программирования DOM

Когда люди начали программировать в соответствии с моделью DOM, быстро выяснилось, что это не очень удобно — приходилось строить объектную модель всего документа, даже если нужно было отобрать всего лишь несколько элементов. Кроме того, этот способ требует больших ресурсов памяти, что может сделать его использование затруднительным, если не сказать невозможным. В результате возникла необходимость в разработке другого способа, который получил название SAX (Simplified API for XML — упрощенный интерфейс прикладного программирования для XML) И DOM, и SAX представляют собой, таким образом, интерфейсы прикладного программирования, которые были реализованы как на Java, так и на других языках.

Как показано на рис. 1.3, анализатор SAX осуществляет один проход по документу XML, сообщая о результатах анализа путем вызова различных методов из кода вашего приложения. В документации SAX есть термин событие (event): событие происходит, когда анализатор идентифицирует элемент в документе XML, поэтому указанные методы называются обработчиками событий (event handlers). Когда анализатор достигает конца документа, в памяти остается только то, что было сохранено вашим приложением.

Как было сказано ранее и как показано на рис. 1.2 и 1.3, использование DTD не является обязательным в XML.

Рис. 1.3. Модель программирования SAX

Для программирования сервлетов и JSP (JavaServer Pages) полезными могут оказаться обе модели, что демонстрируют приведенные ниже примеры. Сначала рассмотрим инструментальные средства Java для «первого уровня» DOM и для версии SAX 1.0. На момент написания курса версия SAX 2.O. и второй уровень DOM находились в разработке, но ко времени, когда курс будет опубликован, вероятно, эти новые версии уже будут доступны.

Окончательная версия API для работы с объектной моделью документа находится в пакете org.w3c.dom, одобренном Консорциумом W3C. Этот интерфейс API включает в себя определения интерфейсов и один класс исключений. Основная идея заключается в том, что документ XML преобразуется в документ DOM, состоящий из объектов Java, которые реализуют эти интерфейсы. Любая часть документа становится объектом, а связи между объектами отражают иерархическую структуру документа.

Анализ XML для создания DOM

С точки зрения программиста, нет ничего проще, чем создать документ DOM, поскольку вся работа фактически делается анализатором. Все, что должен сделать программист, — это создать входной поток, выбрать анализатор и отойти в сторону. В листинге 1.9 показан шаблон метода, который считывает данные из файла с помощью утилит из пакета com.sun.xml.parser и возвращает объект com.sun.xml.tree.XmlDocument Класс Xml Document реализует интерфейс Document, как указано в спецификации W3C.

Если вы используете утилиты других пакетов, то конкретные имена могут измениться, но общий принцип останется прежним. В этом конкретном примере используются классы интерфейса прикладных программ Java для анализа XML (Java API for XML Parsing, JAXP), предложенные компанией Sun, которые в настоящее время используются в ядре сервлетов (servlet engine) Tomcat.

За последние годы было создано множество различных анализаторов XML, но только небольшое их число полностью соответствует рекомендациям DOM W3C. Последние тесты на совместимость показали, что наиболее высокий рейтинг в этом отношении имеет анализатор Sun.

Листинг 1.9. Шаблон метода создания объекта XmlDocument

Имея в памяти объектную модель документа, вы можете манипулировать ею с помощью методов интерфейса DOM из пакета org.w3c.dom, а также с помощью дополнительных инструментальных средств.

Основные этапы обработки документа XML на основе SAX можно сформулировать следующим образом.

Создание одного или нескольких пользовательских классов для обработки событий анализатора SAX.

Создание объекта, который обеспечивает прием входного потока символов.

Создание анализатора на основе одного из пакетов инструментальных средств.

Присоединение классов, обрабатывающих события, к анализатору.

Присоединение входного потока к анализатору, начало анализа.

Обработка всех событий в пользовательских классах, которая позволяет записать нужные данные, отследить ошибки и т. д.

Как видно, обработка документов XML в модели SAX подчиняется совсем другой идеологии, чем в модели DOM. Выбор одного из этих двух подходов для конкретного приложения — самый важный выбор из тех, которые вам предстоит сделать. В табл. 1.1 приведены основные критерии, которые следует учитывать в данном вопросе.

Таблица 1.1. Сравнение программирования на основе DOM и SAX

Требования к ресурсам памяти

Могут оказаться довольно высокими

Пропорциональны количеству элементов, которые требуется сохранить в памяти

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

Этот раздел можно считать кратким справочником по самым основным правилам XML. Полную спецификацию XML можно найти по адресу www.w3c.org.

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

Имя открывающего тега должно совпадать с именем закрывающего тега. Заметим, что язык XML чувствителен к регистру. Варианты:

  • неправильно: ;
  • правильно: .

Элементы должны быть правильно вложены друг в друга. Варианты:

  • неправильно. какой-нибудь текст ;
  • правильно: какой-нибудь текст .

Имена элементов не должны содержать символа и должны начинаться с буквы или символа подчеркивания

Имена элементов не могут начинаться с символов xml (в любой комбинации верхнего и нижнего регистров)

В именах элементов не должно содержаться двоеточия, за исключением пространств имен.

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

Значения атрибутов должны быть заключены в кавычки.

В значениях атрибутов не должны содержаться прямые или непрямые ссылки на внешние сущности.

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

Ниже мы приводим общие сведения об элементах XML, в том числе о синтаксических правилах, регламентирующих применение элементов и их объявление.

Глава 1. Введение в XML

Глава 1. Введение в XML

Первая глава книги об XSLT не случайно посвящена языку XML (от англ. extensible Markup Language — расширяемый язык разметки). XML — это фундаментальная концепция, по отношению к которой XSLT является прикладной технологией и поэтому для эффективного применения XSLT нужно хорошо понимать основы XML.

Мы разделяем мнение множества экспертов о том, что лучшая документация по XML — это спецификация языка, снабженная внятными аннотациями, комментариями и примерами. Первая глава описывает синтаксис и конструкции языка XML именно в том виде, в каком они приведены в технической рекомендации Консорциума W3, акцентируя внимание на важных с точки зрения XSLT моментах.

Помимо синтаксиса и физической модели ХМL-документа, в первой главе раскрывается концепция XML, идея, которая за всем этим стоит. Краткий обзор практических аспектов использования XML подкреплен описаниями архитектуры типовых проектов, основанных на XML-технологиях.

Завершающая часть первой главы посвящена истории языка XML.

Похожие главы из других книг

ГЛАВА 1 Введение

ГЛАВА 1 Введение Если попытаться охарактеризовать современный уровень развития компьютерных и информационных технологий, то первое, на что следует обратить внимание – это возрастающая сложность не только отдельных физических и программных компонентов, но и лежащих в

Глава 1 Введение

ГЛАВА 1 ВВЕДЕНИЕ

ГЛАВА 1 ВВЕДЕНИЕ Пролог – язык программирования, используемый для решения задач, сводимых к объектам и отношениям между объектами. В этой главе мы продемонстрируем основные элементы языка на примерах реальных программ, не вдаваясь особенно в детали, формальные правила и

Глава 1. Введение

Глава 1. Введение 1.1. Почему было написано данное руководство Скажем так, я посчитал, что существует досадный пробел в HOWTO по части информации об iptables и функциях сетевого фильтра (netfilter), реализованных в новой серии ядер 2.4.x Linux. Кроме всего прочего, я попытался ответить на

Глава 1 Введение в IP-телефонию

Глава 1 Введение в IP-телефонию В этой главе вы познакомитесь с основными понятиями IР-телефонии, а также узнаете, что такое VoIP и как воспользоваться всеми преимуществами современных технологий в этой области.IP-телефония – технология, которая позволяет передавать голос в

ГЛАВА 7. Введение в стили CSS

ГЛАВА 7. Введение в стили CSS Предыдущая часть книги была посвящена содержимому Web-страниц и языку HTML 5, на котором оно создается. Мы изучили немало новых терминов, использовали много тегов HTML и создали несколько Web-страниц нашего первого Web- сайта. Эти Web-страницы содержат

Глава 1. Введение в XML

Глава 1. Введение в XML Первая глава книги об XSLT не случайно посвящена языку XML (от англ. extensible Markup Language — расширяемый язык разметки). XML — это фундаментальная концепция, по отношению к которой XSLT является прикладной технологией и поэтому для эффективного применения XSLT нужно

Глава 1 Введение в XML

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

Глава 2 Введение в XSLT

Глава 2 Введение в XSLT Документ = Данные + Структура В предыдущей главе мы подробно разобрали синтаксис XML, являющийся ключом к пониманию сути XML, которая состоит в том, что простых текстовых меток вполне достаточно, чтобы явно выделить в документе сколь угодно сложную

Глава 1 Введение

Глава 1 Введение Что такое Ubuntu? Ubuntu — это современная полнофункциональная операционная система, основанная на ядре Linux. В переводе с южноафриканского языка зулу слово Ubuntu примерно означает «человечность».Ubuntu распространяется и всегда будет распространяться абсолютно

Глава 1. Введение

Глава 1. Введение В некотором смысле дизайн можно рассматривать как метод, с помощью которого красота стремится установить диктатуру в мире. Это должна быть не диктатура в классическом понимании, а скорее требование соблюдать умеренность и ввести дополнительное

Глава 1 Введение

Глава 1 Введение Если есть одна фраза, резюмирующая важнейшие понятия GNU/Linux (а следовательно, и Unix), это «файлы и процессы». В данной главе мы рассмотрим модели файлов и процессов в Linux. Их важно понять, потому что почти все системные вызовы имеют отношение к изменению

Глава 1 Введение

Глава 1 Введение Однажды я показывал администратору ОС Windows, как устанавливать и работать с Linux. Сам процесс инсталляции ему понравился, потому что в последних версиях он достаточно прост. Но когда мы установили и решили настроить Samba-сервер, последовала куча вопросов типа:

чЧЕДЕОЙЕ Ч XML

Doug Tidwell

07 БЧЗХУФБ 2002

уПДЕТЦБОЙЕ

XML, Extensible Markup Language (тБУЫЙТСЕНЩК сЪЩЛ тБЪНЕФЛЙ), РТЕЧТБФЙМУС ЪБ ТЕЛПТДОПЕ ЧТЕНС ЙЪ НПДОПЗП УМПЧЕЮЛБ Ч ОЕПФЯЕНМЕНХА ФЕИОПМПЗЙА ЬМЕЛФТПООПЗП ВЙЪОЕУБ. ч ЬФПН ЪБОПЧП РЕТЕУНПФТЕООПН ХЮЕВОЙЛЕ ПВУХЦДБЕФУС, ЮФП ФБЛПЕ XML, РПЮЕНХ ПО ВЩМ УПЪДБО, Й ЛБЛ ПО ЖПТНЙТХЕФ ЬМЕЛФТПООХА ЛПННЕТГЙА. ъДЕУШ ФБЛЦЕ ТБУУНБФТЙЧБАФУС ТБЪОЩЕ РТПЗТБННОЩЕ ЙОФЕТЖЕКУЩ XML Й УФБОДБТФЩ, Й ЪБЛБОЮЙЧБЕФУС ХЮЕВОЙЛ ДЧХНС РТБЛФЙЮЕУЛЙНЙ РТЙНЕТБНЙ, РПЛБЪЩЧБАЭЙНЙ, ЛБЛ ЛПНРБОЙЙ ЙУРПМШЪХАФ XML ДМС ТЕЫЕОЙС ЪБДБЮ ВЙЪОЕУБ.

тБЪДЕМ 1. пВ ЬФПН ХЮЕВОЙЛЕ

оХЦЕО МЙ НОЕ ЬФПФ ХЮЕВОЙЛ?

ьФПФ ЪБОПЧП РЕТЕУНПФТЕООЩК ХЮЕВОЙЛ ПВУХЦДБЕФ, ЮФП ФБЛПЕ XML, РПЮЕНХ ПО ВЩМ УПЪДБО, Й ЛБЛ ПО ЖПТНЙТХЕФ ЬМЕЛФТПООХА ЛПННЕТГЙА. оБ ЬФПН РХФЙ ПО ФБЛЦЕ ТБУУНБФТЙЧБЕФ ОЕУЛПМШЛП УФБОДБТФПЧ Й РТПЗТБННОЩИ ЙОФЕТЖЕКУПЧ XML, РПЛБЪЩЧБЕФ, ЛБЛ ЧЩ НПЦЕФЕ ОБЮБФШ ТБВПФБФШ У ЬФПК ФЕИОПМПЗЙЕК, Й ПРЙУЩЧБЕФ, ЛБЛ ДЧЕ ЛПНРБОЙЙ НПЗХФ РПУФТПЙФШ ТЕЫЕОЙС ОБ ПУОПЧЕ XML, ЮФПВЩ ХРТПУФЙФШ Й НПДЕТОЙЪЙТПЧБФШ УЧПЙ РТЕДРТЙСФЙС.

ч ЬФПН ХЮЕВОЙЛЕ ЧЩ ЙЪХЮЙФЕ:

  • рПЮЕНХ XML ВЩМ УПЪДБО
  • рТБЧЙМБ ДМС XML-ДПЛХНЕОФПЧ
  • лБЛ ПРТЕДЕМЙФШ, ЮФП XML-ДПЛХНЕОФ НПЦЕФ Й ОЕ НПЦЕФ УПДЕТЦБФШ
  • рТПЗТБННОЩЕ ЙОФЕТЖЕКУЩ, ЛПФПТЩЕ ТБВПФБАФ У XML-ДПЛХНЕОФБНЙ
  • лБЛПЧЩ ЗМБЧОЩЕ УФБОДБТФЩ XML Й ЛБЛ ПОЙ ТБВПФБАФ ЧНЕУФЕ
  • лБЛ ЛПНРБОЙЙ Ч ТЕБМШОПН НЙТЕ ЙУРПМШЪХАФ XML

тБЪДЕМ 2. юФП ФБЛПЕ XML?

чЧЕДЕОЙЕ

XML ЙМЙ Extensible Markup Language (тБУЫЙТСЕНЩК сЪЩЛ тБЪНЕФЛЙ), СЧМСЕФУС СЪЩЛПН ТБЪНЕФЛЙ, ЛПФПТЩК ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ДМС УПЪДБОЙС ЧБЫЙИ УПВУФЧЕООЩИ ФЕЗПЧ. пО ВЩМ УПЪДБО Ч World Wide Web Consortium (W3C) ДМС РТЕПДПМЕОЙС ПЗТБОЙЮЕОЙК СЪЩЛБ HTML, Hypertext Markup Language (зЙРЕТФЕЛУФПЧЩК сЪЩЛ тБЪНЕФЛЙ), ЛПФПТЩК СЧМСЕФУС ПУОПЧПК ЧУЕИ Web-УФТБОЙГ. лБЛ Й HTML, XML ВБЪЙТХЕФУС ОБ SGML — Standard Generalized Markup Language (уФБОДБТФОЩК пВПВЭЕООЩК сЪЩЛ тБЪНЕФЛЙ). иПФС SGML ДЕУСФЙМЕФЙСНЙ ЙУРПМШЪПЧБМУС Ч ЙЪДБФЕМШУЛПН ДЕМЕ, ПО РТЕДУФБЧМСЕФУС УМПЦОЩН, ЮФП ПФРХЗЙЧБЕФ НОПЗЙИ МАДЕК, ЛПФПТЩЕ НПЗМЙ ВЩ ЕЗП ЙУРПМШЪПЧБФШ (SGML ФБЛЦЕ ТБУЫЙЖТПЧЩЧБЕФУС ЛБЛ «Sounds great, maybe later» — «ъЧХЮЙФ ЧЕМЙЛПМЕРОП, НПЦЕФ ВЩФШ, РПЪЦЕ»). XML ВЩМ ТБЪТБВПФБО У РТЙГЕМПН ОБ Web.

ъБЮЕН ОБН ОХЦЕО XML?

HTML — ОБЙВПМЕЕ ХУРЕЫОЩК СЪЩЛ ТБЪНЕФЛЙ ЧУЕИ ЧТЕНЕО. чЩ НПЦЕФЕ РТПУНПФТЕФШ РТПУФЕКЫЙЕ ФЕЗЙ HTML РТБЛФЙЮЕУЛЙ ОБ МАВПН ХУФТПКУФЧЕ ПФ PDA ДП НЕКОЖТЕКНБ Й ЧЩ НПЦЕФЕ ДБЦЕ РТЕПВТБЪПЧБФШ ТБЪНЕФЛХ HTML Ч ЗПМПУ Й Ч ДТХЗЙЕ ЖПТНБФЩ РТЙ РПНПЭЙ УППФЧЕФУФЧХАЭЙИ ЙОУФТХНЕОФПЧ. рТЙ ФБЛПН ХУРЕИЕ HTML, РПЮЕНХ ЦЕ W3C УПЪДБМ XML? юФПВЩ ПФЧЕФЙФШ ОБ ЬФПФ ЧПРТПУ, ЧЪЗМСОЕН ОБ ФБЛПК ДПЛХНЕОФ:

вЕДБ HTML УПУФПЙФ Ч ФПН, ЮФП ПО ВЩМ ТБЪТБВПФБО У РТЙГЕМПН ОБ ЮЕМПЧЕЛБ. дБЦЕ ОЕ РТПУНБФТЙЧБС РТЙЧЕДЕООЩК ЧЩЫЕ HTML-ДПЛХНЕОФ Ч ВТБХЪЕТЕ, ЧЩ Й С НПЦЕН РПОСФШ, ЮФП ЬФП ЮЕК-ФП РПЮФПЧЩК БДТЕУ. (ч ЮБУФОПУФЙ, ЬФП РПЮФПЧЩК БДТЕУ Ч уПЕДЙОЕООЩИ ыФБФБИ; ДБЦЕ ЕУМЙ ЧЩ ОЕЪОБЛПНЩ У ЛПНРПОЕОФБНЙ РПЮФПЧПЗП БДТЕУБ Ч уыб, ЧЩ, ЧПЪНПЦОП, ДПЗБДБЕФЕУШ, ЮФП ЪДЕУШ РТЕДУФБЧМЕОП.)

Илон Маск рекомендует:  Что такое код ccvs_delete

лБЛ МАДЙ, ЧЩ Й С ЙНЕЕН ЙОФЕММЕЛФ, РПЪЧПМСАЭЙК ОБН РПОСФШ ЪОБЮЕОЙЕ Й ОБЪОБЮЕОЙЕ ВПМШЫЙОУФЧБ ДПЛХНЕОФПЧ. нБЫЙОБ, Л УПЦБМЕОЙА, УДЕМБФШ ЬФПЗП ОЕ НПЦЕФ. фЕЗЙ Ч ЬФПН ДПЛХНЕОФЕ ЗПЧПТСФ ВТБХЪЕТХ, ЛБЛ ПФПВТБЦБФШ ЙОЖПТНБГЙА, ОП ФЕЗЙ ОЕ ЗПЧПТСФ ВТБХЪЕТХ, ЮФП ЬФП ЪБ ЙОЖПТНБГЙС. чЩ Й С ЪОБЕН, ЮФП ЬФП БДТЕУ, ОП НБЫЙОБ — ОЕ ЪОБЕФ.

пФПВТБЦЕОЙЕ HTML

юФПВЩ ПФПВТБЪЙФШ HTML, ВТБХЪЕТ РТПУФП УМЕДХЕФ ЙОУФТХЛГЙСН Ч HTML-ДПЛХНЕОФЕ. фЕЗ РБТБЗТБЖБ (

) УППВЭБЕФ ВТБХЪЕТХ, ЮФП ОХЦОП ПФПВТБЪЙФШ ОПЧХА УФТПЛХ, ПВЩЮОП, У РТПРХУЛПН УФТПЛЙ РЕТЕД ОЕК, Б ДЧБ ФЕЗБ ТБЪТЩЧБ (
) УППВЭБАФ ВТБХЪЕТХ, ЮФП ОХЦОП РЕТЕКФЙ ОБ ОПЧХА УФТПЛХ ВЕЪ РТПРХУЛПЧ НЕЦДХ УФТПЛБНЙ. вТБХЪЕТ РТЕЛТБУОП ЖПТНБФЙТХЕФ ДПЛХНЕОФ, ОП НБЫЙОБ ЧУЕ ЦЕ ОЕ ЪОБЕФ, ЮФП ЬФП БДТЕУ.

тЙУХОПЛ 1 бДТЕУ HTML

пВТБВПФЛБ HTML

юФПВЩ ЪБЧЕТЫЙФШ ПВУХЦДЕОЙЕ РТЙНЕТБ HTML-ДПЛХНЕОФБ, ТБУУНПФТЙН ЪБДБЮХ ЧЩДЕМЕОЙС ЙЪ БДТЕУБ РПЮФПЧПЗП ЛПДБ. чПФ БМЗПТЙФН (РТЙВМЙЪЙФЕМШОЩК) ОБИПЦДЕОЙС РПЮФПЧПЗП ЛПДБ Ч ТБЪНЕФЛЕ HTML:

еУМЙ ЧЩ ОБЫМЙ РБТБЗТБЖ У ДЧХНС ФЕЗБНЙ
, РПЮФПЧЩК ЛПД СЧМСЕФУС ЧФПТЩН УМПЧПН РПУМЕ РЕТЧПК ЪБРСФПК РПУМЕ ЧФПТПЗП ФЕЗБ ТБЪТЩЧБ.

иПФС ЬФПФ БМЗПТЙФН Й ТБВПФБЕФ У ДБООЩН РТЙНЕТПН, ЕУФШ НОПЗП РТБЧЙМШОЩИ БДТЕУПЧ ЧП ЧУЕН НЙТЕ, У ЛПФПТЩНЙ ПО ТБВПФБФШ ОЕ ВХДЕФ. дБЦЕ ЕУМЙ ЧЩ УНПЦЕФЕ ОБРЙУБФШ БМЗПТЙФН, ЛПФПТЩК ВХДЕФ ОБИПДЙФШ РПЮФПЧЩК ЛПД ДМС МАВПЗП БДТЕУБ, ЪБРЙУБООПЗП Ч HTML, НПЦЕФ ВЩФШ УЛПМШЛП ХЗПДОП РБТБЗТБЖПЧ У ДЧХНС ФЕЗБНЙ ТБЪТЩЧБ, ЛПФПТЩЕ ОЕ УПДЕТЦБФ БДТЕУПЧ ЧППВЭЕ. оБРЙУБОЙЕ БМЗПТЙФНБ ЛПФПТЩК ЙЭЕФ Ч МАВПН РБТБЗТБЖЕ HTML Й ОБИПДЙФ Ч ОЕН МАВПК РПЮФПЧЩК ЛПД ДПМЦОП ВЩФШ ПЮЕОШ ФТХДОЩН, ЕУМЙ ОЕ ОЕЧПЪНПЦОЩН.

рТЙНЕТ XML-ДПЛХНЕОФБ

фЕРЕТШ ДБЧБКФЕ ТБУУНПФТЙН РТЙНЕТ XML-ДПЛХНЕОФБ. ч XML ЧЩ НПЦЕФЕ ОБЪОБЮЙФШ ОЕЛПФПТПЕ ЪОБЮЕОЙЕ ФЕЗБН Ч ДПЛХНЕОФЕ. юФП ЕЭЕ ВПМЕЕ ЧБЦОП, ЬФХ ЙОЖПТНБГЙА ФБЛЦЕ МЕЗЛП ПВТБВПФБФШ ДМС НБЫЙОЩ. чЩ НПЦЕФЕ ЧЩДЕМЙФШ РПЮФПЧЩК ЛПД ЙЪ ЬФПЗП ДПЛХНЕОФБ РТПУФП ОБКДС УПДЕТЦЙНПЕ, ПВТБНМЕООПЕ ФЕЗБНЙ

фЕЗЙ, ЬМЕНЕОФЩ Й БФТЙВХФЩ

еУФШ ФТЙ ПВЭЙИ ФЕТНЙОБ, ЙУРПМШЪХЕНЩИ ДМС ПРЙУБОЙС ЮБУФЕК XML-ДПЛХНЕОФБ: ФЕЗЙ , ЬМЕНЕОФЩ Й БФТЙВХФЩ . чПФ РТЙНЕТ ДПЛХНЕОФБ, ЙММАУФТЙТХАЭЕЗП ЬФЙ ФЕТНЙОЩ:

  • фЕЗ — ЬФП ФЕЛУФ НЕЦДХ МЕЧПК ХЗМПЧПК УЛПВЛПК ( ) Й РТБЧПК ХЗМПЧПК УЛПВЛПК ( > ). еУФШ ОБЮБМШОЩЕ ФЕЗЙ (ФБЛЙЕ, ЛБЛ ) Й ЛПОЕЮОЩЕ ФЕЗЙ (ФБЛЙЕ, ЛБЛ )
  • ьМЕНЕОФПН СЧМСЕФУС ОБЮБМШОЩК ФЕЗ, ЛПОЕЮОЩК ФЕЗ Й ЧУЕ, ЮФП ЕУФШ НЕЦДХ ОЙНЙ. ч РТЙНЕТЕ ЧЩЫЕ ЬМЕНЕОФ УПДЕТЦЙФ ДЧБ ДПЮЕТОЙИ ЬМЕНЕОФБ: , Й .
  • бФТЙВХФ — ЬФП РБТБ ЙНС-ЪОБЮЕОЙЕ ЧОХФТЙ ОБЮБМШОПЗП ФЕЗБ ЬМЕНЕОФБ. ч ДБООПН РТЙНЕТЕ state СЧМСЕФУС БФТЙВХФПН ЬМЕНЕОФБ ; Ч РТЕДЩДХЭЕН РТЙНЕТЕ ВЩМ ЬМЕНЕОФПН. (уН. рТЙНЕТ ДПЛХНЕОФБ XML ).

лБЛ XML ЙЪНЕОСЕФ Web

фЕРЕТШ, ЛПЗДБ ЧЩ ХЧЙДЕМЙ, ЛБЛ ТБЪТБВПФЮЙЛЙ НПЗХФ ЙУРПМШЪПЧБФШ XML, ЮФПВЩ УПЪДБЧБФШ ДПЛХНЕОФЩ У ДБООЩНЙ, ПРЙУЩЧБАЭЙНЙ УБНЙ УЕВС, ДБЧБКФЕ РПУНПФТЙН, ЛБЛ МАДЙ, ЙУРПМШЪХАФ ЬФЙ ДПЛХНЕОФЩ, ЮФПВЩ ХУПЧЕТЫЕОУФЧПЧБФШ Web. чПФ ОЕУЛПМШЛП ЛМАЮЕЧЩИ ОБРТБЧМЕОЙК:

  • XML ХРТПЭБЕФ ПВНЕО ДБООЩНЙ. рПУЛПМШЛХ ТБЪОЩЕ ПТЗБОЙЪБГЙЙ (ЙМЙ ДБЦЕ ТБЪОЩЕ ЮБУФЙ ПДОПК ПТЗБОЙЪБГЙЙ) ТЕДЛП ЙУРПМШЪХАФ ЕДЙОЩК УФБОДБТФЙЪЙТПЧБООЩК ОБВПТ ЙОУФТХНЕОФПЧ, ДМС РТЙМПЦЕОЙК УПЕДЙОЕОЙЕ НПЦЕФ ФТЕВПЧБФШ ОЕЛПФПТПЗП ПВЯЕНБ ТБВПФЩ. рТЙ ЙУРПМШЪПЧБОЙЙ XML ЛБЦДБС ЗТХРРБ УПЪДБЕФ УЧПА ХФЙМЙФХ, ЛПФПТБС РТЕПВТБЪХЕФ ЕЕ ЧОХФТЕООЙЕ ЖПТНБФЩ ДБООЩИ Ч XML Й ОБПВПТПФ. мХЮЫЕ ЧУЕЗП, ЕУМЙ РТПЙЪЧПДЙФЕМЙ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ХЦЕ ПВЕУРЕЮЙМЙ ЙОУФТХНЕОФЩ ДМС РТЕПВТБЪПЧБОЙС ЙЪ ЪБРЙУЕК ВБЪЩ ДБООЩИ (ЙМЙ ЛБФБМПЗПЧ LDAP, ЙМЙ ЪБЛБЪПЧ ОБ РПЛХРЛЙ Й Ф.Д.) Ч Й ЙЪ XML.
  • XML УПЪДБЕФ ЧПЪНПЦОПУФШ ЙЪСЭОПЗП ЛПДБ. рПУЛПМШЛХ XML-ДПЛХНЕОФЩ НПЗХФ ВЩФШ УФТХЛФХТЙТПЧБОЩ ДМС ЙДЕОФЙЖЙЛБГЙЙ ЛБЦДПК ЧБЦОПК ЮБУФЙ ЙОЖПТНБГЙЙ (Б ФБЛЦЕ Й ПФОПЫЕОЙК НЕЦДХ ЮБУФСНЙ), ЧПЪНПЦОП ОБРЙУБФШ ЛПД, ЛПФПТЩК НПЦЕФ ПВТБВБФЩЧБФШ ЬФЙ XML-ДПЛХНЕОФЩ ВЕЪ ХЮБУФЙС ЮЕМПЧЕЛБ. фП, ЮФП РТПЙЪЧПДЙФЕМЙ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ЧЛМБДЩЧБАФ ВПМШЫЙЕ ПВЯЕНЩ ЧТЕНЕОЙ Й ДЕОЕЗ Ч РПУФТПЕОЙЕ УТЕДУФЧ ТБЪТБВПФЛЙ XML, ПЪОБЮБЕФ, ЮФП ОБРЙУБОЙЕ ФБЛПЗП ЛПДБ — ПФОПУЙФЕМШОП РТПУФПК РТПГЕУУ.
  • XML УПЪДБЕФ ЧПЪНПЦОПУФШ «ХНОПЗП» РПЙУЛБ. иПФС РПЙУЛПЧЩЕ НБЫЙОЩ У ЗПДБНЙ ОЕХЛМПООП УПЧЕТЫЕОУФЧХАФУС, ЧУЕ ЕЭЕ ФТХДОП РПМХЮЙФШ ТЕЪХМШФБФЩ РПЙУЛБ ВЕЪ ПЫЙВПЛ. еУМЙ ЧЩ ЙЭЕФЕ УФТБОЙГЩ HTML ДМС ЮЕЗП-ФП, РПД ОБЪЧБОЙЕН » Chip «, ЧЩ НПЦЕФЕ ОБКФЙ УФТБОЙГЩ РТП ЫПЛПМБДОЩЕ РМЙФЛЙ (chocolate chips), ЛПНРШАФЕТОЩЕ ЮЙРЩ (computer chips), ДТЕЧЕУОП-УФТХЦЕЮОЩЕ РМЙФЩ (wood chips) Й НОПЗП ДТХЗЙИ ВЕУРПМЕЪОЩИ ПВТБЪГПЧ. рПЙУЛ XML-ДПЛХНЕОФПЧ РП ЬМЕНЕОФБН , ЛПФПТЩЕ УПДЕТЦБФ ФЕЛУФ Chip , ДБУФ ЧБН ЪОБЮЙФЕМШОП МХЮЫЙК ОБВПТ ТЕЪХМШФБФПЧ.

нЩ ФБЛЦЕ ПВУХДЙН ТЕБМШОЩЕ РТЙНЕОЕОЙС XML Ч рТБЛФЙЮЕУЛЙЕ РТЙНЕТЩ .

тБЪДЕМ 3. рТБЧЙМБ XML-ДПЛХНЕОФБ

пВЪПТ: РТБЧЙМБ XML-ДПЛХНЕОФБ

еУМЙ ЧЩ ТБУУНБФТЙЧБМЙ HTML-ДПЛХНЕОФЩ, ЧЩ ЪОБЛПНЩ У ВБЪПЧЩНЙ ЛПОГЕРГЙСНЙ ЙУРПМШЪПЧБОЙС ФЕЗПЧ ДМС ТБЪНЕФЛЙ ФЕЛУФБ ДПЛХНЕОФБ. ьФПФ ТБЪДЕМ ПВУХЦДБЕФ ТБЪМЙЮЙС НЕЦДХ HTML-ДПЛХНЕОФБНЙ Й XML-ДПЛХНЕОФБНЙ. ч ОЕН НЩ РТПИПДЙН РП ПУОПЧОЩН РТБЧЙМБН XML-ДПЛХНЕОФПЧ Й ПВУХЦДБЕН ФЕТНЙОПМПЗЙА, ЙУРПМШЪХЕНХА ДМС ЙИ ПРЙУБОЙС.

пДОП ЧБЦОПЕ ЪБНЕЮБОЙЕ РП РПЧПДХ XML-ДПЛХНЕОФПЧ: уРЕГЙЖЙЛБГЙС XML ФТЕВХЕФ, ЮФПВЩ РБТУЕТ ВТБЛПЧБМ МАВПК XML-ДПЛХНЕОФ, ЛПФПТЩК ОЕ ЧЩДЕТЦЙЧБЕФ ПУОПЧОЩЕ РТБЧЙМБ. вПМШЫЙОУФЧП РБТУЕТПЧ HTML РТЙОЙНБЕФ ОЕВТЕЦОХА ТБЪНЕФЛХ, ДЕМБС РТЕДРПМПЦЕОЙС П ФПН, ЮФП БЧФПТ ДПЛХНЕОФБ ЙНЕМ Ч ЧЙДХ. юФПВЩ ПВПКФЙ РХФБОЙГХ, ЧПЪОЙЛБАЭХА ДМС РМПИП УФТХЛФХТЙТПЧБООЩИ HTML-ДПЛХНЕОФБИ, УПЪДБФЕМЙ XML У УБНПЗП ОБЮБМБ УДЕМБФШ УФТХЛФХТХ ДПЛХНЕОФБ ЪБЛПОПН.

(лУФБФЙ, ЕУМЙ ЧЩ ОЕЪОБЛПНЩ У ЬФЙН, ФЕТНЙОПН РБТУЕТ — ЬФП ЮБУФШ ЛПДБ, ЛПФПТБС РЩФБЕФУС РТПЮЕУФШ ДПЛХНЕОФ Й ЙОФЕТРТЕФЙТПЧБФШ ЕЗП УПДЕТЦЙНПЕ.)


оЕРТБЧЙМШОЩЕ, РТБЧЙМШОЩЕ, Й РТБЧЙМШОП-ЖПТНБФЙТПЧБООЩЕ ДПЛХНЕОФЩ

еУФШ ФТЙ ЧЙДБ XML-ДПЛХНЕОФПЧ:

  • оЕРТБЧЙМШОЩЕ ДПЛХНЕОФЩ ОЕ УМЕДХАФ УЙОФБЛУЙЮЕУЛЙН РТБЧЙМБН, ПРТЕДЕМЕООЩН УРЕГЙЖЙЛБГЙЕА XML. еУМЙ ТБЪТБВПФЮЙЛ ПРТЕДЕМЙМ РТБЧЙМБ ДМС ДПЛХНЕОФБ, ЛПФПТЩЕ НПЗХФ УПДЕТЦБФШУС Ч DTD ЙМЙ Ч УИЕНЕ, Й ДПЛХНЕОФ ОЕ УМЕДХЕФ ЬФЙН РТБЧЙМБН, ФБЛПК ДПЛХНЕОФ ФБЛЦЕ СЧМСЕФУС ОЕРТБЧЙМШОЩН. ( уН. ЧЧЕДЕОЙЕ Ч DTD Й УИЕНЩ ДМС XML-ДПЛХНЕОФПЧ Ч пРТЕДЕМЕОЙЕ УПДЕТЦЙНПЗП ДПЛХНЕОФБ.)
  • рТБЧЙМШОЩЕ ДПЛХНЕОФЩ УМЕДХАФ УЙОФБЛУЙЮЕУЛЙН РТБЧЙМБН XML Й РТБЧЙМБН, ПРТЕДЕМЕООЩН Ч ЙИ DTD ЙМЙ Ч УИЕНЕ.
  • рТБЧЙМШОП-ЖПТНБФЙТПЧБООЩЕ ДПЛХНЕОФЩ УМЕДХАФ УЙОФБЛУЙЮЕУЛЙН РТБЧЙМБН XML, ОП ОЕ ЙНЕАФ DTD ЙМЙ Ч УИЕНЩ.

лПТОЕЧПК ЬМЕНЕОФ

дПЛХНЕОФ XML ДПМЦЕО УПДЕТЦБФШУС Ч ЕДЙОУФЧЕООПН ЬМЕНЕОФЕ. ьФПФ ЕДЙОУФЧЕООЩК ЬМЕНЕОФ ОБЪЩЧБЕФУС ЛПТОЕЧЩН ЬМЕНЕОФПН Й УПДЕТЦЙФ ЧЕУШ ФЕЛУФ Й МАВЩЕ ДТХЗЙЕ ЬМЕНЕОФЩ ДПЛХНЕОФБ. ч УМЕДХАЭЕН РТЙНЕТЕ XML-ДПЛХНЕОФ УПДЕТЦЙФ ЕДЙОУФЧЕООЩК ЬМЕНЕОФ, ЬМЕНЕОФ . ъБНЕФШФЕ, ЮФП ДПЛХНЕОФ УПДЕТЦЙФ ЛПННЕОФБТЙК ЧОЕ ЛПТОЕЧПЗП ЬМЕНЕОФБ, ЛПФПТЩК СЧМСЕФУС ЧРПМОЕ ДПРХУФЙНЩН.

б ЧПФ ДПЛХНЕОФ, ЛПФПТЩК ОЕ УПДЕТЦЙФ ЕДЙОУФЧЕООПЗП ЛПТОЕЧПЗП ЬМЕНЕОФБ:

пФ XML-РБТУЕТБ ФТЕВХЕФУС ЪБВТБЛПЧБФШ ЬФПФ ДПЛХНЕОФ ОЕЪБЧЙУЙНП ПФ ЕЗП УПДЕТЦБОЙС.

ьМЕНЕОФЩ ОЕ НПЗХФ РЕТЕЛТЩЧБФШУС

ьМЕНЕОФЩ XML ОЕ НПЗХФ РЕТЕЛТЩЧБФШ ДТХЗ ДТХЗБ. чПФ ОЕЛПФПТБС ТБЪНЕФЛБ, ЛПФПТБС ОЕ СЧМСЕФУС РТБЧЙМШОПК:

еУМЙ ЧЩ ОБЮЙОБЕФЕ ЬМЕНЕОФ ЧОХФТЙ ЬМЕНЕОФБ , ЧЩ ДПМЦОЩ ЕЗП ФБН ЦЕ Й ЪБЛПОЮЙФШ. еУМЙ ЧЩ ИПФЙФЕ, ЮФПВЩ ФЕЛУФ XML РПСЧМСМУС Ч ОБЛМПООПН ЫТЙЖФЕ, ЧБН ОХЦОП ДПВБЧЙФШ Ч ТБЪНЕФЛХ ЧФПТПК ЬМЕНЕОФ : XML-РБТУЕТ ВХДЕФ РТЙОЙНБФШ ФПМШЛП ЬФХ ТБЪНЕФЛХ; HTML-РБТУЕТЩ Ч ВПМШЫЙОУФЧЕ Web-ВТБХЪЕТПЧ ВХДХФ РТЙОЙНБФШ ПВЕ.

лПОЕЮОЩЕ ФЕЗЙ СЧМСАФУС ПВСЪБФЕМШОЩНЙ

чЩ ОЕ НПЦЕФЕ ПРХУЛБФШ ЛБЛЙЕ-МЙВП ЪБЛТЩЧБАЭЙЕ ФЕЗЙ. ч РЕТЧПН РТЙНЕТЕ, РТЙЧЕДЕООПН ЧЩЫЕ, ТБЪНЕФЛБ ОЕРТБЧЙМШОБ РПФПНХ, ЮФП ОЕФ ЪБЛТЩЧБАЭЕЗП ФЕЗБ РБТБЗТБЖБ (

). иПФС ЬФП РТЙЕНМЕНП ДМС HTML (Й, Ч ОЕЛПФПТЩИ УМХЮБСИ, ДМС SGML), XML-РБТУЕТ ЬФП ЪБВТБЛХЕФ.

еУМЙ ЬМЕНЕОФ ЧППВЭЕ ОЕ УПДЕТЦЙФ ТБЪНЕФЛЙ, ПО ОБЪЩЧБЕФУС РХУФЩН ЬМЕНЕОФПН; HTML-ЬМЕНЕОФЩ ТБЪТЩЧБ (
) Й ЙЪПВТБЦЕОЙС ( ) СЧМСАФУС РТЙНЕТБНЙ ЬФПЗП. ч РХУФПН ЬМЕНЕОФЕ XML-ДПЛХНЕОФБ ЧЩ НПЦЕФЕ РПНЕУФЙФШ ЪБЛТЩЧБАЭХА ЛПУХА ЮЕТФХ Ч ОБЮБМШОЩК ФЕЗ. уМЕДХАЭЙЕ ДЧБ ЬМЕНЕОФБ ТБЪТЩЧБ Й ДЧБ ЬМЕНЕОФБ ЙЪПВТБЦЕОЙС СЧМСАФУС ДМС XML-РБТУЕТБ ПДОЙН Й ФЕН ЦЕ:

ьМЕНЕОФЩ ЮХЧУФЧЙФЕМШОЩ Л ТЕЗЙУФТХ

ьМЕНЕОФЩ XML ЮХЧУФЧЙФЕМШОЩ Л ТЕЗЙУФТХ. ч HTML

— ПДОП Й ФП ЦЕ; Ч XML — ОЕФ. еУМЙ ЧЩ РПРЩФБЕФЕУШ ЪБЛПОЮЙФШ ЬМЕНЕОФ

ФЕЗПН

бФТЙВХФЩ ДПМЦОЩ ЙНЕФШ ЪОБЮЕОЙС Ч ЛБЧЩЮЛБИ

еУФШ ДЧБ РТБЧЙМБ ДМС БФТЙВХФПЧ Ч XML-ДПЛХНЕОФБИ:

  • бФТЙВХФЩ ДПМЦОЩ ЙНЕФШ ЪОБЮЕОЙС
  • ьФЙ ЪОБЮЕОЙС ДПМЦОЩ ВЩФШ ЪБЛМАЮЕОЩ Ч ЛБЧЩЮЛЙ

уТБЧОЙФЕ ДЧБ РТЙНЕТБ ОЙЦЕ. тБЪНЕФЛБ ЧЧЕТИХ РТБЧЙМШОБ Ч HTML, ОП ОЕ Ч XML. юФПВЩ УДЕМБФШ ЕЕ ЬЛЧЙЧБМЕОФ Ч XML, ЧЩ ДПМЦОЩ ДБФШ БФТЙВХФХ ЪОБЮЕОЙЕ Й ЧЪСФШ ЕЗП Ч ЛБЧЩЮЛЙ.

чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ПДЙОБТОЩЕ ЙМЙ ДЧПКОЩЕ ЛБЧЩЮЛЙ, ОП ФПМШЛП УПЗМБУПЧБООП.

еУМЙ ЪОБЮЕОЙЕ БФТЙВХФБ УПДЕТЦЙФ ПДЙОБТОЩЕ ЙМЙ ДЧПКОЩЕ ЛБЧЩЮЛЙ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ДТХЗПК ЧЙД ЛБЧЩЮЕЛ, ЮФПВЩ ЪБЛМАЮЙФШ ЪОБЮЕОЙЕ (ЛБЛ Ч name=»Doug’s car» ), ЙМЙ ЙУРПМШЪПЧБФШ УХЭОПУФЙ » ДМС ДЧПКОПК ЛБЧЩЮЛЙ Й ‘ ДМС ПДЙОБТОПК. уХЭОПУФШ — ЬФП УЙНЧПМ, ФБЛПК, ЛБЛ » , ЛПФПТЩК XML-РБТУЕТ ЪБНЕОСЕФ ОБ ДТХЗПК ФЕЛУФ, ФБЛПК, ЛБЛ » .

пВЯСЧМЕОЙС XML

вПМШЫЙОУФЧП XML-ДПЛХНЕОФПЧ ОБЮЙОБАФУС У XML-ПВЯСЧМЕОЙС , ЛПФПТПЕ ПВЕУРЕЮЙЧБЕФ ВБЪПЧХА ЙОЖПТНБГЙА П ДПЛХНЕОФЕ ДМС РБТУЕТБ. хРПФТЕВМЕОЙЕ XML-ПВЯСЧМЕОЙС ТЕЛПНЕОДХЕФУС, ОП ОЕ СЧМСЕФУС ПВСЪБФЕМШОЩН. еУМЙ ПОП ЕУФШ, ПОП ДПМЦОП ВЩФШ РЕТЧЩН, ЮФП ЕУФШ Ч ДПЛХНЕОФЕ.

пВЯСЧМЕОЙЕ НПЦЕФ УПДЕТЦБФШ ДП ФТЕИ РБТ ЙНС-ЪОБЮЕОЙЕ (НОПЗЙЕ ОБЪЩЧБАФ ЙИ БФТЙВХФБНЙ, ИПФС ФЕИОЙЮЕУЛЙ ПОЙ ФБЛПЧЩНЙ ОЕ СЧМСАФУС). version — ЙУРПМШЪХЕНБС ЧЕТУЙС XML; Ч ОБУФПСЭЕЕ ЧТЕНС ПОБ ДПМЦОБ ВЩФШ 1.0 . encoding — ОБВПТ УЙНЧПМПЧ, ЙУРПМШЪХЕНЩК Ч ЬФПН ДПЛХНЕОФЕ. оБВПТ УЙНЧПМПЧ ISO-8859-1, ОБ ЛПФПТЩК УУЩМБЕФУС ДБООПЕ ПВЯСЧМЕОЙЕ, ЧЛМАЮБЕФ Ч УЕВС УЙНЧПМЩ, ЙУРПМШЪХЕНЩЕ Ч ВПМШЫЙОУФЧЕ ЪБРБДОПЕЧТПРЕКУЛЙИ СЪЩЛПЧ. еУМЙ encoding ОЕ ХЛБЪБО, XML-РБТУЕТ РТЕДРПМБЗБЕФ ОБВПТ UTF-8, УФБОДБТФ Unicode, ЛПФПТЩК РПДДЕТЦЙЧБЕФ РПЮФЙ ЧУЕ УЙНЧПМЩ Й ЙЕТПЗМЙЖЩ ЧУЕИ СЪЩЛПЧ НЙТБ.

оБЛПОЕГ, standalone , ЛПФПТЩК НПЦЕФ ВЩФШ МЙВП yes , МЙВП no , ПРТЕДЕМСЕФ, НПЦЕФ МЙ ЬФПФ ДПЛХНЕОФ ВЩФШ ПВТБВПФБО ВЕЪ ЮФЕОЙС ЛБЛЙИ-МЙВП ДТХЗЙИ ЖБКМПЧ. оБРТЙНЕТ, ЕУМЙ XML-ДПЛХНЕОФ ОЕ УУЩМБЕФУС ОБ ДТХЗЙЕ ЖБКМЩ, ЧЩ ДПМЦОЩ ХЛБЪБФШ standalone=»yes» . еУМЙ ЦЕ XML-ДПЛХНЕОФ УУЩМБЕФУС ОБ ДТХЗЙЕ ЖБКМЩ, ЛПФПТЩК ПРЙУЩЧБАФ, ЮФП ДПЛХНЕОФ НПЦЕФ УПДЕТЦБФШ (ВПМШЫЕ ПВ ЬФЙИ ЖБКМБИ — ЮЕТЕЪ НЙОХФХ), ЧЩ ДПМЦОЩ ХЛБЪБФШ standalone=»no» . рПУЛПМШЛХ РП ХНПМЮБОЙА РТЕДРПМБЗБЕФУС standalone=»no» , ЧЩ ТЕДЛП ЧЙДЙФЕ standalone Ч XML-ПВЯСЧМЕОЙСИ.

дТХЗЙЕ ЧЕЭЙ Ч XML-ДПЛХНЕОФБИ

еУФШ ОЕУЛПМШЛП ДТХЗЙИ ЧЕЭЕК, ЛПФПТЩЕ ЧЩ НПЦЕФЕ ОБКФЙ Ч XML-ДПЛХНЕОФЕ:

  • лПННЕОФБТЙЙ: лПННЕОФБТЙЙ НПЗХФ РПСЧМСФШУС ЗДЕ ХЗПДОП Ч ДПЛХНЕОФЕ; ПОЙ НПЗХФ ДБЦЕ РПСЧМСФШУС РЕТЕД ЛПТОЕЧЩН ЬМЕНЕОФПН. лПННЕОФБТЙК ОБЮЙОБЕФУС У Й ЪБЛБОЮЙЧБЕФУС . лПННЕОФБТЙК ОЕ НПЦЕФ УПДЕТЦБФШ ДЧПКОПЗП ДЕЖЙУБ ( — ) ОЙЗДЕ, ЛТПНЕ ЛБЛ Ч ЛПОГЕ; ЪБ ЬФЙН ЙУЛМАЮЕОЙЕН, ЛПННЕОФБТЙК НПЦЕФ УПДЕТЦБФШ ЮФП ХЗПДОП. уБНПЕ ЧБЦОПЕ, ЮФП МАВБС ТБЪНЕФЛБ ЧОХФТЙ ЛПННЕОФБТЙС ЙЗОПТЙТХЕФУС; ЕУМЙ ЧЩ ИПФЙФЕ ХДБМЙФШ ВПМШЫПК ТБЪДЕМ ЙЪ XML-ДПЛХНЕОФБ, РТПУФП ЪБЛМАЮЙФЕ ЬФПФ ТБЪДЕМ Ч ЛПННЕОФБТЙК. (юФПВЩ ЧПУУФБОПЧЙФШ ЪБЛПННЕОФЙТПЧБООЩК ТБЪДЕМ, РТПУФП ХДБМЙФЕ ФЕЗЙ ЛПННЕОФБТЙС.) чПФ ОЕЛПФПТБС ТБЪНЕФЛБ, УПДЕТЦБЭБС ЛПННЕОФБТЙК:
  • йОУФТХЛГЙЙ ПВТБВПФЛЙ: йОУФТХЛГЙС ПВТБВПФЛЙ СЧМСЕФУС ТБЪНЕФЛПК РТЕДОБЪОБЮЕООПК ДМС ПРТЕДЕМЕООПЗП ЛПДБ. ч РТЙНЕТЕ ЧЩЫЕ ЬФП ЙОУФТХЛГЙС ПВТБВПФЛЙ (ЙОПЗДБ ОБЪЩЧБЕНБС PI) ДМС Cocoon, ВЙВМЙПФЕЛЙ ПВТБВПФЛЙ XML ПФ Apache Software Foundation. лПЗДБ Cocoon ПВТБВБФЩЧБЕФ XML-ДПЛХНЕОФ, ПО ЙЭЕФ ЙОУФТХЛГЙЙ ПВТБВПФЛЙ ЛПФПТЩЕ ОБЮЙОБАФУС У cocoon-process, Б ЪБФЕН ПВТБВБФЩЧБЕФ XML-ДПЛХНЕОФ Ч УППФЧЕФУФЧЙЙ У ОЙНЙ. ч ДБООПН РТЙНЕТЕ БФТЙВХФ type=»sql» УППВЭБЕФ Cocoon, ЮФП the XML-ДПЛХНЕОФ УПДЕТЦЙФ ПРЕТБФПТ SQL.
  • уХЭОПУФЙ: рТЙЧЕДЕООЩК ЧЩЫЕ РТЙНЕТ ПРТЕДЕМСЕФ УХЭОПУФШ ДМС ДПЛХНЕОФБ. чЕЪДЕ, ЗДЕ XML-РТПГЕУУПТ ОБИПДЙФ УФТПЛХ &dw; , ПО ЪБНЕОСЕФ УХЭОПУФШ ОБ УФТПЛХ developerWorks . уРЕГЙЖЙЛБГЙС XML ФБЛЦЕ ПРТЕДЕМСЕФ РСФШ УХЭОПУФЕК, ЛПФПТЩЕ ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЧНЕУФП ТБЪМЙЮОЩИ УРЕГЙБМШОЩИ УЙНЧПМПЧ. ьФЙ УХЭОПУФЙ ФБЛЙЕ:
    • ДМС УЙНЧПМБ НЕОШЫЕ
    • > ДМС УЙНЧПМБ ВПМШЫЕ
    • » ДМС ДЧПКОПК ЛБЧЩЮЛЙ
    • ‘ ДМС ПДЙОБТОПК ЛБЧЩЮЛЙ (БРПУФТПЖБ)
    • & ДМС БНРЕТУБОДБ.

рТПУФТБОУФЧБ ЙНЕО

нПЭОПУФШ XML РТПЙУИПДЙФ ПФ ЕЗП ЗЙВЛПУФЙ, ЙЪ ФПЗП ЖБЛФБ, ЮФП ЧЩ Й С, Й НЙММЙПОЩ ДТХЗЙИ МАДЕК НПЦЕН ПРТЕДЕМСФШ ОБЫЙ УПВУФЧЕООЩЕ ФЕЗЙ, ЮФПВЩ ПРЙУЩЧБФШ ОБЫЙ ДБООЩЕ. рПНОЙФЕ РТЙНЕТ XML-ДПЛХНЕОФБ ДМС ЙНЕОЙ Й БДТЕУБ ЮЕМПЧЕЛБ? ьФПФ ДПЛХНЕОФ ЧЛМАЮБЕФ Ч УЕВС ЬМЕНЕОФ ДМС ЧЕЦМЙЧПЗП ЙНЕОПЧБОЙС ЮЕМПЧЕЛБ, ЧРПМОЕ РПДИПДСЭЙК ЧЩВПТ ДМС ЬМЕНЕОФБ ЙНЕОЙ. еУМЙ ЦЕ ЧЩ ТБВПФБЕФЕ У ПОМБКОПЧЩН ЛОЙЗПИТБОЙМЙЭЕН, ЧЩ НПЦЕФЕ УПЪДБФШ ЬМЕНЕОФ ДМС ОБЪЧБОЙС ЛОЙЗЙ. еУМЙ ЦЕ ЧЩ ТБВПФБЕФЕ У ПОМБКОПЧПК ЪБЛМБДОПК ЛПНРБОЙЕК, ЧЩ НПЦЕФЕ УПЪДБФШ ЬМЕНЕОФ ДМС ЮБУФЙ ЪБЛМБДОПЗП ДПЛХНЕОФБ. чУЕ ЬФП ТБЪХНОЩЕ ЧБТЙБОФЩ, ОП ЧУЕ ПОЙ УПЪДБАФ ЬМЕНЕОФЩ У ПДОЙН Й ФЕН ЦЕ ЙНЕОЕН. лБЛ ЧЩ УППВЭЙФЕ, ЮФП ДБООЩК ЬМЕНЕОФ ПФОПУЙФУС Л ЮЕМПЧЕЛХ, ЛОЙЗЕ ЙМЙ ЮБУФЙ ЪБЛМБДОПК? рТЙ РПНПЭЙ РТПУФТБОУФЧ ЙНЕО .

юФПВЩ ЙУРПМШЪПЧБФШ РТПУФТБОУФЧП ЙНЕО, ЧЩ ПРТЕДЕМСЕФЕ РТЕЖЙЛУ РТПУФТБОУФЧБ ЙНЕО Й ПФПВТБЦБЕФЕ ЕЗП ОБ ПРТЕДЕМЕООХА УФТПЛХ. чПФ ФБЛ ЧЩ НПЦЕФЕ ТБЪМЙЮЙФШ РТЕЖЙЛУЩ РТПУФТБОУФЧБ ЙНЕО ДМС ОБЫЙИ ФТЕИ ЬМЕНЕОФПЧ :

ч ЬФПН РТЙНЕТЕ ФТЙ РТЕЖЙЛУБ РТПУФТБОУФЧБ ЙНЕО: addr , books , Й mortgage . ъБНЕФШФЕ, ЮФП ПРТЕДЕМЕОЙЕ РТПУФТБОУФЧБ ЙНЕО ДМС ПРТЕДЕМЕООПЗП ЬМЕНЕОФБ ПЪОБЮБЕФ, ЮФП ЧУЕ ЕЗП ДПЮЕТОЙЕ ЬМЕНЕОФЩ РТЙОБДМЕЦБФ Л ФПНХ ЦЕ РТПУФТБОУФЧХ ЙНЕО. рЕТЧЩК ЬМЕНЕОФ РТЙОБДМЕЦЙФ Л РТПУФТБОУФЧХ ЙНЕО, РПУЛПМШЛХ Л ОЕНХ РТЙОБДМЕЦЙФ ЕЗП ТПДЙФЕМШУЛЙК ЬМЕНЕОФ, .

пДОП РПУМЕДОЕЕ ЪБНЕЮБОЙЕ: уФТПЛБ Ч ПРТЕДЕМЕОЙЙ РТПУФТБОУФЧБ ЙНЕО СЧМСЕФУС ФПМШЛП УФТПЛПК. дБ, ЬФЙ УФТПЛЙ ЧЩЗМСДСФ ЛБЛ URL, ОП ЙНЙ ОЕ СЧМСАФУС. чЩ НПЦЕФЕ ПРТЕДЕМЙФШ xmlns:addr=»mike» , Й ЬФП ФБЛЦЕ ВХДЕФ ТБВПФБФШ. фПМШЛП ПДОП ЧБЦОП Ч ПФОПЫЕОЙЙ УФТПЛЙ РТПУФТБОУФЧБ ЙНЕО: ПОБ ДПМЦОБ ВЩФШ ХОЙЛБМШОПК; ЧПФ РПЮЕНХ ВПМШЫЙОУФЧП РТПУФТБОУФЧ ЙНЕО ЧЩЗМСДСФ ЛБЛ URL. XML-РБТУЕТ ОЕ ПВТБЭБЕФУС Л http://www.zyx.com/books/ , ЮФПВЩ ОБКФЙ DTD ЙМЙ УИЕНХ, ПО РТПУФП ЙУРПМШЪХЕФ ЬФПФ ФЕЛУФ ЛБЛ УФТПЛХ. ьФП ОЕУЛПМШЛП УВЙЧБЕФ У ФПМЛХ, ОП ЙНЕООП ФБЛ ТБВПФБАФ РТПУФТБОУФЧБ ЙНЕО.

тБЪДЕМ 4. пРТЕДЕМЕОЙЕ УПДЕТЦЙНПЗП ДПЛХНЕОФБ

пВЪПТ: пРТЕДЕМЕОЙЕ УПДЕТЦЙНПЗП ДПЛХНЕОФБ

оЕДБЧОП Ч ЬФПН ХЮЕВОЙЛЕ ЧЩ ХЪОБМЙ П ВБЪПЧЩИ РТБЧЙМБИ XML-ДПЛХНЕОФПЧ; ЬФП ЧУЕ ИПТПЫП, ОП ЧБН ОХЦОП ПРТЕДЕМЙФШ ЬМЕНЕОФЩ, ЛПФПТЩЕ ЧЩ УПВЙТБЕФЕУШ ЙУРПМШЪПЧБФШ ДМС РТЕДУФБЧМЕОЙС ДБООЩИ. чЩ ХЪОБЕФЕ П ДЧХИ УРПУПВБИ УДЕМБФШ ЬФП Ч ДБООПН ТБЪДЕМЕ.

  • пДОЙН НЕФПДПН СЧМСЕФУС ЙУРПМШЪПЧБОЙЕ Document Type Definition ЙМЙ DTD (пРТЕДЕМЕОЙЕ фЙРБ дПЛХНЕОФБ). DTD ПРТЕДЕМСЕФ ЬМЕНЕОФЩ, ЛПФПТЩЕ НПЗХФ РПСЧМСФШУС Ч XML-ДПЛХНЕОФЕ, РПТСДПЛ, Ч ЛПФПТПН ПОЙ НПЗХФ РПСЧМСФШУС, ЛБЛ ПОЙ НПЗХФ ВЩФШ ЧМПЦЕОЩ ДТХЗ Ч ДТХЗБ Й ДТХЗЙЕ ПУОПЧОЩЕ ДЕФБМЙ УФТХЛФХТЩ XML-ДПЛХНЕОФБ. DTD СЧМСАФУС ЮБУФША ЙУИПДОПК УРЕГЙЖЙЛБГЙЙ XML Й ПОЙ ПЮЕОШ РПИПЦЙ ОБ DTD Ч SGML.
  • дТХЗЙН НЕФПДПН СЧМСЕФУС ЙУРПМШЪПЧБОЙЕ XML Schema (УИЕНБ XML). уИЕНБ НПЦЕФ ПРТЕДЕМЙФШ ЧУЕ ФП Ч УФТХЛФХТЕ ДПЛХНЕОФБ, ЮФП ЧЩ НПЦЕФЕ РПНЕУФЙФШ Ч DTD, Й НПЦЕФ ФБЛЦЕ ПРТЕДЕМЙФШ ФЙРЩ ДБООЩИ Й ВПМЕЕ УМПЦОЩЕ РТБЧЙМБ, ЮЕН DTD. W3C ТБЪТБВПФБМБ УРЕГЙЖЙЛБГЙА XML Schema ЮЕТЕЪ РБТХ МЕФ РПУМЕ ЙУИПДОПК УРЕГЙЖЙЛБГЙЙ XML.

DTD — пРТЕДЕМЕОЙЕ фЙРБ дПЛХНЕОФБ

DTD РПЪЧПМСЕФ ЧБН ЪБДБФШ ПУОПЧОХА УФТХЛФХТХ XML-ДПЛХНЕОФБ. уМЕДХАЭБС РБТБ ТБЪДЕМПЧ ТБУУНБФТЙЧБЕФ ЖТБЗНЕОФЩ DTD. рТЕЦДЕ ЧУЕЗП, ЧПФ DTD, ЛПФПТПЕ ПРТЕДЕМСЕФ ПУОПЧОХА УФТХЛФХТХ РТЙНЕТБ ДПЛХНЕОФБ БДТЕУБ ЙЪ ТБЪДЕМБ юФП ФБЛПЕ XML ?:

ьФП DTD ПРТЕДЕМСЕФ ЧУЕ ЬМЕНЕОФЩ, ЙУРПМШЪХЕНЩЕ Ч РТЙНЕТЕ ДПЛХНЕОФБ. пОП ПРТЕДЕМСЕФ ФТЙ ПУОПЧОЩЕ ЧЕЭЙ:

    ьМЕНЕОФ УПДЕТЦЙФ , , , Й

. чУЕ ЬФЙ ЬМЕНЕОФЩ ДПМЦОЩ РТЙУХФУФЧПЧБФШ Й ЙНЕООП Ч ФБЛПН РПТСДЛЕ.

  • ьМЕНЕОФ УПДЕТЦЙФ ОЕПВСЪБФЕМШОЩК ЬМЕНЕОФ (ЪОБЛ ЧПРТПУБ ПЪОБЮБЕФ, ЮФП СЧМСЕФУС ОЕПВСЪБФЕМШОЩН), ЪБ ЛПФПТЩН УМЕДХЕФ ЬМЕНЕОФ Й ЬМЕНЕОФ .
  • чУЕ ДТХЗЙЕ ЬМЕНЕОФЩ УПДЕТЦБФ ФЕЛУФ. ( #PCDATA ПВПЪОБЮБЕФ ТБЪВЙТБЕНЩЕ УЙНЧПМШОЩЕ ДБООЩЕ; ЧЩ ОЕ НПЦЕФЕ ЧЛМАЮБФШ ДТХЗЙЕ ЬМЕНЕОФЩ Ч ЬФЙ ЬМЕНЕОФЩ.)
  • иПФС DTD РТПУФПЕ, ПОП РТПСУОСЕФ, ЛБЛЙЕ ЛПНВЙОБГЙЙ ЬМЕНЕОФПЧ СЧМСАФУС ДПРХУФЙНЩНЙ. дПЛХНЕОФ БДТЕУБ, ЛПФПТЩК ЙНЕЕФ ЬМЕНЕОФ

    РЕТЕД ЬМЕНЕОФПН , ОЕ СЧМСЕФУС РТБЧЙМШОЩН, ЛБЛ Й ДПЛХНЕОФ, ЛПФПТЩК ОЕ ЙНЕЕФ ЬМЕНЕОФБ .

    фБЛЦЕ ЪБНЕФШФЕ, ЮФП УЙОФБЛУЙУ DTD ПФМЙЮБЕФУС ПФ ПВЩЮОПЗП УЙОФБЛУЙУБ XML. (дПЛХНЕОФЩ XML Schema, ОБПВПТПФ, УБНЙ СЧМСАФУС XML-ДПЛХНЕОФБНЙ, ЮФП ДБЕФ ОЕЛПФПТЩЕ ЙОФЕТЕУОЩЕ ТЕЪХМШФБФЩ.) оЕУНПФТС ОБ ЙОПК УЙОФБЛУЙУ DTD, ЧЩ НПЦЕФЕ РПНЕЭБФШ Ч УБНП DTD ПВЩЮОЩЕ ЛПННЕОФБТЙЙ.

    уЙНЧПМЩ Ч DTD

    ъБНЕЮБОЙЕ РП РПЧПДХ ЗЙВЛПУФЙ

    рТЕЦДЕ, ЮЕН ДЧЙЗБФШУС ДБМШЫЕ, УДЕМБЕН НБМЕОШЛПЕ ЪБНЕЮБОЙЕ П ТБЪТБВПФЛЙ ФЙРПЧ XML-ДПЛХНЕОФБ ДМС ПВЕУРЕЮЕОЙС ЗЙВЛПУФЙ. тБУУНПФТЙН РТЙНЕТ ФЙРБ ДПЛХНЕОФБ ЙНЕОЙ Й БДТЕУБ; С, РПОСФОП, РЙУБМ ЕЗП, ЙНЕС Ч ЧЙДХ РПЮФПЧЩЕ БДТЕУБ уыб. еУМЙ ЧБН ОХЦОП DTD ЙМЙ УИЕНБ, ЛПФПТЩЕ ПРТЕДЕМСАФ ДТХЗЙЕ ФЙРЩ БДТЕУПЧ, ЧЩ ДПМЦОЩ ВХДЕФЕ УДЕМБФШ ЙИ ЪОБЮЙФЕМШОП ВПМЕЕ УМПЦОЩНЙ. пВСЪБФЕМШОПУФШ ЬМЕНЕОФБ НПЦЕФ ЙНЕФШ УНЩУМ Ч бЧУФТБМЙЙ, ОП ОЕ Ч уПЕДЙОЕООПН лПТПМЕЧУФЧЕ. лБОБДУЛЙК БДТЕУ НПЦЕФ ВЩФШ ПВТБВПФБО DTD ЙЪ РТЙНЕТБ Ч пРТЕДЕМЕОЙЕ фЙРБ дПЛХНЕОФБ , ОП МХЮЫЕ ВХДЕФ ДПВБЧЙФШ ЬМЕНЕОФ

    . оБЛПОЕГ, ЧП НОПЗЙИ ЮБУФСИ УЧЕФБ ФБЛЙЕ ЛПОГЕРГЙЙ, ЛБЛ ЙНЕОПЧБОЙЕ, РЕТЧПЕ ЙНС Й РПУМЕДОЕЕ ЙНС ОЕ ЙНЕАФ УНЩУМБ.

    й РПУМЕДОЕЕ: еУМЙ ЧЩ УПВЙТБЕФЕУШ ПРТЕДЕМЙФШ УФТХЛФХТХ XML-ДПЛХНЕОФБ, ЧЩ ДПМЦОЩ РТЕДХУНПФТЕФШ Ч ЧБЫЕК DTD ЙМЙ УИЕНЕ УФПМШЛП ЦЕ, УЛПМШЛП ЧЩ РТЕДХУНБФТЙЧБЕФЕ, РТПЕЛФЙТХС УИЕНХ ВБЪЩ ДБООЩИ ЙМЙ УФТХЛФХТХ ДБООЩИ ДМС РТЙМПЦЕОЙС. юЕН ВПМШЫЕ ФТЕВПЧБОЙК ЧЩ РТЕДХУНПФТЙФЕ, ФЕН МЕЗЮЕ Й ДЕЫЕЧМЕ ВХДЕФ ДМС ЧБУ ТЕБМЙЪПЧБФШ ЙЪ РПФПН.

    пРТЕДЕМЕОЙЕ БФТЙВХФПЧ

    ьФПФ ЧЧПДОЩК ХЮЕВОЙЛ ОЕ УМЙЫЛПН ЧДБЕФУС Ч РПДТПВОПУФЙ П ФПН, ЛБЛ ТБВПФБАФ DTD, ОП ЕУФШ ЕЭЕ ПДОБ ПУОПЧОБС ФЕНБ, ЛПФПТХА НЩ ТБУУНБФТЙЧБЕН ЪДЕУШ: ПРТЕДЕМЕОЙЕ БФТЙВХФПЧ. чЩ НПЦЕФЕ ПРТЕДЕМЙФШ БФТЙВХФЩ ДМС ЬМЕНЕОФПЧ, РПСЧМСАЭЙИУС Ч ЧБЫЕН XML-ДПЛХНЕОФЕ. рТЙ РПНПЭЙ DTD ЧЩ НПЦЕФЕ ФБЛЦЕ:

    • пРТЕДЕМЙФШ, ЛБЛЙЕ БФТЙВХФЩ СЧМСАФУС ПВСЪБФЕМШОЩНЙ
    • пРТЕДЕМЙФШ ЪОБЮЕОЙЕ РП ХНПМЮБОЙА ДМС ДБООПЗП БФТЙВХФБ
    • рЕТЕЮЙУМЙФШ ДПРХУФЙНЩЕ ЪОБЮЕОЙС ДМС ДБООПЗП БФТЙВХФБ

    рТЕДРПМПЦЙН, ЧЩ ИПФЙФЕ ЙЪНЕОЙФШ DTD, ЮФПВЩ УДЕМБФШ state БФТЙВХФПН ЬМЕНЕОФБ . чПФ ЛБЛ ЬФП УДЕМБФШ:

    ъДЕУШ ЬМЕНЕОФ ПРТЕДЕМСЕФУС, ЛБЛ Й РТЕЦДЕ, ОП РЕТЕУНПФТЕООЩК РТЙНЕТ ФБЛЦЕ ЙУРПМШЪХЕФ ПВЯСЧМЕОЙЕ ATTLIST ДМС РЕТЕЮЙУМЕОЙС БФТЙВХФПЧ ЬМЕНЕОФБ. йНС city Ч УРЙУЛЕ БФТЙВХФПЧ УППВЭБЕФ РБТУЕТХ, ЮФП ЬФЙ БФТЙВХФЩ ПРТЕДЕМСАФУС ДМС ЬМЕНЕОФБ . йНС state СЧМСЕФУС ЙНЕОЕН БФТЙВХФБ, Б ЛМАЮЕЧЩЕ УМПЧБ CDATA Й #REQUIRED УППВЭБАФ РБТУЕТХ, ЮФП БФТЙВХФ state УПДЕТЦЙФ ФЕЛУФ Й СЧМСЕФУС ПВСЪБФЕМШОЩН (ЕУМЙ ПО ОЕ ПВСЪБФЕМШОЩК, ЬФП ПВЕУРЕЮЙФУС РТЙ РПНПЭЙ CDATA #IMPLIED ).

    юФПВЩ ПРТЕДЕМЙФШ НОПЗП БФТЙВХФПЧ ДМС ЬМЕНЕОФБ, ЪБРЙЫЙФЕ ATTLIST , РПДПВОЩК ФБЛПНХ:

    ьФПФ РТЙНЕТ ПРТЕДЕМСЕФ Й state , Й postal-code ЛБЛ БФТЙВХФЩ ЬМЕНЕОФБ .

    оБЛПОЕГ, DTD РПЪЧПМСАФ ЧБН ПРТЕДЕМСФШ ЪОБЮЕОЙС РП ХНПМЮБОЙА ДМС БФТЙВХФПЧ Й РЕТЕЮЙУМСФШ ЧУЕ ДПРХУФЙНЩЕ ЪОБЮЕОЙС ДМС БФТЙВХФБ:

    ьФПФ РТЙНЕТ РПЛБЪЩЧБЕФ, ЮФП РПДДЕТЦЙЧБАФУС ФПМШЛП БДТЕУБ ЙЪ ЫФБФПЧ бТЙЪПОБ (AZ), лБМЙЖПТОЙС (CA), оЕЧБДБ (NV), пТЕЗПО (OR), аФБ (UT) Й чБЫЙОЗФПО (WA), Ч ЫФБФ РП ХНПМЮБОЙА — лБМЙЖПТОЙС. фБЛЙН ПВТБЪПН, ЧЩ НПЦЕФЕ ПВЕУРЕЮЙФШ ЧЕУШНБ ПЗТБОЙЮЕООХА ЖПТНХ РТПЧЕТЛЙ ДБООЩИ. иПФС ЬФП Й РПМЕЪОБС ЖХОЛГЙС, ОП ЬФП МЙЫШ НБМПЕ РПДНОПЦЕУФЧП ФПЗП, ЮФП ЧЩ НПЦЕФЕ РТПДЕМБФШ РТЙ РПНПЭЙ УИЕН XML.

    уИЕНЩ XML

    уП УИЕНБНЙ XML ЧЩ ЙНЕЕФЕ ВПМШЫЕ ЧПЪНПЦОПУФЕК ДМС ПРТЕДЕМЕОЙС ФПЗП, ЛБЛ ЧЩЗМСДСФ РТБЧЙМШОЩЕ XML-ДПЛХНЕОФЩ. пОЙ ЙНЕАФ ОЕУЛПМШЛП РТЕЙНХЭЕУФЧ РП УТБЧОЕОЙА У DTD:

    • уИЕНЩ XML ЙУРПМШЪХАФ УЙОФБЛУЙУ XML. дТХЗЙНЙ УМПЧБНЙ, УИЕНБ XML СЧМСЕФУС XML-ДПЛХНЕОФПН. ьФП ПЪОБЮБЕФ, ЮФП ЧЩ НПЦЕФЕ ПВТБВБФЩЧБФШ УИЕНХ ФБЛ ЦЕ, ЛБЛ Й МАВПК ДТХЗПК ДПЛХНЕОФ. оБРТЙНЕТ, ЧЩ НПЦЕФЕ ОБРЙУБФШ ФБВМЙГХ УФЙМЕК XSLT, ЛПФПТБС РТЕПВТБЪХЕФ УИЕНХ XML Web-ЖПТНХ ЧНЕУФЕ У БЧФПНБФЙЮЕУЛПК ЗЕОЕТБГЙЕК ЛПДБ JavaScript, ЛПФПТЩК ВХДЕФ РТПЧЕТСФШ ДБООЩЕ РП НЕТЕ ЙИ ЧЧПДБ.
    • уИЕНЩ XML РПДДЕТЦЙЧБАФ ФЙРЩ ДБООЩИ. иПФС DTD ЧЩРПМОСЕФ РПДДЕТЦЛХ ФЙРПЧ ДБООЩИ, ПОП ТБУУНБФТЙЧБЕФ ЬФЙ ФЙРЩ ДБООЩИ ФПМШЛП У ФПЮЛЙ ЪТЕОЙС РХВМЙЛБГЙЙ. уИЕНЩ XML РПДДЕТЦЙЧБАФ ЧУЕ ЙУИПДОЩЕ ФЙРЩ ДБООЩИ DTD (ФБЛЙЕ, ЛБЛ ID Й УУЩМЛЙ ID). пОЙ ФБЛЦЕ РПДДЕТЦЙЧБАФ ГЕМЩЕ Й ЧЕЭЕУФЧЕООЩЕ ЮЙУМБ, ДБФЩ Й ЧТЕНЕОБ, УФТПЛЙ, URL Й ДТХЗЙЕ ФЙРЩ ДБООЩИ, РПМЕЪОЩЕ ДМС ПВТБВПФЛЙ Й РТПЧЕТЛЙ ДБООЩИ.
    • уИЕНЩ XML СЧМСАФУС ТБУЫЙТСЕНЩНЙ. лТПНЕ ФЙРПЧ ДБООЩИ, ПРТЕДЕМЕООЩИ Ч УРЕГЙЖЙЛБГЙЙ XML schema, ЧЩ НПЦЕФЕ ФБЛЦЕ УПЪДБЧБФШ УПВУФЧЕООЩЕ ФЙРЩ Й НПЦЕФЕ УПЪДБЧБФШ ФЙРЩ-ОБУМЕДОЙЛЙ ОБ ВБЪЕ ДТХЗЙИ ФЙРПЧ ДБООЩИ.
    • уИЕНЩ XML ЙНЕАФ ВПМЕЕ НПЭОЩЕ ЧЩТБЦЕОЙС. оБРТЙНЕТ, РТЙ РПНПЭЙ УИЕН XML ЧЩ НПЦЕФЕ ПРТЕДЕМЙФШ, ЮФП МАВПЕ ЪОБЮЕОЙЕ БФТЙВХФБ ОЕ НПЦЕФ ВЩФШ ДМЙООЕЕ ДЧХИ УЙНЧПМПЧ ЙМЙ ЮФП МАВПЕ ЪОБЮЕОЙЕ ЬМЕНЕОФБ

    ДПМЦОП УППФЧЕФУФЧПЧБФШ ТЕЗХМСТОПНХ ЧЩТБЦЕОЙА [0-9]<5>(-[0-9]<4>)? .

    оЙЮЕЗП ЙЪ ЬФПЗП ЧЩ ОЕ НПЦЕФЕ УДЕМБФШ РТЙ РПНПЭЙ DTD.

    рТЙНЕТ УИЕНЩ XML

    чПФ УИЕНБ XML, ЛПФПТБС УППФЧЕФУФЧХЕФ ЙУИПДОПНХ DTD ЙНЕОЙ Й БДТЕУБ. ч ОЕК ДПВБЧМЕОП ДЧБ ПЗТБОЙЮЕОЙС. ъОБЮЕОЙЕ ЬМЕНЕОФБ ДПМЦОП УПУФПСФШ ФПЮОП ЙЪ ДЧХИ УЙНЧПМПЧ, Б ЪОБЮЕОЙЕ ЬМЕНЕОФБ

    ДПМЦОП УППФЧЕФУФЧПЧБФШ ТЕЗХМСТОПНХ ЧЩТБЦЕОЙА [0-9]<5>(-[0-9]<4>)? . иПФС УИЕНБ ЪОБЮЙФЕМШОП ДМЙООЕЕ, ЮЕН DTD, ПОБ ЧЩТБЦБЕФ ВПМШЫЕ СУОПУФЙ Ч ФПН, ОБ ЮФП РПИПЦ РТБЧЙМШОЩК ДПЛХНЕОФ. чПФ ЬФБ УИЕНБ:

    пРТЕДЕМЕОЙЕ ЬМЕНЕОФПЧ Ч УИЕНБИ

    лБЛ Й ЧЕТУЙС У DTD, РТЙНЕТ УИЕНЩ XML ПРТЕДЕМСЕФ, ЮФП УПДЕТЦЙФ ЬМЕНЕОФЩ , , , Й

    Ч ФБЛПН РПТСДЛЕ. ъБНЕФШФЕ, ЮФП УИЕНБ ПРТЕДЕМСЕФ ОПЧЩК ФЙР ДБООЩИ РТЙ РПНПЭЙ ЬМЕНЕОФБ . вПМШЫЙОУФЧП ЬМЕНЕОФПЧ УПДЕТЦЙФ ФЕЛУФ, ЙИ ПРТЕДЕМЕОЙЕ РТПУФПЕ. чЩ ФПМШЛП ПВЯСЧМСЕФЕ ОПЧЩК ЬМЕНЕОФ Й ДБЕФЕ ЕНХ ФЙР ДБООЩИ xsd:string :

    пРТЕДЕМЕОЙЕ УПДЕТЦЙНПЗП ЬМЕНЕОФБ Ч УИЕНБИ

    рТЙНЕТ УИЕНЩ ПРТЕДЕМСЕФ ПЗТБОЙЮЕОЙС ДМС УПДЕТЦЙНПЗП ДЧХИ ЬМЕНЕОФПЧ: уПДЕТЦЙНПЕ ЬМЕНЕОФБ ДПМЦОП ЙНЕФШ ДМЙОХ Ч ДЧБ УЙНЧПМБ, Б УПДЕТЦЙНПЕ ЬМЕНЕОФБ

    ДПМЦОП УППФЧЕФУФЧПЧБФШ ТЕЗХМСТОПНХ ЧЩТБЦЕОЙА [0-9]<5>(-[0-9]<4>)? . чПФ ЛБЛ ЬФП УДЕМБОП:

    дМС ЬМЕНЕОФПЧ Й

    УИЕНБ ПРТЕДЕМСЕФ ОПЧЩЕ ФЙРЩ ДБООЩИ У ПЗТБОЙЮЕОЙСНЙ. ч РЕТЧПН УМХЮБЕ ЙУРПМШЪХЕФУС ЬМЕНЕОФ , Б ЧП ЧФПТПН — ЬМЕНЕОФ ДМС ПРТЕДЕМЕОЙС ТЕЗХМСТОПЗП ЧЩТБЦЕОЙС, ЛПФПТПНХ ЬФПФ ЬМЕНЕОФ ДПМЦЕО УППФЧЕФУФЧПЧБФШ.

    ьФП ЛТБФЛПЕ ЙЪМПЦЕОЙЕ МЙЫШ ЕДЧБ ЛБУБЕФУС РПЧЕТИОПУФЙ ФПЗП, ЮФП НПЗХФ ДЕМБФШ УИЕНЩ XML; ОБ ЬФХ ФЕНХ ОБРЙУБОЩ ГЕМЩЕ ЛОЙЗЙ. дМС ГЕМЕК ЬФПЗП ЧЧЕДЕОЙС ДПУФБФПЮОП УЛБЪБФШ, ЮФП УИЕНЩ XML СЧМСАФУС ПЮЕОШ НПЭОЩН Й ЗЙВЛЙН УРПУПВПН ПРЙУБОЙС ФПЗП, ЛБЛ ДПМЦЕО ЧЩЗМСДЕФШ РТБЧЙМШОЩК XML-ДПЛХНЕОФ.

    тБЪДЕМ 5. рТПЗТБННОЩЕ ЙОФЕТЖЕКУЩ XML

    пВЪПТ: рТПЗТБННОЩЕ ЙОФЕТЖЕКУЩ XML

    ч ЬФПН ТБЪДЕМЕ ТБУУНБФТЙЧБЕФУС ТСД РТПЗТБННОЩИ ЙОФЕТЖЕКУПЧ ДМС XML. ьФЙ ЙОФЕТЖЕКУЩ ДБАФ ТБЪТБВПФЮЙЛБН ГЕМПУФОЩК ЙОФЕТЖЕКУ ДМС ТБВПФЩ У XML-ДПЛХНЕОФБНЙ. уХЭЕУФЧХЕФ НОПЗП ДПУФХРОЩИ API; Ч ЬФПН ТБЪДЕМЕ ТБУУНБФТЙЧБАФУС ЮЕФЩТЕ ЙЪ ОЙИ, ОБЙВПМЕЕ РПРХМСТОЩЕ Й ОБЙВПМЕЕ ЮБУФП ЙУРПМШЪХЕНЩЕ: пВЯЕЛФОБС нПДЕМШ дПЛХНЕОФБ (Document Object Model — DOM), рТПУФПК API ДМС XML (Simple API for XML — SAX), JDOM Й Java API ДМС тБЪВПТБ XML (Java API for XML Parsing — JAXP). (чЩ НПЦЕФЕ ОБКФЙ ЪОБЮЙФЕМШОП ВПМШЫЕ ЙОЖПТНБГЙЙ РП ЬФЙН API ЮЕТЕЪ УУЩМЛЙ Ч тЕУХТУЩ.)

    пВЯЕЛФОБС нПДЕМШ дПЛХНЕОФБ

    пВЯЕЛФОБС нПДЕМШ дПЛХНЕОФБ, ПВЩЮОП ОБЪЩЧБЕНБС DOM, ПРТЕДЕМСЕФ ОБВПТ ЙОФЕТЖЕКУПЧ ДМС ТБЪПВТБООПК ЧЕТУЙЙ XML-ДПЛХНЕОФБ. рБТУЕТ ЮЙФБЕФ ЧЕУШ ДПЛХНЕОФ Й УФТПЙФ ДЕТЕЧП Ч РБНСФЙ, ФБЛ ЮФП ЧБЫ ЛПД НПЦЕФ ЙУРПМШЪПЧБФШ ЙОФЕТЖЕКУЩ DOM ДМС НБОЙРХМЙТПЧБОЙС ДЕТЕЧПН. чЩ НПЦЕФЕ ДЧЙЗБФШУС РП ДЕТЕЧХ, ЮФПВЩ ХЧЙДЕФШ, ЮФП УПДЕТЦБМ ЙУИПДОЩК ДПЛХНЕОФ, ЧЩ НПЦЕФЕ ХДБМСФШ ЮБУФЙ ДЕТЕЧБ, ЧЩ НПЦЕФЕ РЕТЕХРПТСДПЮЙФШ ДЕТЕЧП, ДПВБЧМСФШ ОПЧЩЕ ЧЕФЧЙ Й Ф.Д. DOM ВЩМБ УПЪДБОБ W3C, Й ЬФП — пЖЙГЙБМШОБС тЕЛПНЕОДБГЙС ЛПОУПТГЙХНБ.

    рТПВМЕНЩ DOM

    DOM ПВЕУРЕЮЙЧБЕФ ВПЗБФЩК ОБВПТ ЖХОЛГЙК, ЛПФПТЩЕ ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ДМС ЙОФЕТРТЕФБГЙЙ XML-ДПЛХНЕОФБ Й НБОЙРХМЙТПЧБОЙС ЙН, ОП ЪБ ЬФЙ ЖХОЛГЙЙ ОБДП РМБФЙФШ.

    лПЗДБ ВЩМБ ТБЪТБВПФБОБ ЙУИПДОБС DOM ДМС XML-ДПЛХНЕОФПЧ, НОПЗЙЕ МАДЙ Ч УРЙУЛЕ ТБУУЩМЛЙ XML-DEV ЧЩТБЪЙМЙ ВЕУРПЛПКУФЧП РП РПЧПДХ ЕЕ:

    • DOM УФТПЙФ Ч РБНСФЙ ДЕТЕЧП ЧУЕЗП ДПЛХНЕОФБ. еУМЙ ДПЛХНЕОФ ПЮЕОШ ВПМШЫПК, ЬФП ФТЕВХЕФ ЪОБЮЙФЕМШОПЗП ПВЯЕНБ РБНСФЙ.
    • DOM УПЪДБЕФ ПВЯЕЛФЩ, ЛПФПТЩЕ РТЕДУФБЧМСАФ ЧУЕ, ЮФП ЕУФШ Ч ЙУИПДОПН ДПЛХНЕОФЕ, ЧЛМАЮБС ЬМЕНЕОФЩ, ФЕЛУФ, БФТЙВХФЩ Й РТПРХУЛЙ. еУМЙ ЧБН ОХЦОП ЙНЕФШ ДЕМП ФПМШЛП У ОЕВПМШЫПК РПТГЙЕК ЙУИПДОПЗП ДПЛХНЕОФБ, ФП ЛТБКОЕ ТБУФПЮЙФЕМШОП УПЪДБЧБФШ ЧУЕ ЬФЙ ПВЯЕЛФЩ, ЛПФПТЩЕ ОЙЛПЗДБ ОЕ ВХДХФ ЙУРПМШЪПЧБОЩ.
    • рБТУЕТ DOM ДПМЦЕО РТПЮЙФБФШ ЧЕУШ ДПЛХНЕОФ РТЕЦДЕ, ЮЕН ЧБЫ ЛПД РПМХЮЙФ ХРТБЧМЕОЙЕ. дМС ПЮЕОШ ВПМШЫЙИ ДПЛХНЕОФПЧ ЬФП НПЦЕФ РТЙЧЕУФЙ Л ЪОБЮЙФЕМШОПК ЪБДЕТЦЛЕ.

    ьФП ФПМШЛП УРПТОЩЕ ЧПРТПУЩ, ЧПЪОЙЛЫЙЕ РТЙ РТПЕЛФЙТПЧБОЙЙ DOM; ОЕУНПФТС ОБ ЬФП, API DOM СЧМСЕФУС ПЮЕОШ ХДПВОЩН УРПУПВПН ДМС ТБЪВПТБ XML-ДПЛХНЕОФПЧ.

    Simple API for XML

    юФПВЩ ПВПКФЙ РТПВМЕНЩ DOM, ХЮБУФОЙЛЙ XML-DEV (ЧПЪЗМБЧМСЕНПК David Megginson) УПЪДБМЙ ЙОФЕТЖЕКУ SAX. SAX ЙНЕЕФ ОЕУЛПМШЛП ИБТБЛФЕТЙУФЙЛ, ОБРТБЧМЕООЩИ ОБ РТЕПДПМЕОЙЕ ОЕДПУФБФЛПЧ DOM:

    • рБТУЕТ SAX РПУЩМБЕФ Ч ЧБЫ ЛПД УПВЩФЙС. рБТУЕТ УППВЭБЕФ ЧБН, ЛПЗДБ ПО ОБИПДЙФ ОБЮБМП ЬМЕНЕОФБ, ЛПОЕГ ЬМЕНЕОФБ, ФЕЛУФ, ОБЮБМП Й ЛПОЕГ ДПЛХНЕОФБ Й Ф.Д. чЩ ТЕЫБЕФЕ, ЛБЛЙЕ УПВЩФЙС ЧБЦОЩ ДМС ЧБУ, ЧЩ ТЕЫБЕФЕ, ЛБЛПК ЧЙД УФТХЛФХТЩ ДБООЩИ ЧЩ ИПФЙФЕ УПЪДБФШ ДМС ИТБОЕОЙС ДБООЩИ ЙЪ ЬФЙИ УПВЩФЙК. еУМЙ ЧЩ СЧОЩН ПВТБЪПН ОЕ УПИТБОСЕФЕ ДБООЩЕ ЙЪ ЬФЙИ УПВЩФЙК, ПОЙ ФЕТСАФУС.
    • рБТУЕТ SAX ОЕ УПЪДБЕФ ОЙЛБЛЙИ ПВЯЕЛФПЧ ЧППВЭЕ, ПО РТПУФП ДПУФБЧМСЕФ УПВЩФЙС Ч ЧБЫЕ РТЙМПЦЕОЙЕ. еУМЙ ЧЩ ИПФЙФЕ УПЪДБЧБФШ ПВЯЕЛФЩ ОБ ПУОПЧЕ ЬФЙИ УПВЩФЙК — ЬФП ЧБЫЕ ДЕМП.
    • рБТУЕТ SAX ОБЮЙОБЕФ ДПУФБЧМСЕФ ЧБН УПВЩФЙС УТБЪХ ЦЕ РПУМЕ ОБЮБМБ УЧПЕК ТБВПФЩ. чБЫ ЛПД РПМХЮЙФШ УПВЩФЙЕ, ЛПЗДБ РБТУЕТ ОБКДЕФ ОБЮБМП ДПЛХНЕОФБ, ЛПЗДБ ПО ОБКДЕФ ОБЮБМП ЬМЕНЕОФБ, ЛПЗДБ ПО ОБКДЕФ ФЕЛУФ Й Ф.Д. чБЫЕ РТЙМПЦЕОЙЕ УТБЪХ ЦЕ ОБЮОЕФ ЗЕОЕТЙТПЧБФШ ТЕЪХМШФБФЩ Й ОЕ ВХДЕФ ДПМЦОП ПЦЙДБФШ, РПЛБ ВХДЕФ ТБЪПВТБО ЧЕУШ ДПЛХНЕОФ. дБЦЕ МХЮЫЕ, ЕУМЙ ЧЩ ЙЭЕФЕ ФПМШЛП ПРТЕДЕМЕООЩЕ ЧЕЭЙ Ч ДПЛХНЕОФЕ, ЧБЫ ЛПД НПЦЕФ УЗЕОЕТЙТПЧБФШ ЙУЛМАЮЕОЙЕ, ЕУМЙ ПО ОБЫЕМ ФП, ЮФП ЙУЛБМ. йУЛМАЮЕОЙЕ ПУФБОБЧМЙЧБЕФ РБТУЕТ SAX, Й ЧБЫ ЛПД НПЦЕФ ДЕМБФШ ФП, ЮФП ЕНХ ОХЦОП УДЕМБФШ У ОБКДЕООЩНЙ ДБООЩНЙ

    у ХЮЕФПН ЧУЕЗП УЛБЪБООПЗП, Й SAX, Й DOM ЙНЕАФ УЧПЕ НЕУФП. пУФБФПЛ ЬФПЗП ТБЪДЕМБ РПУЧСЭЕО ПВУХЦДЕОЙА ФПЗП, РПЮЕНХ ЧЩ НПЦЕФЕ ЪБИПФЕФШ ЙУРПМШЪПЧБФШ ФПФ ЙМЙ ЙОПК ЙОФЕТЖЕКУ.

    рТПВМЕНЩ SAX

    юФПВЩ ВЩФШ ЮЕУФОЩНЙ, РБТУЕТЩ SAX ФБЛЦЕ ЙНЕАФ РТПВМЕНЩ, ЛПФПТЩЕ НПЗХФ ЧЩЪЩЧБФШ ПРБУЕОЙС:

    • уПВЩФЙС SAX ОЕ УПИТБОСАФ УПУФПСОЙС. лПЗДБ РБТУЕТ SAX ОБИПДЙФ ФЕЛУФ Ч XML-ДПЛХНЕОФЕ, ПО РПУЩМБЕФ УПВЩФЙЕ Ч ЧБЫ ЛПД. ьФП УПВЩФЙЕ РТПУФП ДБЕФ ЧБН ОБКДЕООЩК ФЕЛУФ; ПОП ОЕ УППВЭБЕФ ЧБН, ЛБЛПК ЬМЕНЕОФ УПДЕТЦЙФ ЬФПФ ФЕЛУФ. еУМЙ ЧЩ ИПФЙФЕ ЪОБФШ ЬФП, ЧЩ ДПМЦОЩ ОБРЙУБФШ ЛПД, ХРТБЧМСАЭЙК УПУФПСОЙЕН, УБНЙ.
    • уПВЩФЙС SAX ОЕ УПИТБОСАФУС. еУМЙ ЧБЫЕНХ РТЙМПЦЕОЙА ОХЦОБ УФТХЛФХТБ ДБООЩИ, ЛПФПТБС НПДЕМЙТХЕФ XML-ДПЛХНЕОФ, ЧЩ ДПМЦОЩ ОБРЙУБФШ ЬФПФ ЛПД УБНЙ. еУМЙ ЧБН ОХЦОП ПВТБЭБФШУС Л ДБООЩН ЙЪ УПВЩФЙС SAX, Й ЧЩ ОЕ УПИТБОЙМЙ ДБООЩЕ Ч ЧБЫЕН ЛПДЕ, ЧЩ ДПМЦОЩ ТБЪПВТБФШ ДПЛХНЕОФ УОПЧБ.
    • SAX ОЕ ХРТБЧМСЕФУС ГЕОФТБМЙЪПЧБООПК ПТЗБОЙЪБГЙЕК. иПФС РПЛБ ЬФП ОЕ УПУФБЧЙМП РТПВМЕН, ОЕЛПФПТЩН ТБЪТБВПФЮЙЛБН РПЛБЪБМПУШ ВЩ ВПМЕЕ ЛПНЖПТФБВЕМШОЩН, ЕУМЙ ВЩ SAX ХРТБЧМСЕФУС ПТЗБОЙЪБГЙЕК, ФБЛПК ЛБЛ W3C.

    тБЪПЮБТПЧБООЩЕ ФТХДОПУФСНЙ Ч ЧЩРПМОЕОЙЙ ПРТЕДЕМЕООЩИ ЪБДБЮ РТЙ РПНПЭЙ НПДЕМЕК DOM Й SAX, Jason Hunter Й Brett McLaughlin УПЪДБМЙ РБЛЕФ JDOM. JDOM — РТПЕЛФ У ПФЛТЩФЩН ЛПДПН ОБ ПУОПЧЕ ФЕИОПМПЗЙЙ Java, Ч ЛПФПТЩК УФБТБЕФУС УМЕДПЧБФШ РТБЧЙМХ 80/20: ТБУРТЕДЕМЙФЕМШ, ЛПФПТЩК ОХЦЕО 80% РПМШЪПЧБФЕМЕК, Й 20% ЖХОЛГЙК DOM Й SAX. JDOM ТБВПФБЕФ У РБТУЕТБНЙ SAX Й DOM, ФБЛ ЮФП ПО ТЕБМЙЪПЧБО, ЛБЛ ПФОПУЙФЕМШОП ОЕВПМШЫПК ОБВПТ Java-ЛМБУУПЧ.

    зМБЧОЩН УЧПКУФЧПН JDOM СЧМСЕФУС ФП, ЮФП ПО ЪОБЮЙФЕМШОП ХНЕОШЫБЕФ ПВЯЕН ЛПДБ, ЛПФПТЩК ЧБН РТЙИПДЙФУС РЙУБФШ. иПФС ЬФПФ ЧЧПДОЩК ХЮЕВОЙЛ ОЕ ПВУХЦДБЕФ РТПЗТБННОЩЕ ФЕНЩ РПДТПВОП, РТЙМПЦЕОЙС JDOM ПВЩЮОП РП ТБЪНЕТХ Ч ФТЙ ТБЪБ НЕОШЫЕ, ЮЕН РТЙМПЦЕОЙС DOM Й РТЙНЕТОП ЧРПМПЧЙОХ НЕОШЫЕ, ЮЕН РТЙМПЦЕОЙС SAX. (уФПТПООЙЛЙ DOM, ЛПОЕЮОП, УЮЙФБАФ, ЮФП ЙЪХЮЕОЙЕ Й ЙУРПМШЪПЧБОЙЕ DOM СЧМСЕФУС ИПТПЫЙН Й ДЙУГЙРМЙОЙТХАЭЙН ДЕМПН, ЛПФПТПЕ ПЛХРБЕФ УЕВС УП ЧТЕНЕОЕН.) JDOM ОЕ ДЕМБЕФ ОЙЮЕЗП, ОП ДМС ВПМШЫЙОУФЧБ ТБЪВПТПЧ, ЛПФПТЩЕ ЧЩ ВХДЕФЕ ДЕМБФШ, ЬФП, ЧПЪНПЦОП, ФП, ЮФП ОХЦОП.

    Java API for XML Parsing

    иПФС DOM, SAX Й JDOM ПВЕУРЕЮЙЧБАФ УФБОДБТФОЩЕ ЙОФЕТЖЕКУЩ ДМС ОБЙВПМЕЕ ПВЭЙИ ЪБДБЮ, ЕУФШ ЧУЕ ЦЕ ОЕУЛПМШЛП ЧЕЭЕК, ОБ ЛПФПТЩЕ ПОЙ ОЕ ТБУУЮЙФБОЩ. оБРТЙНЕТ, РТПГЕУУ УПЪДБОЙС ПВЯЕЛФБ DOMParser Ч РТПЗТБННЕ Java ПФМЙЮБЕФУС ПФ РБТУЕТБ DOM Ч ДТХЗПК. дМС ТЕЫЕОЙС ЬФПК РТПВМЕНЩ ЖЙТНБ Sun ТЕБМЙЪПЧБМБ JAXP, Java API for XML Parsing. ьФПФ API ПВЕУРЕЮЙЧБЕФ ПВЭЙЕ ЙОФЕТЖЕКУЩ ДМС ПВТБВПФЛЙ XML-ДПЛХНЕОФПЧ У ЙУРПМШЪПЧБОЙЕН DOM, SAX Й XSLT.

    JAXP РТЕДПУФБЧМСЕФ ЙОФЕТЖЕКУЩ, ФБЛЙЕ, ЛБЛ DocumentBuilderFactory Й DocumentBuilder , ЛПФПТЩЕ ПВЕУРЕЮЙЧБАФ УФБОДБТФОЩК ЙОФЕТЖЕКУ ДМС ТБЪМЙЮОЩИ РБТУЕТПЧ. еУФШ ФБЛЦЕ НЕФПДЩ, РПЪЧПМСАЭЙЕ ЧБН ХРТБЧМСФШ ФЕН, СЧМСЕФУС МЙ РБТУЕТ ПУЧЕДПНМЕООЩН П РТПУФТБОУФЧБИ ЙНЕО Й ЙУРПМШЪХЕФ МЙ ПО DTD ЙМЙ УИЕНХ ДМС РТПЧЕТЛЙ XML-ДПЛХНЕОФБ.

    лБЛПК ЙОФЕТЖЕКУ РПДИПДЙФ ДМС ЧБУ?

    юФПВЩ ПРТЕДЕМЙФШ, ЛБЛПК ЙОФЕТЖЕКУ РПДИПДЙФ ДМС ЧБУ, ЧБН ОХЦОП РПОСФШ ПУПВЕООПУФЙ РТПЕЛФЙТПЧБОЙС У ЛБЦДЩН ЙЪ ЬФЙИ ЙОФЕТЖЕКУПЧ, Й ЧБН ОХЦОП РПОЙНБФШ, ЮФП ЧБЫЕ РТЙМПЦЕОЙЕ ДПМЦОП ДЕМБФШ У XML-ДПЛХНЕОФБНЙ, ЛПФПТЩЕ ЧЩ УПВЙТБЕФЕУШ ПВТБВБФЩЧБФШ. тБУУНПФТЙН ЬФЙ ЧПРТПУЩ, ЮФПВЩ РПНПЮШ ЧБН ОБКФЙ РТБЧЙМШОЩК РПДИПД.

    • вХДЕФ МЙ ЧБЫЕ РТЙМПЦЕОЙЕ ОБРЙУБОП ОБ Java? JAXP ТБВПФБЕФ У DOM, SAX Й JDOM; ЕУМЙ ЧЩ ВХДЕФЕ РЙУБФШ ЛПД ОБ Java, ЧЩ ДПМЦОЩ ЙУРПМШЪПЧБФШ JAXP, ЮФПВЩ ЙЪПМЙТПЧБФШ ЧБЫ ЛПД ПФ РПДТПВОПУФЕК ТЕБМЙЪБГЙЙ ТБЪМЙЮОЩИ РБТУЕТПЧ.
    • лБЛ ЧБЫЕ РТЙМПЦЕОЙЕ ВХДЕФ ТБЪЧПТБЮЙЧБФШУС? еУМЙ ЧЩ УПВЙТБЕФЕУШ ТБЪЧПТБЮЙЧБФШ ЧБЫЕ РТЙМПЦЕОЙЕ ЛБЛ БРМЕФ Java Й ИПФЙФЕ НЙОЙНЙЪЙТПЧБФШ ПВЯЕН ЧЩЗТХЦБЕНПЗП ЛПДБ, ЙНЕКФЕ Ч ЧЙДХ, ЮФП РБТУЕТЩ SAX НЕОШЫЕ, ЮЕН РБТУЕТЩ DOM. фБЛЦЕ РПНОЙФЕ, ЮФП ЙУРПМШЪПЧБОЙЕ JDOM ФТЕВХЕФ ПЮЕОШ НБМЕОШЛПЗП ПВЯЕНБ ЛПДБ Ч ДПРПМОЕОЙЕ Л РБТУЕТХ SAX ЙМЙ DOM.
    • рПУМЕ ФПЗП, ЛБЛ ЧЩ ТБЪПВТБМЙ XML-ДПЛХНЕОФ, ОХЦОП МЙ ЧБН ВХДЕФ ПВТБЭБФШУС Л ДБООЩН НОПЗП ТБЪ? еУМЙ ЧБН ОХЦОП ЧПЪЧТБЭБФШУС Л ТБЪПВТБООПК ЧЕТУЙЙ XML-ЖБКМБ, ЧПЪНПЦОП, DOM СЧМСЕФУС РТБЧЙМШОЩН ЧБТЙБОФПН. лПЗДБ ЗЕОЕТЙТХЕФУС УПВЩФЙЕ SAX, ФП ПФ ЧБУ (ТБЪТБВПФЮЙЛБ) ЪБЧЙУЙФ УПИТБОЕОЙЕ ЮЕЗП-МЙВП, ЮФП НПЦЕФ РПОБДПВЙФШУС РПЪЦЕ. еУМЙ ЧБН ОХЦОП ПВТБФЙФШУС Л УПВЩФЙА, ЛПФПТПЕ ЧЩ ОЕ УПИТБОЙМЙ, ЧБН РТЙДЕФУС ТБЪПВТБФШ ЖБКМ ЪБОПЧП. DOM УПИТБОСЕФ ЧУЕ ДБООЩЕ БЧФПНБФЙЮЕУЛЙ.
    • оЕ ОХЦОП МЙ ЧБН ЧУЕЗП ОЕУЛПМШЛП ЧЕЭЕК ЙЪ ЙУФПЮОЙЛБ XML? еУМЙ ЧБН ОХЦОП ЧУЕЗП ОЕУЛПМШЛП ЧЕЭЕК ЙЪ ЙУФПЮОЙЛБ XML, ЧПЪНПЦОП, SAX СЧМСЕФУС РТБЧЙМШОЩН ЧБТЙБОФПН. SAX ОЕ УПЪДБЕФ ПВЯЕЛФПЧ ДМС ЧУЕЗП Ч ЙУИПДОПН ДПЛХНЕОФЕ, ЧЩ НПЦЕФЕ УБНЙ ТЕЫЙФШ, ЮФП СЧМСЕФУС ЧБЦОЩН. рТЙ РПНПЭЙ SAX, ЧЩ НПЦЕФЕ РТПУНБФТЙЧБФШ ЛБЦДПЕ УПВЩФЙЕ Й ПРТЕДЕМСФШ, ПФОПУЙФУС МЙ ПОП Л ФПНХ, ЮФП ЧБН ОХЦОП, Й УППФЧЕФУФЧХАЭЙН ПВТБЪПН ЕЗП ПВТБВБФЩЧБФШ. дБЦЕ МХЮЫЕ, ЕУМЙ ЧЩ ОБЫМЙ ФП, ЮФП ЙУЛБМЙ, ЧБЫ ЛПД НПЦЕФ УЗЕОЕТЙТПЧБФШ ЙУЛМАЮЕОЙЕ, ЮФПВЩ ПУФБОПЧЙФШ Й РБТУЕТ SAX.
    • тБВПФБЕФЕ МЙ ЧЩ ОБ НБЫЙОЕ У ПЮЕОШ НБМЕОШЛПК РБНСФША? еУМЙ ФБЛ, SAX СЧМСЕФУС ОБЙМХЮЫЙН ДМС ЧБУ ЧБТЙБОФПН, ИПФС ЧЩ НПЦЕФЕ ТБУУНПФТЕФШ Й ЧУЕ ДТХЗЙЕ ЖБЛФПТЩ.

    тБЪХНЕЕФУС, API XML УХЭЕУФЧХАФ Й ДМС ДТХЗЙИ СЪЩЛПЧ, Ч ЮБУФОПУФЙ, УППВЭЕУФЧБ Perl Й Python ЙНЕАФ ПЮЕОШ ИПТПЫЙК ЙОУФТХНЕОФБТЙК XML.

    тБЪДЕМ 6. уФБОДБТФЩ XML

    пВЪПТ: уФБОДБТФЩ XML

    ч НЙТЕ XML УХЭЕУФЧХЕФ НОПЦЕУФЧП УФБОДБТФПЧ. ч ДПРПМОЕОЙЕ Л ВБЪПЧПНХ УФБОДБТФХ XML, ДТХЗЙЕ УФБОДБТФЩ ПРТЕДЕМСАФ УИЕНЩ, ФБВМЙГЩ УФЙМЕК, УЧСЪЙ, Web-УЕТЧЙУЩ, ВЕЪПРБУОПУФШ Й ДТХЗЙЕ ЧБЦОЩЕ ЬМЕНЕОФЩ. ч ЬФПН ТБЪДЕМЕ ТБУУНБФТЙЧБАФУС ОБЙВПМЕЕ РПРХМСТОЩЕ УФБОДБТФЩ Й ХЛБЪЩЧБЕФУС, ЗДЕ ЧЩ НПЦЕФЕ ОБКФЙ ДТХЗЙЕ УФБОДБТФЩ.

    уРЕГЙЖЙЛБГЙС XML

    ьФБ УРЕГЙЖЙЛБГЙС, ОБИПДСЭБСУС ОБ w3.org/TR/REC-xml, ПРТЕДЕМСЕФ ВБЪПЧЩЕ РТБЧЙМБ ДМС XML-ДПЛХНЕОФПЧ. чУЕ РТБЧЙМБ XML-ДПЛХНЕОФБ, ПВУХЦДБЧЫЙЕУС ТБОЕЕ Ч ЬФПН ХЮЕВОЙЛЕ, ПРТЕДЕМЕОЩ ЪДЕУШ.

    чДПВБЧПЛ Л ВБЪПЧПНХ УФБОДБТФХ XML, ДТХЗПК ЧБЦОПК ЮБУФША XML СЧМСЕФУС УРЕГЙЖЙЛБГЙС Namespaces. чЩ НПЦЕФЕ ОБКФЙ УФБОДБТФ ОБ РТПУФТБОУФЧБ ЙНЕО ФБЛЦЕ Ч W3C: w3.org/TR/REC-xml-names/.

    XML Schema

    сЪЩЛ XML Schema ПРТЕДЕМЕО Ч ФТЕИ ЮБУФСИ:

    • рТЙНЕТ, ТБУРПМПЦЕООЩК ОБ w3.org/TR/xmlschema-0, ЛПФПТЩК ДБЕФ ЧЧЕДЕОЙЕ Ч ДПЛХНЕОФЩ XML Й Ч ФП, ЮФП ПОЙ ДПМЦОЩ ДЕМБФШ;
    • уФБОДБТФ ОБ УФТХЛФХТХ ДПЛХНЕОФБ, ТБУРПМПЦЕООЩК ОБ w3.org/TR/xmlschema-1, ЛПФПТЩК ЙММАУФТЙТХЕФ, ЛБЛ ПРТЕДЕМСФШ УФТХЛФХТХ XML-ДПЛХНЕОФПЧ;
    • уФБОДБТФ ОБ ФЙРЩ ДБООЩИ, ТБУРПМПЦЕООЩК ОБ w3.org/TR/xmlschema-2, ЛПФПТЩК ПРТЕДЕМСЕФ ОЕЛПФПТЩЕ ПВЭЙЕ ФЙРЩ ДБООЩИ Й РТБЧЙМБ ДМС УПЪДБОЙС ОПЧЩИ ФЙРПЧ.

    ч ЬФПН ХЮЕВОЙЛЕ ЛТБФЛП ПВУХЦДБАФУС УИЕНЩ Ч пРТЕДЕМЕОЙЕ УПДЕТЦЙНПЗП ДПЛХНЕОФБ; ЕУМЙ ЧБН ОХЦОП РПДТПВОП ЪОБФШ ПВП ЧУЕН, ЮФП ЧЩ НПЦЕФЕ ДЕМБФШ РТЙ РПНПЭЙ УИЕН XML, МХЮЫЕ ЧУЕЗП ОБЮБФШ У РТЙНЕТБ.

    XSL, XSLT Й XPath

    тБУЫЙТСЕНЩК сЪЩЛ фБВМЙГ уФЙМЕК (Extensible Stylesheet Language — XSL) ПРТЕДЕМСЕФ ОБВПТ ЬМЕНЕОФПЧ (ОБЪЩЧБЕНЩИ ПВЯЕЛФБНЙ ЖПТНБФЙТПЧБОЙС), ЛПФПТЩЕ ПРЙУЩЧБАФ, ЛБЛ ДБООЩЕ ДПМЦОЩ ЖПТНБФЙТПЧБФШУС. дМС СУОПУФЙ ЬФПФ УФБОДБТФ ЮБУФП ОБЪЩЧБАФ XSL-FO, ЮФПВЩ ПФМЙЮБФШ ПФ XSLT. иПФС ПО РЕТЧПОБЮБМШОП ТБЪТБВПФБО ДМС ЗЕОЕТБГЙЙ ЧЩУПЛПЛБЮЕУФЧЕООЩИ РЕЮБФБЕНЩИ ДПЛХНЕОФПЧ, ЧЩ ФБЛЦЕ НПЦЕФЕ ЙУРПМШЪПЧБФШ ПВЯЕЛФЩ ЖПТНБФЙТПЧБОЙС ДМС ЗЕОЕТБГЙЙ БХДЙПЖБКМПЧ ЙЪ XML. уФБОДБТФ XSL-FO ОБИПДЙФУС ОБ w3.org/TR/xsl/.

    Extensible Stylesheet Language for Transformations, XSLT СЧМСЕФУС , УМПЧБТЕН XML, ЛПФПТЩК ПРЙУЩЧБЕФ, ЛБЛ РТЕПВТБЪПЧБФШ XML-ДПЛХНЕОФ ЧП ЮФП-ФП ЕЭЕ. уФБОДБТФ ОБИПДЙФУС ОБ w3.org/TR/xslt (ВЕЪ ЪБЛТЩЧБАЭЕК ЛПУПК ЮЕТФЩ).

    XPath, XML Path Language, — УЙОФБЛУЙУ, ЛПФПТЩК ПРЙУЩЧБЕФ НЕУФПОБИПЦДЕОЙС Ч XML-ДПЛХНЕОФБИ. чЩ ЙУРПМШЪХЕФЕ XPath Ч ФБВМЙГБИ УФЙМЕК XSLT ДМС ПРЙУБОЙС ФПЗП, ЛБЛХА ЮБУФШ XML-ДПЛХНЕОФБ ЧЩ ИПФЙФЕ РТЕПВТБЪПЧБФШ. XPath ЙУРПМШЪХЕФУС ФБЛЦЕ Й Ч ДТХЗЙИ УФБОДБТФБИ XML, ЧПФ РПЮЕНХ ПФ ПФДЕМЕО ПФ XSLT Ч ПФДЕМШОЩК УФБОДБТФ. XPath ПРТЕДЕМЕО ОБ w3.org/TR/xpath (ВЕЪ ЪБЛТЩЧБАЭЕК ЛПУПК ЮЕТФЩ).

    Document Object Model ПРТЕДЕМСЕФ, ЛБЛ XML-ДПЛХНЕОФ РТЕПВТБЪХЕФУС Ч УФТХЛФХТХ ДЕТЕЧБ Ч РБНСФЙ. DOM ПРТЕДЕМЕОБ Ч ОЕУЛПМШЛЙИ УРЕГЙЖЙЛБГЙСИ Ч W3C:

    • сДТП DOM ПРТЕДЕМСЕФ УБНХ DOM, УФТХЛФХТХ ДЕТЕЧБ, ЧЙДЩ ХЪМПЧ Й ЙУЛМАЮЕОЙС, ЛПФПТЩЕ ЧБЫ ЛПД НПЦЕФ РПМХЮБФШ РТЙ ДЧЙЦЕОЙЙ РП ДЕТЕЧХ. рПМОБС УРЕГЙЖЙЛБГЙС ОБИПДЙФУС ОБ w3.org/TR/DOM-Level-2-Core/.
    • уПВЩФЙС ПРТЕДЕМСЕФ УПВЩФЙС, ЛПФПТЩЕ НПЗХФ РТПЙУИПДЙФШ ОБ ДЕТЕЧЕ, Й ЛБЛ ЬФЙ УПВЩФЙС ПВТБВБФЩЧБАФУС. ьФБ УРЕГЙЖЙЛБГЙС ФБЛЦЕ РЩФБЕФУС РТЙНЙТЙФШ ТБЪМЙЮЙС НЕЦДХ ПВЯЕЛФОЩНЙ НПДЕМСНЙ, РПДДЕТЦЙЧБЕНЩНЙ Netscape Й Internet Explorer ДП ЧЕТУЙК 4 ЬФЙИ ВТБХЪЕТПЧ. ьФБ УРЕГЙЖЙЛБГЙС ОБИПДЙФУС ОБ w3.org/TR/DOM-Level-2-Events/.
    • уФЙМШ ПРТЕДЕМСЕФ, ЛБЛ НПЦОП ЙЪ РТПЗТБННЩ ПВТБФЙФШУС Л ФБВМЙГБН УФЙМЕК XSLT Й ФБВМЙГБН УФЙМЕК CSS. ьФБ УРЕГЙЖЙЛБГЙС ОБИПДЙФУС ОБ w3.org/TR/DOM-Level-2-Style/.
    • рТПИПЦДЕОЙЕ Й РПТСДПЛ ПРТЕДЕМСЕФ ЙОФЕТЖЕКУЩ, ЛПФПТЩЕ РПЪЧПМСАФ РТПЗТБННЕ РТПИПДЙФШ РП ДЕТЕЧХ Й ПРТЕДЕМСФШ РПТСДПЛ ХЪМПЧ Ч ДЕТЕЧЕ. чЩ ОБКДЕФЕ РПМОХА УРЕГЙЖЙЛБГЙА ОБ w3.org/TR/DOM-Level-2-Traversal-Range/.
    • рТЕДУФБЧМЕОЙС ПРТЕДЕМСАФУС ЛБЛ ЙОФЕТЖЕКУ AbstractView ДМС УБНПЗП ДПЛХНЕОФБ. уН. ДПРПМОЙФЕМШОХА ЙОЖПТНБГЙА Ч w3.org/TR/DOM-Level-2-Views/.

    SAX, JDOM Й JAXP

    Simple API for XML ПРТЕДЕМСЕФ УПВЩФЙС Й ЙОФЕТЖЕКУЩ, ЙУРПМШЪХЕНЩЕ ДМС ЧЪБЙНПДЕКУФЧЙС У SAX-УПЧНЕУФЙНЩН РБТУЕТПН XML. чЩ ОБКДЕФЕ РПМОХА УРЕГЙЖЙЛБГЙА SAX ОБ www.saxproject.org.

    рТПЕЛФ JDOM ВЩМ УПЪДБО Jason Hunter Й Brett McLaughlin Й ЦЙЧЕФ ОБ jdom.org/. оБ УБКФЕ JDOM ЧЩ ОБКДЕФЕ ЛПДЩ, РТЙНЕТЩ РТПЗТБНН Й ДТХЗЙЕ ЙОУФТХНЕОФЩ, ЛПФПТЩЕ РПНПЗХФ ЧБН ОБЮБФШ. (уФБФШЙ developerWorks П JDOM УН. Ч тЕУХТУЩ .)

    чБЦОПЕ ПВУФПСФЕМШУФЧП ПФОПУЙФЕМШОП SAX Й JDOM УПУФПЙФ Ч ФПН, ЮФП ПВБ ПОЙ РТЙЫМЙ ЙЪ УППВЭЕУФЧБ ТБЪТБВПФЮЙЛПЧ XML, Б ОЕ ЙЪ УФБОДБТФПЧ. йИ ЫЙТПЛПЕ РТЙЪОБОЙЕ СЧМСЕФУС ОБЗТБДПК БЛФЙЧОЩН ХЮБУФОЙЛБН УППВЭЕУФЧБ ТБЪТБВПФЮЙЛПЧ XML.

    чЩ ОБКДЕФЕ ЧУЕ, ЮФП ЙЪЧЕУФОП П JAXP ОБ java.sun.com/xml/jaxp/.

    уЧСЪЩЧБОЙЕ Й УУЩМЛЙ

    ч НЙТЕ XML ЕУФШ ДЧБ УФБОДБТФБ ДМС УЧСЪЩЧБОЙС Й УУЩМПЛ: XLink Й XPointer:

    • XLink, XML Linking Language, ПРТЕДЕМСЕФ ТБЪМЙЮОЩЕ УРПУПВЩ УЧСЪБФШ ЧНЕУФЕ ТБЪМЙЮОЩЕ ТЕУХТУЩ. чЩ НПЦЕФЕ ДЕМБФШ ПВЩЮОЩЕ УЧСЪЙ ФПЮЛБ-Ч-ФПЮЛХ (ЛБЛ Ч ЬМЕНЕОФЕ HTML ) ЙМЙ ТБУЫЙТЕООЩЕ УЧСЪЙ, ЛПФПТЩЕ НПЗХФ ЧЛМАЮБФШ Ч УЕВС НОПЦЕУФЧЕООЩЕ УЧСЪЙ, УЧСЪЙ ЮЕТЕЪ ФТЕФШЙ ФПЮЛЙ Й РТБЧЙМБ, ЛПФПТЩЕ ПРТЕДЕМСАФ, ЮФП ПЪОБЮБЕФ УМЕДПЧБОЙЕ РП ДБООПК УЧСЪЙ. уФБОДБТФ XLink ОБИПДЙФУС ОБ w3.org/TR/xlink/.
    • XPointer, XML Pointer Language, ЙУРПМШЪХЕФ XPath ЛБЛ УРПУПВ УУЩМБФШУС ОБ ДТХЗЙЕ ТЕУХТУЩ. пО ФБЛЦЕ ЧЛМАЮБЕФ Ч УЕВС ОЕЛПФПТЩЕ ТБУЫЙТЕОЙС XPath. чЩ ОБКДЕФЕ ЬФХ УРЕГЙЖЙЛБГЙА ОБ www.w3.org/TR/xptr/.

    вЕЪПРБУОПУФШ

    еУФШ ДЧБ ЪОБЮЙНЩИ УФБОДБТФБ, ЛПФПТЩЕ ПФОПУСФУС Л ВЕЪПРБУОПУФЙ XML-ДПЛХНЕОФПЧ. пДЙО — УФБОДБТФ XML Digital Signature (w3.org/TR/xmldsig-core/), ЛПФПТЩК ПРТЕДЕМСЕФ УФТХЛФХТХ XML-ДПЛХНЕОФБ ДМС ГЙЖТПЧЩИ РПДРЙУЕК. чЩ НПЦЕФЕ УПЪДБФШ ГЙЖТПЧХА РПДРЙУШ XML ДМС МАВПЗП ЧЙДБ ДБООЩИ, ВХДШ ЬФП XML-ДПЛХНЕОФ, HTML-ЖБКМ, ПВЩЮОЩК ФЕЛУФ, ДЧПЙЮОЩЕ ДБООЩЕ Й Ф.Д. чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ГЙЖТПЧХА РПДРЙУШ ДМС РТПЧЕТЛЙ ФПЗП, ЮФП ПРТЕДЕМЕООЩК ЖБКМ ОЕ ВЩМ НПДЙЖЙГЙТПЧБО РПУМЕ РПДРЙУБОЙС. еУМЙ РПДРЙУБООЩЕ ЧБНЙ ДБООЩЕ СЧМСАФУС XML-ДПЛХНЕОФПН, ЧЩ НПЦЕФЕ ЧУФТПЙФШ XML-ДПЛХНЕОФ Ч УБН ЖБКМ РПДРЙУЙ, ЮФП ДЕМБЕФ ПВТБВПФЛХ ДБООЩИ Й РПДРЙУЙ ПЮЕОШ РТПУФПК.

    дТХЗПК УФБОДБТФ ПФОПУЙФУС Л ЫЙЖТПЧБОЙА XML-ДПЛХНЕОФПЧ. иПФС ЪБНЕЮБФЕМШОП, ЮФП XML-ДПЛХНЕОФЩ НПЗХФ ВЩФШ ОБРЙУБОЩ ФБЛ, ЮФП ЙИ НПЦЕФ ЮЙФБФШ Й РПОЙНБФШ ЮЕМПЧЕЛ, НПЗХФ ЧПЪОЙЛОХФШ ОЕРТЙСФОПУФЙ, ЕУМЙ ДПЛХНЕОФ РПРБДЕФ Ч РМПИЙЕ ТХЛЙ. уФБОДБТФ XML Encryption (w3.org/TR/xmlenc-core/) ПРТЕДЕМСЕФ, ЛБЛ ЮБУФЙ XML-ДПЛХНЕОФБ НПЗХФ ВЩФШ ЪБЫЙЖТПЧБОЩ.

    йУРПМШЪХС ЧНЕУФЕ ЬФЙ УФБОДБТФЩ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ XML-ДПЛХНЕОФЩ Ч ЛПОЖЙДЕОГЙБМШОПН ТЕЦЙНЕ. с НПЗХ РТЙДБФШ ГЙЖТПЧХА РПДРЙУШ ЧБЦОПНХ XML-ДПЛХНЕОФХ, УЗЕОЕТЙТПЧБЧ РПДРЙУШ, ЛПФПТБС ВХДЕФ ЧЛМАЮБФШ Ч УЕВС УБН XML-ДПЛХНЕОФ. с НПЗХ ЪБФЕН ЪБЫЙЖТПЧБФШ ДПЛХНЕОФ (ЙУРПМШЪХС УЧПК ЪБЛТЩФЩК ЛМАЮ Й ЧБЫ ПФЛТЩФЩК ЛМАЮ) Й РПУМБФШ ЕЗП ЧБН. лПЗДБ ЧЩ РПМХЮЙФЕ ЕЗП, ЧЩ НПЦЕФЕ ТБУЫЙЖТПЧБФШ ДПЛХНЕОФ РТЙ РПНПЭЙ ЧБЫЕЗП ЪБЛТЩФПЗП Й НПЕЗП ПФЛТЩФПЗП ЛМАЮЕК, ЮФП ДБУФ ЧБН ЧПЪНПЦОПУФШ ХВЕДЙФШУС Ч ФПН, ЮФП ЙНЕООП С РПУМБМ ЧБН ДПЛХНЕОФ. (еУМЙ РПОБДПВЙФУС, ЧЩ УНПЦЕФЕ ФБЛЦЕ РПДФЧЕТДЙФШ, ЮФП С РПУМБМ ДПЛХНЕОФ.) тБУЫЙЖТПЧБЧ ДПЛХНЕОФ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ГЙЖТПЧХА РПДРЙУШ, ЮФПВЩ ХВЕДЙФШУС, ЮФП ДПЛХНЕОФ ОЕ ВЩМ НПДЙЖЙГЙТПЧБО ЛБЛЙН-ФП УРПУПВПН.

    Web-УЕТЧЙУЩ

    Web-УЕТЧЙУЩ СЧМСАФУС ЧБЦОЩН ОПЧЩН ЧЙДПН РТЙМПЦЕОЙК. Web-УЕТЧЙУ — ЬФП ЮБУФШ ЛПДБ, ЛПФПТБС НПЦЕФ ВЩФШ ПВОБТХЦЕОБ, ПРЙУБОБ Й БДТЕУПЧБОБ У РПНПЭША XML. ч ЬФПК ПВМБУФЙ ОБВМАДБЕФУС ЪОБЮЙФЕМШОБС БЛФЙЧОПУФШ, ОП ФТЕНС ЗМБЧОЩНЙ УФБОДБТФБНЙ XML ДМС Web-УЕТЧЙУПЧ СЧМСАФУС:

    • SOAP: йУИПДОЩК Simple Object Access Protocol, SOAP ПРТЕДЕМСЕФ ЖПТНБФ XML-ДПЛХНЕОФБ, ЛПФПТЩК ПРЙУЩЧБЕФ, ЛБЛ ЧЩЪЧБФШ НЕФПД ОБ ХДБМЕООПК ЮБУФЙ ЛПДБ. нПЕ РТЙМПЦЕОЙЕ УПЪДБЕФ XML-ДПЛХНЕОФ, ЛПФПТЩК ПРЙУЩЧБЕФ НЕФПД, ЧЩЪЩЧБЕНЩК НОПА, РЕТЕДБЧБС ЕНХ ЧУЕ ОЕПВИПДЙНЩЕ РБТБНЕФТЩ, Б ЪБФЕН ПОП РПУЩМБЕФ ЬФПФ XML-ДПЛХНЕОФ РП УЕФЙ Ч ЬФХ ЮБУФШ ЛПДБ. лПД РПМХЮБЕФ XML-ДПЛХНЕОФ, ЙОФЕТРТЕФЙТХЕФ ЕЗП, ЧЩЪЩЧБЕФ НЕФПД, ЪБРТПЫЕООЩК НОПА, Б ЪБФЕН РПУЩМБЕФ ОБЪБД XML-ДПЛХНЕОФ, ПРЙУЩЧБАЭЙК ТЕЪХМШФБФЩ. чЕТУЙС 1.1 УРЕГЙЖЙЛБГЙЙ SOAP ОБИПДЙФУС ОБ w3.org/TR/SOAP/. рПУЕФЙФЕ w3.org/TR/, ЮФПВЩ РПЪОБЛПНЙФШУС У ДЕСФЕМШОПУФША W3C, УЧСЪБООПК У SOAP.
    • WSDL: Web Services Description Language — ЬФП УМПЧБТШ XML, ЛПФПТЩК ПРЙУЩЧБЕФ Web-УЕТЧЙУЩ. еУФШ ЧПЪНПЦОПУФШ ОБРЙУБФШ ЛПД, ЛПФПТЩК РТЙОЙНБЕФ ДПЛХНЕОФ WSDL Й ЧЩЪЩЧБЕФ Web-УЕТЧЙУ, ЛПФПТЩК ОЙЛПЗДБ ТБОШЫЕ ОЕ ЧЙДЕМ. йОЖПТНБГЙС Ч ЖБКМЕ WSDL ПРТЕДЕМСЕФ ЙНС Web-УЕТЧЙУБ, ЙНЕОБ ЕЗП НЕФПДПЧ, БТЗХНЕОФЩ ЬФЙИ НЕФПДПЧ Й ДТХЗЙЕ РПДТПВОПУФЙ. чЩ НПЦЕФЕ ОБКФЙ РПУМЕДОАА УРЕГЙЖЙЛБГЙА WSDL ОБ w3.org/TR/wsdl (ВЕЪ ЪБЛТЩЧБАЭЕК ЛПУПК ЮЕТФЩ).
    • UDDI: рТПФПЛПМ Universal Description, Discovery, and Integration ПРТЕДЕМСЕФ ЙОФЕТЖЕКУ SOAP ДМС ТЕЕУФТБ Web-УЕТЧЙУПЧ. еУМЙ ЧЩ ЙНЕЕФЕ ЛПД, ЛПФПТЩК ЧЩ ИПФЙФЕ ТБЪЧЕТОХФШ ЛБЛ Web-УЕТЧЙУ, УРЕГЙЖЙЛБГЙС UDDI ПРТЕДЕМСЕФ, ЛБЛ ДПВБЧЙФШ ПРЙУБОЙЕ ЧБЫЕЗП УЕТЧЙУБ Ч ТЕЕУФТ. еУМЙ ЧЩ ЙЭЕФЕ ЛПД, ЛПФПТЩК ПВЕУРЕЮЙЧБЕФ ПРТЕДЕМЕООХА ЖХОЛГЙА, УРЕГЙЖЙЛБГЙС UDDI ПРТЕДЕМСЕФ, ЛБЛ ЪБРТПУЙФШ ТЕЕУФТ, ЮФПВЩ ОБКФЙ ФП, ЮФП ЧЩ ИПФЙФЕ. йУФПЮОЙЛПН ЧУЕЗП, УЧСЪБООПЗП У UDDI СЧМСЕФУС uddi.org.

    дТХЗЙЕ УФБОДБТФЩ

    уХЭЕУФЧХЕФ НОПЗП ДТХЗЙИ УФБОДБТФПЧ XML, П ЛПФПТЩИ НЩ ОЕ ЗПЧПТЙН ЪДЕУШ. чДПВБЧПЛ Л УФБОДБТФБН ЫЙТПЛПЗП РТЙНЕОЕОЙС, РПДПВОЩН Scalable Vector Graphics (www.w3.org/TR/SVG/) Й SMIL, Synchronized Multimedia Integration Language (www.w3.org/TR/smil20/), ЕУФШ НОПЗП УФБОДБТФПЧ, ПФОПУСЭЙИУС Л ПФДЕМШОЩН ПФТБУМСН. оБРТЙНЕТ, ЛПОУПТГЙХН HR-XML ПРТЕДЕМЙМ ОЕУЛПМШЛП УФБОДБТФПЧ XML ДМС ФТХДПЧЩИ ТЕУХТУПЧ, ЧЩ НПЦЕФЕ ОБКФЙ ЬФЙ УФБОДБТФЩ ОБ hr-xml.org.

    оБЛПОЕГ, ИПТПЫЙН ЙУФПЮОЙЛПН УФБОДБТФПЧ XML СЧМСЕФУС XML Repository ОБ xml.org/xml/registry.jsp. ьФПФ УБКФ РТЕДУФБЧМСЕФ УПФОЙ УФБОДБТФПЧ ДМС ЫЙТПЛПЗП УРЕЛФТБ ПФТБУМЕК.

    тБЪДЕМ 7. рТБЛФЙЮЕУЛЙЕ РТЙНЕТЩ

    рТЙНЕТЩ ЙЪ ТЕБМШОПК ЦЙЪОЙ

    уЕКЮБУ, С ОБДЕАУШ, ЧЩ ХЦЕ ХВЕДЙМЙУШ, ЮФП XML ЙНЕЕФ ЗТБОДЙПЪОЩК РПФЕОГЙБМ ДМС ФПЗП, ЮФПВЩ ТЕЧПМАГЙПОЙЪЙТПЧБФШ УРПУПВЩ ТБВПФЩ ЬМЕЛФТПООПЗП ВЙЪОЕУБ. б РПУЛПМШЛХ РПФЕОГЙБМ ВПМШЫПК, НЩ ЙНЕЕН ТЕБМШОЩЕ ТЕЪХМШФБФЩ ОБ ТЩОЛЕ. ч ЬФПН ТБЪДЕМЕ ПВУХЦДБАФУС ФТЙ РТБЛФЙЮЕУЛЙИ РТЙНЕТБ, Ч ЛПФПТЩИ ПТЗБОЙЪБГЙЙ ЙУРПМШЪПЧБМЙ XML ДМС ХУПЧЕТЫЕОУФЧПЧБОЙС УЧПЙИ ВЙЪОЕУ-РТПГЕУУПЧ Й ХМХЮЫЕОЙС ЙИ ТЕЪХМШФБФПЧ.

    чУЕ РТБЛФЙЮЕУЛЙЕ РТЙНЕТЩ, ПВУХЦДБЕНЩЕ ЪДЕУШ, РТЙЫМЙ ЙЪ РТПЗТБННЩ IBM jStart. лПНБОДБ jStart УХЭЕУФЧХЕФ, ЮФПВЩ РПНПЗБФШ РПФТЕВЙФЕМСН ЙУРПМШЪПЧБФШ ОПЧЩЕ ФЕИОПМПЗЙЙ ДМС ТЕЫЕОЙС РТПВМЕН. еУМЙ РПФТЕВЙФЕМШ УПЗМБЫБЕФУС У ХУМПЧЙСНЙ jStart, ПО РПМХЮБЕФ ЛПОУХМШФБГЙЙ Й УЕТЧЙУ ТБЪТБВПФЛЙ ПФ IBM УП УЛЙДЛПК, У РПОЙНБОЙЕН ФПЗП, ЮФП ТЕЪХМШФЙТХАЭЙК РТПЕЛФ НПЦЕФ ВЩФШ ЙУРПМШЪПЧБО ЛБЛ РТБЛФЙЮЕУЛЙК РТЙНЕТ. еУМЙ ЧЩ ИПФЙФЕ ХЧЙДЕФШ ВПМШЫЕ РТБЛФЙЮЕУЛЙИ РТЙНЕТПЧ, ЧЛМАЮБС РТЙНЕТЩ Web-УЕТЧЙУПЧ Й ДТХЗЙИ ОПЧЩИ ФЕИОПМПЗЙК, РПУЕФЙФЕ Web-УФТБОЙГХ jStart ibm.com/software/jstart.

    ъОБКФЕ, ЮФП ЛПНБОДБ jStart ВПМШЫЕ ОЕ ЪБЛМАЮБЕФ УПЗМБЫЕОЙК РП РТПЕЛФБН XML; УЕКЮБУ ЛПНБОДБ ЖПЛХУЙТХЕФУС ОБ УПЗМБЫЕОЙСИ РП Web-УЕТЧЙУБН. Web-УЕТЧЙУЩ ЙУРПМШЪХАФ XML УРЕГЙЖЙЮЕУЛЙН ПВТБЪПН, ПВЩЮОП ЮЕТЕЪ УФБОДБТФЩ SOAP, WSDL Й UDDI, ХРПНСОХФЩЕ ЧЩЫЕ.

    рТПЧЙОГЙС нБОЙФПВБ

    тЙУХОПЛ 2. рТПЧЙОГЙС нБОЙФПВБ

    рТБЧЙФЕМШУФЧП РТПЧЙОГЙЙ нБОЙФПВБ УПЪДБЕФ тЕЕУФТ юБУФОЩИ чМБДЕОЙК, ЮФПВЩ ПВЕУРЕЮЙФШ ЧМБДЕМШГЕЧ УПВУФЧЕООПУФЙ ТЕБМШОЩН ЛТХЗМПУХФПЮОЩН Internet-УЕТЧЙУПН. пУОПЧОЩНЙ РТЕЙНХЭЕУФЧБНЙ ЬФПЗП РТЙМПЦЕОЙС СЧМСАФУС ВПМЕЕ ВЩУФТЩК Й ВПМЕЕ ХДПВОЩК ДПУФХР Л ДБООЩН П УПВУФЧЕООПУФЙ, ХНЕОШЫЕОЙЕ ТХЮОЩИ ПРЕТБГЙК Ч РТПГЕУУЕ ХРТБЧМЕОЙС УПВУФЧЕООПУФША, ХНЕОШЫЕОЙЕ ЮЙУМБ ЪЧПОЛПЧ Ч РТБЧЙФЕМШУФЧЕООЩК ГЕОФТ ПВУМХЦЙЧБОЙС. дТХЗЙНЙ УМПЧБНЙ, ДБЧБФШ РПФТЕВЙФЕМСН МХЮЫЙК УЕТЧЙУ, РТЙ ЬФПН УВЕТЕЗБС РТБЧЙФЕМШУФЧЕООЩЕ ДЕОШЗЙ Й ХНЕОШЫБС ОБЗТХЪЛХ ОБ РТБЧЙФЕМШУФЧП.

    рТЙМПЦЕОЙЕ ВЩМП ТБЪТБВПФБОП ЛБЛ n -ХТПЧОЕЧПЕ РТЙМПЦЕОЙЕ У ЙОФЕТЖЕКУПН, ПФДЕМЕООЩН ПФ МПЗЙЛЙ ОБ УФПТПОЕ УЕТЧЕТБ. дБООЩЕ ДМС ЛБЦДПК ФТБОЪБЛГЙЙ ОХЦОП РТЕПВТБЪПЧБФШ ОЕУЛПМШЛЙНЙ ТБЪМЙЮОЩНЙ УРПУПВБНЙ, Ч ЪБЧЙУЙНПУФЙ ПФ ФПЗП, ЛБЛ ПОЙ ДПМЦОЩ ВЩФШ ПФПВТБЦЕОЩ ОБ ХУФТПКУФЧЕ, РТЕДУФБЧМЕОЩ Ч РТЙМПЦЕОЙЙ ЙМЙ ЖПТНБФЙТПЧБОЩ ДМС УЕТЧЕТОПК УЙУФЕНЩ ПВТБВПФЛЙ. дТХЗЙНЙ УМПЧБНЙ, РТЙМПЦЕОЙЕ ВЩМП РТЕЧПУИПДОЩН РПЧПДПН ДМС ЙУРПМШЪПЧБОЙС XML.

    лБЛ Й Ч МАВПН РТЙМПЦЕОЙЙ, РПМШЪПЧБФЕМШУЛЙК ЙОФЕТЖЕКУ РТЙМПЦЕОЙС ВЩМ ЮТЕЪЧЩЮБКОП ЧБЦЕО. юФПВЩ ХРТПУФЙФШ РЕТЧХА ТЕБМЙЪБГЙА, ОЕПВИПДЙНЩЕ XML-ДБООЩЕ РТЕПВТБЪПЧЩЧБМЙУШ Ч HTML. ьФП ДБЧБМП РПМШЪПЧБФЕМШ ЧПЪНПЦОПУФШ ЙУРПМШЪПЧБФШ ВТБХЪЕТ ДМС ЙОФЕТЖЕКУБ РТЙМПЦЕОЙС. тЕЕУФТ ВЩМ РПУФТПЕО У РПНПЭША VisualAge for Java, Ч ЮБУФОПУФЙ, ЛПНРПОЕОФБ Visual Servlet Builder. пО ФБЛЦЕ ЙУРПМШЪПЧБМ Enterprise Java Beans (EJB), ЧЛМАЮБС ВЙОЩ УЕБОУБ Й ВЙОЩ УХЭОПУФЙ.

    зЕОЕТБГЙС ТБЪМЙЮОЩИ РПМШЪПЧБФЕМШУЛЙИ ЙОФЕТЖЕКУПЧ РТЙ РПНПЭЙ XML

    лТПНЕ ЙОФЕТЖЕКУБ HTML, РМБОЙТХЕФУС ФБЛЦЕ ЙОФЕТЖЕКУ Java-ЛМЙЕОФБ Й ЬМЕЛФТПООЩК ЙОФЕТЖЕКУ B2B. дМС ЧУЕИ ЬФЙИ ЙОФЕТЖЕКУПЧ УФТХЛФХТЙТПЧБООЩЕ ДБООЩЕ XML РТЕПВТБЪХАФУС Ч УППФЧЕФУФЧХАЭЙЕ УФТХЛФХТЩ Й ДПЛХНЕОФЩ. оБЮБМШОБС ЧЩЗТХЪЛБ УЕТЧЙУБ РПЪЧПМСЕФ ПДОПНХ ВЙЪОЕУ-РБТФОЕТХ, Canadian Securities Registration Systems, РПУЩМБФШ ДБООЩЕ ФТБОЪБЛГЙЙ XML, ЙУРПМШЪХС Secure Sockets Layer. дБООЩЕ ФТБОЪБЛГЙЙ XML РТЕПВТБЪХАФУС Ч УППФЧЕФУФЧХАЭЙК ЖПТНБФ ДМС ФТБОЪБЛГЙК ОБ УФПТПОЕ УЕТЧЕТБ.

    лПОЕЮОЩН ТЕЪХМШФБФПН СЧЙМПУШ ФП, ЮФП РТПЧЙОГЙС нБОЙФПВБ УПЪДБМБ ЗЙВЛПЕ ОПЧПЕ РТЙМПЦЕОЙЕ, Й ЕЗП ЛПОЕЮОЩЕ РПМШЪПЧБФЕМЙ НПЗХФ ПВТБЭБФШУС Л ТЕЕУФТХ УПВУФЧЕООПУФЙ ВПМЕЕ МЕЗЛП Й ВЩУФТП. рПУЛПМШЛХ РТПЧЙОГЙС ЙУРПМШЪХЕФ XML Ч ЛБЮЕУФЧЕ ЖПТНБФБ ДБООЩИ, РТБЧЙФЕМШУФЧЕООБС IT-ЛПНБОДБ ЙНЕЕФ ВПМШЫХА ЗЙВЛПУФШ Ч ТБЪТБВПФЛЕ ОПЧЩИ ЙОФЕТЖЕКУПЧ Й НЕФПДПЧ ДПУФХРБ. уБНПЕ МХЮЫЕЕ, ЮФП УЙУФЕНЩ ОБ УФПТПОЕ УЕТЧЕТБ ОЕ ЙЪНЕОЙМЙУШ ЧППВЭЕ.

    вБОЛ First Union ОБ XML

    тЙУХОПЛ 3. вБОЛ First Union ОБ XML

    First Union National Bank, ПДЙО ЙЪ УБНЩИ ВПМШЫЙИ ВБОЛПЧ Ч уыб, ОБИПДЙФУС Ч РТПГЕУУЕ ТЕЙОЦЕОЙТЙОЗБ НОПЗЙИ УЧПЙИ РТЙМПЦЕОЙК РТЙ РПНПЭЙ Java Й XML. лБЛ Й Х ВПМШЫЙОУФЧБ ВПМШЫЙИ ЛПНРБОЙК, ЕЗП УТЕДБ ЗЕФЕТПЗЕООБ У УЕТЧЕТБНЙ OS/390, AIX, Solaris, HP/9000 Й Windows NT Й ЛМЙЕОФБНЙ Windows NT, Windows 98, Solaris Й AIX. йНЕС ФБЛХА УТЕДХ, First Union ЧЩВТБМ Java ДМС РМБФЖПТНЕООП-ОЕЪБЧЙУЙНЩИ ЛПДПЧ Й XML ДМС РМБФЖПТНЕООП-ОЕЪБЧЙУЙНЩИ ДБООЩИ.

    уЙУФЕНБ ОБ ВБЪЕ УППВЭЕОЙК

    тБУРТЕДЕМЕООПЕ РТЙМПЦЕОЙЕ ВБОЛБ РПУФТПЕОП ОБ ЙОЖТБУФТХЛФХТЕ ПВНЕОБ УППВЭЕОЙСНЙ У ЙУРПМШЪПЧБОЙЕ ДМС ДПУФБЧЛЙ УППВЭЕОЙК IBM’s MQSeries ДМС УЙУФЕНЩ OS/390. уПДЕТЦБОЙЕ УППВЭЕОЙЕ ВБЪЙТХЕФУС ОБ УРЕГЙЖЙЛБГЙЙ, ОБЪЩЧБЕНПК Common Interface Message (CIM), УПВУФЧЕООПН УФБОДБТФЕ First Union. й ЛМЙЕОФУЛЙЕ, Й УЕТЧЕТОЩЕ ЛПНРПОЕОФЩ РТЙМПЦЕОЙС ЪБЧЙУСФ ПФ ЖПТНБФБ УППВЭЕОЙС. л РТПФПЛПМХ ПВНЕОБ УППВЭЕОЙСНЙ ДПВБЧМЕОП ЙУРПМШЪПЧБОЙЕ XML, ЛБЛ ЖПТНБФБ ДБООЩИ, ЙЪПМЙТХАЭЕЗП ПВЕ УФПТПОЩ РТЙМПЦЕОЙС ПФ ВХДХЭЙИ ЙЪНЕОЕОЙК.

    йУРПМШЪПЧБОЙЕ ЙОУФТХНЕОФПЧ XML ДМС БЧФПНБФЙЪБГЙЙ РПФПЛПЧ ДБООЩИ

    рТЙ ТБЪТБВПФЛЕ ЬФПЗП РТЙМПЦЕОЙС ОБ ВБЪЕ XML First Union Й ЛПНБОДБ IBM УПЪДБМЙ УМХЦВХ, ЛПФПТБС ЛПОЧЕТФЙТХЕФ CIM Ч XML-ДПЛХНЕОФ. дТХЗБС ЮБУФШ РТЙМПЦЕОЙС ЛПОЧЕТФЙТХЕФ XML-ЪБРТПУ Ч ПРТЕДЕМЕООЩК ЖПТНБФ УЕТЧЕТОЩИ УЙУФЕН ПВТБВПФЛЙ. оБЛПОЕГ, ФТЕФШС УМХЦВБ ЛПОЧЕТФЙТХЕФ ПРЙУБОЙС ОБ COBOL Ч DTD. тБЪ ПРЙУБОЙС ЛПОЧЕТФЙТПЧБОЩ Ч DTD, First Union НПЦЕФ ЙУРПМШЪПЧБФШ DTD Й РБТУЕТ XML4J ДМС БЧФПНБФЙЮЕУЛПК РТПЧЕТЛЙ РТБЧЙМШОПУФЙ XML-ДПЛХНЕОФБ, ВБОЛ, УМЕДПЧБФЕМШОП, НПЦЕФ ВЩФШ ХЧЕТЕО, ЮФП XML-ДПЛХНЕОФ УППФЧЕФУФЧХЕФ УФТХЛФХТЕ ДБООЩИ COBOL, ЮЕЗП ПЦЙДБЕФ OS/390. йУРПМШЪПЧБОЙЕ ФЕИОПМПЗЙЙ Java Й XML ПЛБЪБМПУШ ПЮЕОШ ХУРЕЫОЩН ДМС First Union. рП УМПЧБН Bill Barnett, НЕОЕДЦЕТБ зТХРРЩ йОФЕЗТБГЙЙ тБУРТЕДЕМЕООЩИ пВЯЕЛФПЧ Ч First Union, «лПНВЙОБГЙС Java Й XML ДЕКУФЧЙФЕМШОП УРБУЙФЕМШОБ ДМС ОБУ. вЕЪ ФБЛПК РМБФЖПТНЕООП-ОЕЪБЧЙУЙНПК УТЕДЩ, ЛБЛ Java, Й ОЕЪБЧЙУЙНПУФЙ РТПФПЛПМБ ПВНЕОБ УППВЭЕОЙСНЙ, РПМХЮЕООПК ПФ ЙУРПМШЪПЧБОЙС XML, НЩ ОЕ НПЗМЙ ВЩФШ ХЧЕТЕОЩ, ЮФП ОБЫБ ТБУРТЕДЕМЕООБС ЙОЖТБУФТХЛФХТБ УНПЦЕФ ТБЪЧЙЧБФШУС, ЮФПВЩ ХДПЧМЕФЧПТСФШ ФТЕВПЧБОЙСН ОБЫЕК РПУФПСООП ТБУФХЭЕК НБУУЩ РПФТЕВЙФЕМЕК.»

    Hewitt Associates LLC

    тЙУХОПЛ 4. Hewitt Associates LLC

    Hewitt Associates LLC — ЗМПВБМШОБС ЛПОУХМШФБФЙЧОБС ЖЙТНБ РП НЕОЕДЦНЕОФХ, ЛПФПТБС УРЕГЙБМЙЪЙТХЕФУС ОБ ТЕЫЕОЙСИ РП ФТХДПЧЩН ТЕУХТУБН. лПНРБОЙС ЙНЕЕФ ВПМЕЕ 200 ЛПТРПТБФЙЧОЩИ ЛМЙЕОФПЧ ЧП ЧУЕН НЙТЕ; ЬФЙ ЛПНРБОЙЙ ТЕБМШОП ЙНЕАФ ВПМЕЕ 10 НМО. УПФТХДОЙЛПЧ.

    дП ЪБЛМАЮЕОЙС УПЗМБЫЕОЙС У jStart Hewitt УФТПЙМБ УПВУФЧЕООЩЕ ЪБЛБЪОЩЕ ТЕЫЕОЙС, ЛПЗДБ ЕЕ ЛМЙЕОФЩ ЪБРТБЫЙЧБМЙ ДБООЩЕ П ФТХДПЧЩИ ТЕУХТУБИ. ьФЙ ЪБЛБЪОЩЕ ТЕЫЕОЙС ПВЩЮОП ВЩМЙ РЕТЕИПДОЙЛБНЙ Л УХЭЕУФЧХАЭЙН ХОБУМЕДПЧБООЩН РТЙМПЦЕОЙСН Hewitt, Ч ОЕЛПФПТЩИ УМХЮБСИ ТЕЫЕОЙС ТБВПФБМЙ У ТЕБМШОЩНЙ РПФПЛБНЙ ВБКФПЧ. ьФЙ ЪБЛБЪОЩЕ ТЕЫЕОЙС ПЮЕОШ ДПТПЗП ПВИПДЙМЙУШ Ч ТБЪТБВПФЛЕ, ФЕУФЙТПЧБОЙЙ Й ЧОЕДТЕОЙЙ, ЮФП РТЙЧЕМП Л ФПНХ, ЮФП Hewitt УФБМБ ТБУУНБФТЙЧБФШ ЧПЪНПЦОПУФШ РТЙНЕОЕОЙС Web-УЕТЧЙУПЧ.

    уРБУЕОЙЕ Ч Web-УЕТЧЙУБИ!

    юФПВЩ ТЕЫЙФШ ЬФЙ РТПВМЕНЩ, Hewitt Й ЛПНБОДБ jStart ТБВПФБМЙ ЧНЕУФЕ ДМС УПЪДБОЙС Web-УЕТЧЙУПЧ ДМС ОХЦД РПФТЕВЙФЕМЕК Hewitt. Web-УЕТЧЙУЩ СЧМСАФУС ОПЧЩН ЧЙДПН РТЙМПЦЕОЙК, ЛПФПТЩЕ ЙУРПМШЪХАФ XML ОЕУЛПМШЛЙНЙ ЙОФЕТЕУОЩНЙ УРПУПВБНЙ:

    • рТЕЦДЕ ЧУЕЗП, Web-УЕТЧЙУЩ ПВЩЮОП ЙУРПМШЪХАФ SOAP, УФБОДБТФ XML ДМС РЕТЕНЕЭЕОЙС XML-ДБООЩИ ЙЪ ПДОПЗП НЕУФБ Ч ДТХЗПЕ.
    • чП-ЧФПТЩИ, ЙОФЕТЖЕКУЩ, ПВЕУРЕЮЙЧБЕНЩЕ Web-УЕТЧЙУБНЙ (ЙНЕОБ НЕФПДПЧ, РЕТЕНЕФТЩ, ФЙРЩ ДБООЩИ Й Ф.Д.) ПРЙУЩЧБАФУС РТЙ РПНПЭЙ XML.
    • дБМЕЕ, ПРЙУБОЙЕ Web-УЕТЧЙУБ НПЦЕФ ВЩФШ УПИТБОЕОП Й ЧЩВТБОП ЙЪ ТЕЕУФТБ UDDI; ЧУС ЙОЖПТНБГЙС, ЛПФПТБС РПУФХРБЕФ Ч ТЕЕУФТ ЙМЙ ЧЩИПДЙФ ЙЪ ОЕЗП ЖПТНБФЙТПЧБОБ ЛБЛ XML.
    • оБЛПОЕГ, УБНЙ ДБООЩЕ, ПВЕУРЕЮЙЧБЕНЩЕ Web-УЕТЧЙУПН СЧМСАФУС XML.

    Hewitt РТЕДУФБЧЙМБ ДЧБ РТЙМПЦЕОЙС, ЛПФПТЩЕ ЙММАУФТЙТХАФ ЧПЪНПЦОПУФШ РЕТЕДБЧБФШ ДБООЩЕ ВПМЕЕ ЗЙВЛЙН УРПУПВПН:

    • рТЙ РПНПЭЙ Secure Participant Mailbox БЧФПТЙЪЙТПЧБООЩЕ РПМШЪПЧБФЕМЙ НПЗХФ ЪБРТБЫЙЧБФШ ПФЮЕФЩ, УПДЕТЦБЭЙЕ РЕТУПОЙЖЙГЙТПЧБООХА ЙОЖПТНБГЙА П УПФТХДОЙЛБИ.
    • рТЙ РПНПЭЙ With the Retirement Access B2B Connection БЧФПТЙЪЙТПЧБООЩЕ РПМШЪПЧБФЕМЙ НПЗХФ РПМХЮБФШ РПДТПВОПУФЙ ЖЙОБОУПЧПК ЙОЖПТНБГЙЙ ЛМЙЕОФБ.

    пВБ ЬФЙ РТЙМПЦЕОЙС ЧЩВЙТБАФ ДБООЩЕ ЙЪ УХЭЕУФЧХАЭЙИ ХОБУМЕДПЧБООЩИ УЙУФЕН, ЙУРПМШЪХАФ XML ДМС ЖПТНБФЙТПЧБОЙС ДБООЩИ Й ДПУФБЧМСАФ ЖПТНБФЙТПЧБООХА ЙОЖПТНБГЙА ЮЕТЕЪ Web. рПУЛПМШЛХ ЬФЙ РТЙМПЦЕОЙС РПУФТПЕОЩ ОБ ПФЛТЩФЩИ УФБОДБТФБИ, Hewitt НПЦЕФ ДПУФБЧМСФШ ЙИ ВЩУФТП. мХЮЫЕ ЧУЕЗП ФП, ЮФП ЗЙВЛПУФШ ЬФЙИ РТЙМПЦЕОЙК РПНПЗБЕФ Hewitt ЧЩДЕМЙФШУС УТЕДЙ УЧПЙИ ЛПОЛХТЕОФПЧ.

    «нЩ ЧЙДЙН Ч Web-УЕТЧЙУБИ УТЕДУФЧП ПВЕУРЕЮЙФ ПФЛТЩФЩК, ОЕУРЕГЙБМЙЪЙТПЧБООЩК ДПУФХР Л ОБЫЙН ВЙЪОЕУ-УЕТЧЙУБН ЮЕТЕЪ ЧЕЪДЕУХЭХА УЕФШ ДБООЩИ,» — ЗПЧПТЙФ Tim Hilgenberg, зМБЧОЩК уФТБФЕЗ РП фЕИОПМПЗЙСН Ч Hewitt. лПОЕЮОЩК ТЕЪХМШФБФ: Hewitt ТБЪТБВПФБМ ВПМЕЕ ЗЙВЛЙЕ РТЙМПЦЕОЙЕ ВЩУФТЕЕ Й ДЕЫЕЧМЕ, ЛМЙЕОФЩ РПМХЮЙМЙ МХЮЫЙК ДПУФХР Л ЙИ ДБООЩН, Б УХЭЕУФЧХАЭЙЕ ХОБУМЕДПЧБООЩЕ РТЙМПЦЕОЙС Hewitt ОЕ ЙЪНЕОЙМЙУШ.

    йФПЗ РП РТБЛФЙЮЕУЛЙН РТЙНЕТБН

    чП ЧУЕИ ЬФЙИ РТБЛФЙЮЕУЛЙИ РТЙНЕТБИ ЛПНРБОЙЙ ЙУРПМШЪПЧБМЙ XML ДМС УПЪДБОЙС УЙУФЕНОП-ОЕЪБЧЙУЙНПЗП ЖПТНБФБ ДБООЩИ. XML-ДПЛХНЕОФЩ, РТЕДУФБЧМСАЭЙЕ УФТХЛФХТЙТПЧБООЩЕ ДБООЩЕ, НПЗХФ ВЩФШ РЕТЕНЕЭЕОЩ У ПДОПК УЙУФЕНЩ ЙМЙ РТПГЕУУБ ОБ ДТХЗХА. лМЙЕОФУЛЙЕ Й УЕТЧЕТОЩЕ РТЙМПЦЕОЙС НЕОСАФУС, Б XML-ДБООЩЕ, РЕТЕНЕЭБАЭЙЕУС НЕЦДХ ОЙНЙ ОЕЙЪНЕООЩ. вПМЕЕ ФПЗП, ЛПЗДБ ЛМЙЕОФУЛЙЕ Й УЕТЧЕТОЩЕ РТЙМПЦЕОЙС РЕТЕНЕЫЙЧБАФУС, ЙУРПМШЪПЧБОЙЕ XML РТЕДПИТБОСЕФ УХЭЕУФЧХАЭЙЕ РТЙМПЦЕОЙС ПФ МАВЩИ ЙЪНЕОЕОЙК. рП НЕТЕ ФПЗП, ЛБЛ Web-УЕТЧЙУЩ УФБОПЧСФУС ВПМЕЕ ПВЭЙНЙ, XML ФБЛЦЕ ВХДЕФ ЙУРПМШЪПЧБФШУС ДМС РЕТЕДБЮЙ ДБООЩИ.

    XML Введение

    На этой странице

    XML — это язык разметки подобный HTML. Расшифровывается как (англ. Extensible Markup Language — Расширяемый Язык Разметки) и является рекомендацией сообщества W3C в качестве языка разметки общего назначения ( W3C recommended ). В отличии от остальных языков разметки, XML сам по себе не определен (это означает, что вы должны сами определять используемые теги). Основной целью XML является передача данных между разными системами (даже концептуально разными), такими как интернет.

    Много языков базируются на XML; Некоторые примеры: XHTML, MathML, SVG, XUL, XBL, RSS, и RDF. Вы можете создать свой.

    «Корректный» XML (правильно сформированный)

    Правила оформления

    Для корректного XML документа должны исполняться следующие условия:

    Правильное оформление документа.

    Соблюдаться все синтаксические правила XML.

    Документ должен соответствовать семантическим правилам языка (которые обычно заданны в схеме XML или DTD (англ. Document Type Definition)).

    Пример

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

    Давайте посмотрим на корректную версию этого документа:

    Документ содержащий неопределенный тег является не корректным. Например, если мы не определили тег , документ не корректен.

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

    Сущности

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

    Сущность Символ Описание
    > Знак больше (одна из угловых скобок)
    & & Амперсанд
    « « Двойная кавычка
    Одинарная кавычка (апостроф)

    Не смотря на то, что по умолчанию создано всего пять сущностей, вы можете добавить в документ свои сущности используя Document Type Definition. Например, создать новую &warning; сущность, можно так:

    Также вы можете использовать нумерические ссылки для специфический специальных символов. Например, © — это символ «©».

    Отображение XML

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

    Один из методов отображения XML — указать CSS (чтобы использовать в документе нужно прописать инструкцию xml-stylesheet , как показано в примере ниже).

    Есть также много других мощных методов отображения XML, например, XSLT(англ. Extensible Stylesheet Language Transformations), который может использоваться для преобразование XML в другие языки такие, как HTML. Это делает XML очень универсальным.

    Рекомендации

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

    Изчайте HTML (англ. HyperText Markup Language), знание HTML поможет вам лучше понять XML.

    Смотрите также

    Статья Using XML — отличный ресурс с большим количеством информации о саздании своего языка на основе XML.

    Введение в XML

    XML технологии и средства разработки Gupta
    Team Developer: XML технологии (Часть 1)

    В статье, которая состоит из двух частей, рассмотрены основные понятия и возможно-сти технологий XML при построении информационных систем (часть 1) и возможности использования их при программировании в Gupta (Centura) Team Developer часть 2). Техно-логии XML обеспечивают высокий уровень универсальности при обмене данными между приложениями, при хранении данных в БД и универсализации доступа к данным в WEB-приложениях.

    Язык XML появился относительно недавно в поле зрения IT специалистов, но уже завоевал всестороннее признание. Достаточно сказать, что он стал основой WEB технологий, универ-сальным механизмом взаимодействия программных систем и способом представления ин-формации в БД. Внешне он похож на язык HTML (тэговые операторные скобки), но, несо-мненно, функционально имеет более широкую сферу применения, и, думаю, не ошибусь, большое будущее.

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

    На рисунке 1 показаны основные возможности XML и основные программные компоненты, участвующие процессе обработки XML информации.

    Рис. 1 Обобщенный взгляд на XML технологии.

    Основные технологические процессы выделены красным цветом: обработка данных, обмен данными, хранение данными, проверка данных, преобразование данных и их генерирование. На рисунке выделены разновидности программных систем (синим цветом), участвующих в обработке данных: программные приложения, СУБД XML, XSL процессоры и WEB сервер-клиент компоненты. Данные на рисунке представлены (серые прямоугольники) в формате XML. Они необходимы: для непосредственного хранения (XML документ), для описания структур данных (XML схемы) и для преобразования данных (XSL правила-программы).

      XML позволяет описывать структурированные данные. XML — язык описания данных. (Можно описывать все традиционные структуры данных: таблицы, массивы, вложенные структуры, деревья, списки, сети и т.д.)

    XML — поддерживается общедоступными СОМ и АХ объектами, интегрируемыми в опе-рационную систему и Интернет. СОМ XML позволяет генерировать, проверять, считы-вать, преобразовывать данные. XML поддерживает UNICODE формат данных. XML — это независимое от платформ средство описания данных. Имеются сопровождаемые ком-поненты XML (SDK XML), которые обеспечивают обработку данных практически в лю-бых языках программирования: C++, JAVA, Jscript, VBScript и др.

  • Язык XML — внешне похож на формат HTML. Имеет тэги и атрибуты. XML — текстовый формат представления данных, однако, они не предназначены для чтения, а для перера-ботки, хранения и представления данных в WEB.
  • XML — это семейство технологий, которые постоянно развиваются:

    4.1. XML 1,0 базовый стандарт языка,
    4.2. XLINK — описывает правила добавления ссылок (URL) в XML документы,
    4.3. XPOINTER — описывает правила создания графических ссылок (URL),
    4.4. CSS — работает также как и для HTML,
    4.5. XSL и XSLT — это продвинутые языки преобразования и обработки XML докумен-тов,
    4.6. DOM — это стандартный объект (функции и методы) позволяющие про граммировать все действия по работе с XML документами.
    4.7. XML Schemas (1/2) — позволяет описывать свои подмножества языка XML и прове-рят ь правильность их построения
    4.8. XML Query — язык доступа к данным на основе запросов и многие другие.

    Рассмотрим теперь некоторые из этих возможностей: описание данных на языке XML, про-верку данных на основе схем, преобразование данных на основе XSL, классы SDK XML.

    Язык XML, в самом общем виде, — это набор простых правил для описания вложенных тек-стовых структур данных. Понятие документа: документ это совокупность элементов. Сам документ является элементом. Элемент может иметь произвольное число атрибутов (свойств). Атрибуты имеют значения и тип. На рисунке, расположенном ниже, представлен вид простейшего XML документа. Он состоит из заголовка и текста документа, включающе-го другие элементы и их атрибуты (в примере элементы: article, part, picture; атрибуты: version, file). Кроме того, в документе может располагаться обычный текст.

    Рис. 2. Пример простого XML документа.

    Описание элементов обязательно включает ключевые тэги (заголовки) начальный и конеч-ный, которые должны совпадать по наименованию:

    Введение в XML

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

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

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

    Приведем небольшой пример, написанный как на HTML, так и на XML.

    Пусть у нас есть небольшая таблица, в одной из ячеек которой помещен некоторый текст.

    Table border = 0 >

    H1 align =” center ”> Этот текст находится внутри HTML h1 >

    table border =” 0 ”>

    h1 align =” center ”> Этот текст находится внутри XML h1 >

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

    .

    Также существенным отличием языка XML от HTML является тот факт, что каждое значение атрибута должно быть заключено в кавычки. Каждый элемент должен иметь закрывающий тег (пример: — в HTML такое написание допустимо, в XML элемент линии должен иметь закрывающий тэг: ).

    Имена и символы

    Символы в языке XML представляют собой числа, определенные в наборе символов 16-bit+ Unicode 2.1. Данный способ кодирования соответствует стандарту ISO/IEC 10646, описанному на сайте по адресу: //www.iso.ch.

    В языке XML все имена должны начинаться с буквы, символа нижнего подчеркивания ( _ ) или двоеточия (:) и продолжаться только допустимыми для имен символами. К числу последних относятся все вышеперечисленные символы, а также цифры, знак дефиса (-) или точки ( . ). Имена не могут начинаться со строк “xml”, “XML”, “xML”, “xmL”, “XMl”, “Xml”, “XmL”.

    Пример. Это правильные имена: Book, BOOK, myname: Catalog, Книга.

    Это не правильные имена: -BOOK, 101Далматинец, XMLForever, Лена+Петя=Любовь.

    Правильно оформленный документ XML состоит из трех главных частей:

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

    Рассмотрим стандартный пример простого документа XML.

    Здесь можно размещать комментарии и команды обработки

    book category BestSeller «>

    Title > Книга для тебя Title >

    Author >Иванов Author >

    Здесь разрешается размещать комментарии и команды обработки

    Рассмотрим подробнее структуру приведенную выше.

    Каждый документ XML начинается со следующего элемента: . Здесь мы объявляем, что документ является документов XML с кодировкой Windows-1251. Впрочем, кодировка может быть любая в зависимости от кодировки текста.

    Итак, пролог состоит из следующих атрибутов:

    • version – обязательный атрибут, значение которого должно быть равно 1.0 для поддержки следующих версий;
    • encoding – необязательный атрибут, указывающий на кодировку документа XML. Если атрибут не указан, то по умолчанию предполагается кодировка UTF-8 или UTF-16, в зависимости от формата начальной строки “ .

    Данный элемент «говорит», что представленная структура документа XML определяется внешней декларацией books.dtd, находящейся по адресу //yourserver.com/ .

    Тело состоит из элементов. Элементы – это основные строительные блоки разметки XML. Элементы могут содержать подэлементы, символьные данные, ссылки на символы, ссылки на объекты, команды PI (команды обработки), комментарии, разделы CDATA. Все данные XML, кроме комментариев, команд обработки и пустого пространства, должны содержаться внутри элементов.

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

    ), некий гибрид открывающего и закрывающего тэга, как показано в примере.

    Все элементы должны быть вложены друг в друга. Это выглядит примерно так:

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

    Для сравнения приведем два примера, как нельзя составлять документы XML.

    Здесь все очевидно. В первом примере мы видим отсутствие вложенности тэгов, а во втором – в документе существуют два корня.

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

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

    Пример: . В данном случае мы имеем элемент “Book” с атрибутом “category”, значением которого является слово “Fantasy”.

    В рекомендациях комитета W3C по XML 1.0 определены следующие специальные атрибуты: xml:space и xml:lang.

    Атрибут xml:space служит для указания приложению сохранять пустые пространства. Данный атрибут можно сравнить с тэгом

    в HTML, используемым для сохранения форматирования документа.

    Атрибут xml:lang введен для указания приложению о существовании текста со специфической кодировкой, где надо учитывать порядок сортировки символов, способы разделения слов при полнотекстовом индексировании и т.д. Указывая данный атрибут, мы даем понять приложению, какой язык использует элемент с данным атрибутом. Значением атрибута xml:lang является специльный двухбуквенный код, обозначающий соответствующий язык: fr для французского, ja для японского. Также двухбуквенный код может сопровождаться подкодами: en-US – американский английский, az-cyrillic – азербайджанская кириллица.

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

    В этом и заключается основная проблема эпилога.

    Большинство анализаторов XML (если не все) конец документа определяют по завершающему тэгу. Соответственно, вся та часть, что находится после завершающего тэга, анализатором будет игнорирована.

    По мнению Тима Брея (один из авторов рекомендации XML 1.0) эпилог является ошибкой проектирования и его не стоит использовать без необходимости. Также следует иметь в Вилу, что скорее всего эпилог не будет обрабатываться другими приложениями XML.

    . мио пишет 06.03.2002 @ 18:50

    Теперь можно задуматься.
    Если у нас есть просто данные, которыми мы манипулируем (аунтефикация пользователей к примеру), то всё нормально, если не . СКОРОСТЬ парсинга.

    В чём проблема? Каждый раз, когда пользователь будет логиниться, программный комплекс должен будет обращаться к базе, парсить её, а дальше уже манипулировать данными, как ему заблагорассудится.
    А зачем постоянно грузить всю базу, если можно её в виде хешей хранить в памяти. Будем считать, что кроме этой задачи нам больше не надо ни о чём беспокоиться, т.е. ограничения на использования памяти у нас нет.

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

    Итак. Теперь у Нас есть сервер.

    Играем дальше.
    Для чего вы делаете свой сайт? Вы часто его обновляете? И последний вопрос — зачем вы генерите всё время одно и тоже, если оно не изменилось ? Быстро ? Думаете ? Кому ? Вам или серверу? А если возьмём 10,000 обращений к серверу за секунду? не вылетел ? — повезло)
    Итак. Зачем мы используем динамику ? — потому что так проще. Зачем утруждать себя, чтобы генерировать HTML`ки, если можно просто его генерить. Ну да. Так намного проще.

    Задача: описать структуру сайта, описать дейсвия (сценарии обработки действий), и, при изменении данных — сгенерировать новую структуру.

    Опять же возможен серверный вариант.
    Мы описываем действия гостевой, объясняем, что такое добавление сообщения, объясняем, как обрабатывать данные, как разбивать на страницы, описываем шаблоны и всё. Забудьте пхп и перл) Забудьте всё.
    Матрицы нет, есть только ложка.
    Зайдите в администрирование и нажмите инстал. Радуйтесь.
    Оно работает. Вы свободны.

    все события и имены вымышлены, они даже не могли существовать в реальности.

    А если серьёзно, если какие нибудь у кого то мысли будут, пишите на мыло, отвечу) если смогу)

    мда . люди . дошли . наконец таки .
    XML forever . и что?

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

    О чём я ?
    Люди, пока не появится нормального средства отображения XML или хотя бы не будет нормального парсера, XML будет непригоден для документов.

    Зачем можно использовать XML:
    — база
    — структура сайта
    — статистика
    — и всё что угодно, но не сами документы.

    Когда XML стал появляться в массах (ну появляться в массах он стал намного раньше), в том смысле, что по XML стали появляться описания, книжки всякие, он привлёк сразу одним — структура, удобная для восприятия.

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

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

    Что имеем? Модуль на Си, позволяющий на лету обрабатывать XML, преобразовывать его в хешь, и дальше — что хотим, то и делаем.
    С данными проблемы не должно быть.

    Итак. База пользователей:

    us:admin
    681833614

    . мио пишет 06.03.2002 @ 19:30
    . Nom-Shar пишет 07.03.2002 @ 13:29
    . advocat пишет 07.03.2002 @ 20:42
    . Dolce пишет 08.03.2002 @ 00:19

    Ну, PHP имеено и надо с XML как-то юзать. Прикинь, у тя есть классная прогга, с config.inc.php файлом на 300 опций, ну просто ВСЁ мона настроить. мона либо в нём копаться и пытаться всё мастерить, либо через XML пропарсить и красиво через интерфейс позволить свою проггу настроить. гг. мелочь конечно, но приятно.

    Начнём с того, что XML существовал за долго до HTML. вообще — HTML = кастрированный XML :)

    . мио пишет 09.03.2002 @ 15:32

    мда . люди . вы о чём говорите ?
    вы поймите, что XML — это не язык программирования как таковой, это либо язык разметки, либо язык, но который ВЫ сами можете расширить, но сам по себе он просто пустой)

    Я предложил использовать XML лишь как структуру, которую сам расширил, я написал для себя язык, который состоит из языка скриптования, таблиц и данных в XML, ну и парсера для HTML`а.
    А ваш PHP, как был, так и останется обычным языком для простых скриптов.

    Я предложил использовать его только лишь как структуру, для расширения того же php или perl.
    Т.е. вам надо один раз написать правила, и пользоваться.
    Я предложил язык, который описывает не ЧТО ДЕЛАТЬ, а КАК ДЕЛАТЬ. Тогда язык не играет значения, тогда важней сам алгоритм. Попробуй логически описать, как добавить в гостевую собщение, и как разбить на страницы. Получилось? Тогда Welcome Are You.

    Всегда с вами . мио)))

    . Neo пишет 09.03.2002 @ 23:27
    . мио пишет 11.03.2002 @ 16:05

    нео, зато ты крут)
    наверное ас в серверных технологиях)

    ты просто наверное совершенство)

    . denz пишет 13.03.2002 @ 12:02
    . Саша пишет 13.03.2002 @ 15:12
    . teo пишет 14.03.2002 @ 11:01

    PHP,ASP,Perl — их много, и все позволяют обрабатывать XML, так что PHP здесь не при чем. Это из другой оперы совсем.
    Я например использую ASP IIS5 для обработки XML. В будущем перепишу небольшие модули ASP на Java и оставлю без изменений XSL шаблоны. И все будет работать.
    Основная логика работы в XSLT лежит. И не недо заморачиваться способом реализации.

    Введение в XML

    Взяв любую книгу, вы легко убедитесь, что она оформлена согласно некоторым правилам: (Заголовки/подзаголовки, абзацы, шрифты). Причём, например, говоря о книгах, видим что:

    • средства для оформления достаточно фиксированы
    • однако в раках этих средств имеется достаточное разнообразие их использования.

    Заметьте, что здесь речь не идёт о содержании какой-то конкретной книги, а только о формальном способе выделения/отображения некоторых информационно-однородных структурных объединений в ней, эквивалентных по семантике, а также отношений между ними. С другой стороны, вы были бы удивлены, если бы в рамках отдельно взятой книги одни и те же семантические объекты имели бы различные представления, а также выражались разными способами отношений между ними. Во всяком случае, это усложнило бы вам восприятие информации.

    Другой момент, связан с обработкой структурированной информации, сформированной в одном месте, например на сервере данных, а обрабатываемой в другом, например на конкретном клиенте для просмотра/печати отчёта.

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

    Документ = Данные + Структура + Представление

    Общеизвестен универсальный формат Reach Text Format (RTF) точнее язык, с помощью которого можно отформатировать печатный документ, используя разнообразия шрифтов, расположить текст, требуемым образом, и добиться того, чтобы печатный документ был близкой копией к оригиналу, просматриваемому в каком-нибудь редакторе. Вот так, к примеру, будет выглядеть в нём такой текст:

    Строка в Reach Text Format ( RTF )

    Хм. достаточно разборчиво, не правда ли? :-) Кроме того, что он «птичий» он ещё и «узко специализирован» ничего кроме представления данных для просмотра/печати он не умеет. Не нужно далеко ходить, чтобы привести и другие аналогичные форматы данных: DOC, PDF, . При создании этих форматов, задачи явного разделение содержимого документов на данные и их структуру не ставилось.

    Отсюда возникает понимание того, что нужен язык, который бы:

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

    Служащий подобным целям язык уже существует, и был создан в 1996 году в фирме IBM Research с названием Generalized Markup Language (GML). Язык был разработан для правительственных учреждений в США для обмена информацией между правительственными и государственными учреждениями. Это язык расширяемый, т.е. казалось бы, вопрос языка для этих целей решён. Позднее на него был утверждён стандарт под названием Standard Generalized Markup Language (SGML). Однако, именно из-за своей универсальности он оказался настолько сложен, что практическое применение его вызвало определённые затруднения, в т.ч. и создание ПО для него. Отсюда и высокие цены на продукты, созданные с помощью него (см. http://www.oasis-open.org/cover/).

    В связи с бурным развитием Internet общеизвестно распространение другого языка разметки: HTML (http://www.w3.org/MarkUp/) . Этот язык является основным для отображения любых данных в Internet (ANSII стандарт для Internet). Однако, его проблема именно в узкой специализации, направленной на визуализацию данных в Web-browsers. Попробуем обозначить проблемы:

    • Основная проблема этого языка, пожалуй, заключается в том, что изначально в этом языке данные, которые необходимо отобразить и указание на то, как именно следует отобразить эти данные, — составляют одно целое. Так, требование к внесению изменений в части представления данных автоматически вынуждает вносить изменение в файл документа. Несмотря на то, что в последней версии 4 появилась возможность использовать так называемые таблицы стилей (т.е. выделить спецификации, отвечающие за отображение данных в самостоятельный файл — таблицу стилей), проблема всё же не перестаёт быть острой. Из-за того, что данные не выделены в самостоятельный слой, изменение данных неизбежно приводит к изменению самого html-документа
    • Отсюда налицо такая проблема: работа с данными, обычно с базами данных, требует наличие программистов, имеющих навыки в этой области программирования, в то время как представление данных, т.е. дизайн — это, вообще говоря, совершенно другая область знаний. Программирование же html-представлений требует от программистов одновременного знания того и другого.
    • Несовершенство самого языка, вынуждает разработчиков применять множество ухищрений, чтобы добиться желаемого представления данных. Если к этому добавить несовместимость используемого программного обеспечения (Web-browser клиента всегда является конкретным :)), то можно представить себе головную боль создателей Web-сайтов.
    • Простые однонаправленные ссылки на другие документы, конечно же, не удовлетворяют потребностей в желании иметь «более богатые» связи между данными и документами.
    • На стороне клиента практически отсутствует возможность какого-нибудь управления отображением данных, и оно полностью зависит от того, какие именно html-документы были присланы сервером.

    Думаю, что вы легко можете найти и другие, возможно следственные к перечисленным выше проблемам.

    В 1996 году консорциумом Word Wide Web ( http://www.w3.org/), была предпринята попытка, приступить к проектированию расширяемого языка разметки, который сочетал бы в себе гибкость и мощность языка SGML и совместимый с распространенностью HTML. Этот язык получил название (Extensible Markup Language) XML (http://www.w3.org/XML/). А в феврале 1998 был принят стандарт этого языка как XML 1.0 в качестве рекомендаций W3C. В настоящий момент существует выпущенная 6 октября 2000 года Extensible Markup Language (XML) 1.0 (Second Edition) рекомендация консорциума W3C (http://www.w3.org/TR/REC-xml). См. также:

    • http://xmlhack.ru/ — Новости и ресурсы для XML-разработчиков.
    • http://xml.nsu.ru/ — Школы консорциума W3C на русском языке.

    В настоящий момент фирма Microsoft® начинает широко применять язык XML при работе со структурированными данными в своих продуктах.

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

    К числу символов, допустимых в XML-документах относятся все три управляющих C0 символа стандарта ANSII, все обычные символы этого стандарта, и почти все символы Unicode:

    09 Горизонтальная табуляция (HT)
    0A Перевод строки (LF)
    0D Возврат каретки (CR)
    20..7E Символы ANSII
    80..D7FF Символы Unicode (включая Latin-1)
    E000..F8FF «Область частного использования»
    F9..FFFD Идеограммы совместимости с CJK (китайским-корейским-японским языками)
    10000..10FFFF Суррогатные эквиваленты и «область исключительного частного использования»

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

    Обозначение (в коде)

    > > Ограничитель разметки & & & Ссылка

    Структуры в XML почти всегда именованы. Любое имя должно начинается с буквы, знака подчёркивания (‘_’) или двоеточия (‘:’) и продолжается только из допустимых в XML для имён символов, которые не обязательно ограничены ANSII символами, а также могут включать в себя буквы национальных алфавитов. Имена не могут начинаться со строки ‘xml’ причём в любой комбинации заглавных/прописных букв. Также нужно иметь ввиду, в отличии от HTML-документа, названия, как и почти вся информация XML-документа чувствительна к регистру. Далее, в значениях атрибутов, могут быть использованы так называемые nmtoken (name token) имена, определённые средствами DTD и могут представлять собой любую смесь символов, без ограничений на первый символ. Наконец, для исключения проблемы одинокого именования логически разных объектов вводится понятие пространства имён и расширенного имени.

    Имена, могут принадлежать пространствам имён (Namespaces). Это снимает проблему использования одинаковых имён, но различающихся т.с. логически. Таким образом, в XML вводится понятие расширенного имени (например: ‘xsl:stylesheet’), которое состоит из локального имени (‘stylesheet’) + имени пространства имён (‘xsl’), которому это имя принадлежит. Локальное имя отделяется от префикса пространства имён символом двоеточия ‘:’. Расширенные имена считаются совпадающими, если совпадают их локальные имена, и они принадлежат одному и тому же пространству имён. В примере ниже показано как объявляется пространство имён в двух возможных формах:

    Нужно также иметь ввиду, что:

    • будучи объявленным, пространство имён «работает» вплоть до своего закрытия
    • объявления по умолчанию действуют на все имена, не имеющие префикса.
    • в качестве значение атрибута xmlns принято использовать уникальный URI, причём не обязательно это должен быть реально существующий Internet-адрес. Просто это является простым способом придания уникальности пространству имён. Для часто используемых пространств имён существует множество «предопределенных» подобных адресов. Например, адреса: http://ww.w3.org/1999/XSL/Transform реально не существует, однако он определяет пространство имён для языка XSLT версии 1.0 (см. http://www.w3.org/TR/xslt). C другой стороны адрес: http://www.w3.org/TR/REC-html40/, — реально существует и вместе с тем он определяет пространство имен для HTML версии 4.0. Пример определения пространства имён вы можете также посмотреть, если сделаете сохранение из-под MS Word 2000 и выше любого файла в html-формате, и открыв полученный файл в любом текстовом редакторе. (См. также http://www.rol.ru/news/it/helpdesk/xnamsps.htm — перевод спецификации Namespaces in XML (W3C Recommendation) на русский язык).

    Чтобы дать возможность использовать чего-нибудь, что неопределенно в рамках языка, предусмотрена возможность создания собственных (т.е. внешних по отношению к языку) определений и их использования. Ссылка всегда начинается знаком амперсанта ‘&’ и завершается точкой с запятой ‘;’. В XML имеется два вида ссылок:

    Ссылки на символы в XML используют там, где в противном случае возникает нарушение ограничений, налагаемых анализатором. Ссылка на символ (character reference) представляет из себя последовательность цифр в десятичном или шестнадцатеричном формате, закачивающуюся точкой с запятой ‘;’ и перед которой стоит знак ‘&’. Так, например, в виде десятичного (&#. ;) или шестнадцатеричного (&#x. ;) числа ссылки:

    будут отображаться в Web-browser как символ: ‘(©)’.

    Ссылки на сущность позволяет включать любые строковые константы в содержание элементов или значения атрибутов, а также представляют мнемонические альтернативы ссылкам на символы. Ссылки на сущность представляется разрешенным к использованию в XML именем, перед которым стоит знак амперсант ‘&’, а после — точка с запятой ‘;’. Например:

    Пять сущностей предопределены в XML и используются вместо символов разметки XML:

    & Всегда используется вместо знака амперсант ‘&’. Исключение составляют разделы CDATA Может использоваться вместо символа ‘>’. В разделе CDATA объект всегда необходимо использовать, если за знаком ‘>’ следует строковая константа «]]» ‘ Может использоваться вместо символа ‘ в строковой константе « Может использоваться вместо символа » в строковой константе

    Все другие сущности должны быть определены перед их использованием. Сущности могут определяться:

    • средствами DTD документа, и тогда они являются внешними множеством по отношению к документу (external subset).
    • внутри самого документа с помощью раздела деклараций и тогда они называются внутренним множеством (internal subset) При обнаружении неопределённой сущности анализатор должен выдать фатальную ошибку.

    Если при замещении имени на значение возникнет необходимость применения значения другой, встретившейся при этом сущности, то замещение должно продолжаться пока все сущности не будут заменены. Тем не менее, «имя» не должно содержать рекурсивных ссылок на себя, прямо или косвенно.

    Символьные данные — это любой текст, являющийся содержанием документа. Однако за двумя символами: ‘ и & — соответственно,

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

    где ‘. ‘ — может содержать любую последовательность символов, исключая: ‘]]>’

    Обратите внимание, что раздел CDATA не лучший способ включения в XML-файл фрагмента двоичных данных. Проблема может возникнуть из-за присутствия последовательности из трёх байт: ‘5D 5D 3E’ непосредственно в таких данных.

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

    • Во-первых, все строковые константы заключены либо в апострофы (‘) либо в кавычки («). Соответственно внутри строки запрещено использовать символ, выбранный в качестве ограничителя строки. В случае одновременного присутствия обоих символов в качестве значения строки следует использовать соответствующие ссылки на объекты: ‘ или «.
    • Во-вторых, в качестве строковых значений не допускается использование защищённых в XML символов: ‘ и & — соответственно (см. также разделы: Зарезервированные символы и Символьные данные выше).

    Под пустыми пространствами (white space) в XML понимают данные, содержащие четыре символа:

    09 Горизонтальная табуляция (HT) 0A Перевод строки (LF) 0D Возврат каретки (CR) 20 Символ пробела ANSII

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

    • все символы пустых пространств в данных элементов сохраняются
    • символы пустых пространств в тегах и значениях атрибутов могут быть удалены (MS анализатор, во всяком случае, в .NET этого не делает :-().

    Следует иметь в виду, что при обработке HTML-документов в Web-browser-ах удаляются все символы пустых пространств и заменяются одним пробелом. И для предотвращения уничтожения вашей разметки следует использовать

    Выдержка из результата выполнения представлена ниже:

    Пример на C#, делающий выборку из таблицы базы данных MS SQL Server 2000.

    Илон Маск рекомендует:  Что такое код msql_free_result
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL