Язык 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 одинаково.

Документ 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.

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

Применение таблицы стилей к документу процессор таблиц стилей осуществляет в два этапа. Первый этап — трансформация дерева (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, в том числе о синтаксических правилах, регламентирующих применение элементов и их объявление.

Язык XML практика и теория

Данный раздел посвящен работе с XML. В нём будет собран, как теоретический, так и практический материал. Будут рассмотрены основные операции с XML файлами, а так же взаимодействие с LINQ и многое другое.

Создание XML файла

XML (Extensible Markup Language) — расширяемый язык разметки, применяется для создания баз данных, web страниц, используется для обмена информацией между программами, применяется в таких технологиях, как Ajax, SOAP, а так же является основой языка XAML, с которым Вы можете встретиться при работе с WPF.

Для создания xml файла нам всего лишь необходимо внести

Структура XML файла

Любой XML файл, начинается с объявления декларации.

Декларация

Декларация xml файла включает в себя:

Версию (version) — номер версии языка XML, 1.0 и 1.1

Если Вы используете xml version 1.0, то строку декларации можно не указывать, если Вы используете версию 1.1, то необходимо обязательно указать данную строку.

Кодировку (encoding) — указывает кодировку файла

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

Чтобы установить кодировку документу, Вы можете воспользоваться, к примеру, программой Notepad++

Элементы xml файла

Язык XML состоит из элементов.

Элемент — это строка, которая содержит открывающий и закрывающий теги, а так же данные, помещенные между ними.

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

Как упоминалось ранее, элемент состоит из тегов.

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

Теги бывают: парные и одиночные.

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

При построение XML документа очень важно соблюдать правильность вложенности тегов:

XML регистро-зависимый язык

Комментарии

Комментарии в XML документе, используют такой же синтаксис, как в языке HTML.

После объявления декларации и знакомства с основными составляющими языка XML, переходим к наполнению нашего файла.

Корневой элемент

Первым всегда указывается корневой элемент (root element), в одном XML документе может быть только один корневой элемент!

В данном примере, создано два корневых элемента

    не правильно

      правильно

    Во втором примере создан один корневой элемент «Root», который содержит обычный элемент «Admin».

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

    «library» корневой элемент содержащий элемент book, который содержит вложенные элементы: title, author, year.

    Атрибуты xml файла

    Атрибуты устанавливают в открывающем теге любого элемента.

    Синтаксис: имя = «значение», заключенное в двойные кавычки.

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

    Ошибка, присутствуют два повторяющихся атрибута «id», а так же между id и number содержится пробел.

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

    чЧЕДЕОЙЕ Ч 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-ДПЛХНЕОФ Ч ВТБХЪЕТЕ, ЧЩ Й С НПЦЕН РПОСФШ, ЮФП ЬФП ЮЕК-ФП РПЮФПЧЩК БДТЕУ. (ч ЮБУФОПУФЙ, ЬФП РПЮФПЧЩК БДТЕУ Ч уПЕДЙОЕООЩИ ыФБФБИ; ДБЦЕ ЕУМЙ ЧЩ ОЕЪОБЛПНЩ У ЛПНРПОЕОФБНЙ РПЮФПЧПЗП БДТЕУБ Ч уыб, ЧЩ, ЧПЪНПЦОП, ДПЗБДБЕФЕУШ, ЮФП ЪДЕУШ РТЕДУФБЧМЕОП.)

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

    пФПВТБЦЕОЙЕ 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 — практическое введение

Зa неполный год своего официального существования язык XML привлек к себе уже достаточно много внимания со стороны разработчиков и пользователей Интернет. Сегодня количество приверженцев этой новой технологии возрастает также стремительно, как и число сообщений об очередных взятых ею преградах на пути к всеобщему признанию. Несмотря на то, что XML очень молод (международная организация W3C утвердила спецификацию «Extensible Markup Language(XML) 1.0» чуть меньше года назад — в начале февраля 1998 г) и отдельные компоненты этого языка находятся еще в стадии доработки, уже сегодня появляются новые языки, созданные на основе XML, возникают многочисленные Web-сервера, использующие эту технологию для организации хранящейся на них информации. Мир Интернет вокруг нас в очередной раз преображается, и мы можем стать участниками этого процесса уже сегодня

Целью данной статьи является попытка на конкретных примерах показать некоторые из возможностей XML, ответить на ряд часто возникающих при знакомстве с новым языком вопросов. Что же такое XML? В чем заключаются его преимущества перед привычным уже нам языком HTML? Можно ли использовать XML на своих Web-страничках уже сегодня? А если можно, то как?

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

Для чего нужен новый язык разметки?

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

Популярность World Wide Web и неотъемлемой ее части, HTML, безусловно, стала причиной повышенного внимания к системам гипертекстовой разметки документов. Хотя понятие гипертекста было введено В.Бушем еще в 1945 году и, начиная с 60-х годов стали появляться первые приложения, использующие гипертекстовые данные, всплеск активности вокруг этой технологии начался лишь тогда, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания, просмотра нелинейного текста. И примером реализации этого механизма послужила паутина WWW.

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

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

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

HTML является упрощенной версией стандартного общего языка разметки — SGML (Standart Generalised Markup Language), который был утвержден ISO в качестве стандарта еще в 80-х годах. Этот язык предназначен для создания других языков разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования дескрипторов осуществляется при помощи специального набора правил, называемых DTD- описаниями(более подробно о DTD мы поговорим чуть позже), которые используются программой клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. С помощью SGML можно описывать структурированные данные, организовывать информацию, содержащуюся в документах, представлять эту информацию в некотором стандартизованном формате. Но в виду некоторой своей сложности, SGML использовался, в основном, для описания синтаксиса других языков(наиболее известным из которых является HTML), и немногие приложения работали с SGML- документами напрямую.

Гораздо более простой и удобный, чем SGML, язык HTML позволяет определять оформление элементов документа и имеет некий ограниченный набор инструкций — тэгов, при помощи которых осуществляется процесс разметки. Инструкции HTML, в первую очередь, предназначены для управления процессом вывода содержимого документа на экране программы-клиента и определяют этим самым способ представления документа, но не его структуру. В качестве элемента гипертекстовой базы данных, описываемой HTML, используется текстовый файл, который может легко передаваться по сети с использованием протокола HTTP. Эта особенность, а также то, что HTML является открытым стандартом и огромное количество пользователей имеет возможность применять возможности этого языка для оформления своих документов, безусловно, повлияли на рост популярности HTML и сделали его сегодня главным механизмом представления информации в Web

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

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

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

Подводя итог всему сказанному, можно утверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык гипертекстовой разметки, мощный, гибкий, и, одновременно с этим, удобный язык XML. В чем же заключается его достоинства?

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

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

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

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

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

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

Также одним из достоинств XML является то, что программы-обработчики XML- документов не сложны и уже сегодня появились и свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами. XML поддерживается сегодня в Microsoft Internet Explorer 4/0 и в бэта-версиях IE5. Было заявлено о его поддержке в последующих версиях Netscape Communicator, СУБД Oracle, DB-2, в приложениях MS-Office . Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.

Как выглядит XML-документ?

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

Структура документа

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

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

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

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

Правила создания XML- документа

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

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

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

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

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

На сегодняшний день существует два способа контроля правильности XML- документа: DTD — определения(Document Type Definition) и схемы данных(Semantic Schema). Более подробно об использовании DTD и схемах мы поговорим в следующих разделах. В отличии от SGML, определение DTD- правил в XML не является необходимостью, и это обстоятельство позволяет нам создавать любые XML- документы, не ломая пока голову над весьма непростым синтаксисом DTD.

Конструкции языка

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

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

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

,а эти — нет:

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

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

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

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

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

Комментарии

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

Атрибуты

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

или

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

Cпециальные символы

Для того, чтобы включить в документ символ, используемый для определения каких-либо конструкций языка (например, символ угловой скобки) и не вызвать при этом ошибок в процессе разбора такого документа, нужно использовать его специальный символьный либо числовой идентификатор. Например, &amplt , &ampgt &ampquot или &amp#036(десятичная форма записи), &amp#x1a (шестнадцатеричная) и т.д. Строковые обозначения спецсиволов могут определяться в XML документе при помощи компонентов (entity), о чем мы еще поговорим немного позже.

Директивы анализатора

Инструкции, предназначенные для анализаторов языка, описываются в XML документе при помощи специальных тэгов — ;. Программа клиента использует эти инструкции для управления процессом разбора документа. Наиболее часто инструкции используются при определении типа документа (например, ) или создании пространства имен[11].

CDATA

Чтобы задать область документа, которую при разборе анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложении, необходимо использовать тэги . Внутри этого блока можно помещать любую информацию, которая может понадобится программе- клиенту для выполнения каких-либо действий (в область CDATA, можно помещать, например, инструкции JavaScript). Естественно, надо следить за тем, чтобы в области, ограниченной этими тэгами не было последовательности символов ]].

I. Коротко об XML¶

Введение в XML¶

XML ( англ. eXtensible Markup Language) — расширяемый язык разметки, предназначенный для хранения и передачи данных.

Простейший XML-документ выглядит следующим образом:

Первая строка — это XML декларация. Здесь определяется версия XML (1.0) и кодировка файла. На следующей строке описывается корневой элемент документа (открывающий тег). Следующие 4 строки описывают дочерние элементы корневого элемента ( title , author , year , price ). Последняя строка определяет конец корневого элемента (закрывающий тег).

Документ XML состоит из элементов (elements). Элемент начинается открывающим тегом (start-tag) в угловых скобках, затем идет содержимое (content) элемента, после него записывается закрывающий тег (end-teg) в угловых скобках.

Элементы могут содержать атрибуты, так, например, открывающий тег lang=»en»> имеет атрибут lang , который принимает значение en . Значения атрибутов заключаются в кавычки (двойные или ординарные).

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

Структура XML¶

XML документ должен содержать корневой элемент. Этот элемент является «родительским» для всех других элементов.

Все элементы в XML документе формируют иерархическое дерево. Это дерево начинается с корневого элемента и разветвляется на более низкие уровни элементов.

Все элементы могут иметь подэлементы (дочерние элементы):

Правила синтаксиса (Валидность)¶

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

Основные правила синтаксиса XML:

  1. Теги XML регистрозависимы — теги XML являются регистрозависимыми. Так, тег не то же самое, что тег .

Открывающий и закрывающий теги должны определяться в одном регистре:

  1. XML элементы должны соблюдать корректную вложенность:
  1. У XML документа должен быть корневой элемент — XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.
  1. Значения XML атрибутов должны заключаться в кавычки:

Сущности¶

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

В примере ниже будет сгенерирована ошибка, так как в значении «ООО » атрибута НаимОрг содержатся символы и > .

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

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

Таблица I.1 — Сущности ¶

Сущность Символ Значение
меньше, чем
> > больше, чем
& & амперсанд
апостроф
« « кавычки

Только символы и & строго запрещены в XML. Символ > допустим, но лучше его всегда заменять на сущность.

Таким образом, корректными будут следующие формы записей:

В последнем примере английские двойные кавычки заменены на французские кавычки («ёлочки»), которые не являются служебными символами.

Поиск информации в XML файлах (XPath)¶

XPath ( англ. XML Path Language) — язык запросов к элементам XML-документа. XPath расширяет возможности работы с XML.

XML имеет древовидную структуру. В документе всегда имеется корневой элемент (инструкция version=”1.0”?> к дереву отношения не имеет). У элемента дерева всегда существуют потомки и предки, кроме корневого элемента, у которого предков нет, а также тупиковых элементов (листьев дерева), у которых нет потомков. Каждый элемент дерева находится на определенном уровне вложенности (далее — «уровень»). У элементов на одном уровне бывают предыдущие и следующие элементы.

Это очень похоже на организацию каталогов в файловой системе, и строки XPath, фактически, — пути к «файлам» — элементам. Рассмотрим пример списка книг:

XPath запрос /bookstore/book/price вернет следующий результат:

Сокращенная форма этого запроса выглядит так: //price .

С помощью XPath запросов можно искать информацию по атрибутам. Например, можно найти информацию о книге на итальянском языке: //title[@lang=»it»] вернет lang=»it»>Everyday Italian .

Чтобы получить больше информации, необходимо модифицировать запрос //book[title[@lang=»it»]] вернет:

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

Таблица I.2 — Выражения XPath ¶

Выражение XPath Результат
/bookstore/book[1] Выбирает первый элемент book , который является потомком элемента bookstore
/bookstore/book[position() Выбирает первые два элемента book , которые являются потомками элемента bookstore
//title[@lang] Выбирает все элементы title с атрибутом lang
//title[@lang=’en’] Выбирает все элементы title с атрибутом lang , который имеет значение en
/bookstore/book[price>35.00] Выбирает все элементы book , которые являются потомками элемента bookstore и которые содержать элемент price со значением больше 35.00
/bookstore/book[price>35.00]/title Выбирает все элементы title элементов book элементов bookstore , которые содержать элемент price со значением больше 35.00

Кодировки¶

И еще один важный момент, который стоит рассмотреть — кодировки. Существует множество кодировок, о них подробнее можно прочитать в статье Набор символов.

Самыми распространенными кириллическими кодировками являются Windows-1251 и UTF-8 . Последняя является одним из стандартов, но большая часть ФНС отчетности имеет кодировку Windows-1251 .

В XML файле кодировка объявляется в декларации:

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

Таблица I.3 — Смена кодировки в разных программах ¶

Программа Кодировка
Notepad++ «Документ → Кодировка»
Geany «Документ → Установить кодировку»
Firefox «Вид → Кодировка»
Chrome «Настройка → Дополнительные инструменты → Кодировка»

В большинстве случаев при работе с русскоязычными файлами помогает переключение кодировки на Windows-1251 или UTF-8 . Если все равно не удается прочитать содержимое XML документа, стоит открыть его в Mozilla Firefox, он отлично распознает кодировки.

Если ничего не помогает, вполне возможно, что файл был поврежден.

XSD схема¶

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

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

  • словарь (названия элементов и атрибутов);
  • модель содержания (отношения между элементами и атрибутами и их структура);
  • типы данных.

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

Подробнее об XSD смотрите:

Примером использования XSD cхем может служить электронная отчетность:

Язык 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, наконец реализовалась идея о том, что любые данные должны сопровождаться собственным описанием. Широкое распространение, которое получил расширяемый язык разметки (Extensible Markup Language, XML) за время, прошедшее с 1998 года, когда первый стандарт XML был опубликован консорциумом W3C (World Wide Web Consortium), служит подтверждением того, что многие отрасли науки и промышленности созрели для серьезных изменений в области описания данных.

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

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

    Оказалось, что подобная гибкость — как раз то, что требуется для многих практических приложений. Компании, которые обмениваются информацией с другими компаниями через Интернет, все чаще и чаще отказываются от стандарта EDI (Electronic Data Interchange — электронный обмен данными) в пользу XML. Предполагается, что эти так называемые В2В (Business-to-business — бизнес для бизнеса) приложения содержат наибольшее количество данных в формате XML во всем Интернете.

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

    Если вы интересуетесь Java, вам наверняка приходится часто слышать и о XML, так как с самого начала язык Java был тесно связан с XML. Джон Босак (Jon Bosak), один из первых инициаторов стандартизации XML, работает в компании Sun, и большая часть работы по созданию анализаторов XML на первом этапе была сделана с помощью Java.

    Так или иначе, интерес к XML распространился всюду в компьютерной промышленности, от огромных корпораций, таких как IBM и Microsoft, до неформальных рабочих групп на всех уровнях. Силами отдельных программистов и небольших групп сделаны многие существенные усовершенствования XML. Например, неформальной группе «XML Devian », организовавшейся на основе списка рассылки в Интернете, принадлежит заслуга создания упрощенного интерфейса API для XML, известного как SAX. Разработка этого проекта исходно велась на языке Java.

    В нашем курсе мы будем использовать сервлеты [Так, по-видимому, по аналогии с апплетами авторы называют программы, написанные на языке Java и выполняющиеся на сервере — Примеч ред. ] Java и JSP-страницы (JavaServer Pages) для создания web-приложений, работающих с данными XML. Сервлеты выполняются на web-сервере, осуществляя те функции, которые ранее возлагались на сценарии CGI. JSP-страницы позволяют объединять элементы разметки HTML и фрагменты кода Java. Технология сервлетов и JSP-страниц развивается примерно так же быстро, как язык XML.

    Во время написания этого курса текущей версией API для сервлетов Java была версия 2.2, выпущенная в декабре 1999 года. Этот интерфейс API содержит много изменении по сравнению с предыдущей версией, особенно в области создания web-приложений и стандартизованной настройки приложения на базе XML.

    Стандартизация технологии JavaServcr Pages происходила гораздо медленнее. Развитие интерфейса API надолго затормозилось на версии 0.92. Отсутствие ясных указаний со стороны Sun привело к тому, что многие компании по созданию программного обеспечения разработали свои собственные технологии для объединения пользовательских тегов в HTML с возможностью поиска по базе данных и другими аналогичными возможностями.

    Когда компания Sun разработала редакцию Java, которая впоследствии стала называться Java 2 Enterprise Edition (редакция Java 2 для корпоративных программных систем на базе Java), стало ясно, что технология JSP будет играть значительную роль в общей концепции создания web-приложений. Поэтому дальнейшее развитие API для JSP-страниц пошло быстрее, появились версии 1.0 и 1.1. Когда была опубликована редакция J2EE, стало ясно, что сервлеты Java и JSP-страницы уже в значительной степени интегрированы в общую картину развития web-приложений на Java. Другой важной особенностью J2EE явилось использование XML для описания web-приложений.

    Наиболее значительное в этой области событие произошло в октябре 1999 года. Компания Sun передала организации Apache весь исходный код API 2.2 для сер- влетов и API 1.1 для JSP-страниц с целью дальнейшей разработки открытых эталонных реализаций контейнеров сервлетов Java и JSP-страниц. Эта разработка не зависит от J2EE и гарантирует постоянное наличие в свободном доступе новейших реализаций интерфейсов API для сервлетов и JSP-страниц.

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

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

    Для многих проектов мы использовали находящийся в свободном доступе небольшой web-сервер —Jakarta-Tomcat (http://jakarta.apache.org), содержащий комплект необходимых разработчику инструментальных средств. Если у вас еще нет web-сервера, то для начала Tomcat является хорошим вариантом. Также мы использовали сервер JRun (www.allaire.com) — как в автономном режиме, так и в качестве дополнения к web-серверам Microsoft PWS и IIS. Еще вы можете испытать сервер Orion (www.orionserver.com), в который включено хорошее учебное пособие по библиотеке тегов JSP.

    Служебные программы и комплекты инструментальных средств для работы с XML, написанные на Java, появляются как грибы после дождя. Для того чтобы придерживаться определенных стандартов, мы использовали версию JAXP 1.0 (Java API for XML parsing — интерфейс API Java для анализа документов XML). Этот пакет можно загрузить с web-сайта java.sun.com. Следующая версия пакета JAXP во время создания этого курса проходила стадию бета-тестирования, так что к моменту выхода курса он, вероятно, уже будет доступен.

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

    Лекция 1. В этой лекции вы найдете введение в XML с объяснениями всех каверзных моментов этого языка и типичных способов его использования. Также в этой лецции приводится обзор двух моделей обработки данных XML с помощью Java — DOM и SAX.

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

    Лекция 3. Эта лекция начинается с обзора интерфейсов API для сервлетов Java и JSP-страниц, используемых для создания динамических web-страниц Затем мы рассматриваем стандартные интерфейсы API Java для извлечения данных из документов XML, после чего мы объединяем все эти функции в сервлете Java, предназначенном для получения информации из каталога и отображения ее в формате HTML. В числе прочих этот сервлет реализует возможность поиска товаров по ключевым словам.

    Лекция 4. В этой лекции мы расширяем классы для представления каталога из лекции 3 и создаем действующую корзину покупателя, которая позволяет покупателю заказывать товары через Интернет. В процессе создания этого приложения мы рассказываем о том, как концепция мониторинга сеанса реализована в сервлетах Java .

    Лекция 5. Теперь, когда у нас имеется корзина покупателя, нам нужно обеспечить возможность получения денег от клиента и оформления заказа (разумеется, с использованием XML). В нашем примере для представления соответствующей информации клиенту используется технология JavaServer Pages.

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

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

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

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

    Лекция 10. В предыдущих лекциях рассказывается о деталях организации ресурсов для web-приложения на Java. В этой лекции мы приводим обзор спецификации Sun для версии API 2.2 сервлетов Java и обсуждаем интерфейсы для Java и XML следующего поколения.

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

    Исходный код для всех этих программ вы найдете в каталоге http://bourabai.kz/xml/cod/, в папках, названия которых соответствуют нумерации лекций. Поскольку подготовка каталога относится к тем видам работы над курсом, которые заканчиваются в последнюю очередь, файлы в каталоге могут содержать исправления или добавления, отсутствующие в листингах, включенных в текст курса.

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

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

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

    Здесь вы найдете советы тех, кто действительно знает решение.

    Язык xml практическое введение

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

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

    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: Отображение вкладки «Разработчик».

    IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

    Расширяемый язык разметки XML. Синтаксис XML. Структура XML документа. Применение XML

    Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Сегодня решил открыть рубрику Заметки о XML и XLST. В которой постараюсь на пальцах объяснить, что такое язык разметки XML. Рассказать о том, что такое XML схемы, подробно остановиться на вопросе применения языка XML. Собственно про сам расширяемый язык разметки можно рассказать в одной или двух статья, все будет зависит от того на сколько объемной получится статья, собственно в это статье я собираюсь поговорить о синтаксисе XML, о представление данных в языке разметки XML, о грамматике, семантике и синтаксисе XML элементов. Так же мы поговорим, о XML тегах и применение XML. Где, зачем и как можно применять XML.

    Что такое XML. Дифирамбы расширяемому языку разметки.

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

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

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

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

    XML документ. Структура XML документа. Что может содержать XML документ.

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

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

    И так в реферате по географии были данные, о том, что Земля круглая и она вертится, биография Галилео Галилея — это все данные. У моего реферата по географии была структура, то есть введение, в котором я рассказал, про что мой реферат и с какой целью я его пишу(естественно, что цель у меня была сугубо корыстная, получить трояк, что бы двойки за четверть не было, но во введение я ее не написал), было заключение, в котором я подвел итоги проделанной работе(нервным ночным копипастам из википедии и с сайтов рефератов и дз), так же для удобства я разбил реферат на несколько логических частей: Биография Галилео Галилея, Планета Земля, Планета Земля как объект Солнечной системы. Все это является структурой моего реферата, так же и в XML мы можем создавать структуру XML документа самостоятельно. Обычно у XML документа древовидная структура, ее можно сравнить с договорами, ну например с договором ипотеке, пункт 1, подпункт 1.1 далее подподпункт 1.1.1, кто оформлял знает, вообщем-то это бюрократическая структура. Все это можно назвать вложенностью или деревом или древовидной структурой, вот примерно такая структура у XML документа.

    Уровень представления XML или представление XML документа. Ну это все очень просто, уровень представления это то как вы видите документ, на экране монитора, в браузере, на принтере и так далее, вернемся к моему реферату, оформляя его я выделял жирным заголовки, сделал их 16 размером шрифта, а так же сделал их курсивными, отступ слева я сделал 20 мм, справа, снизу и сверху по 5 мм. Для текста в реферате я задал шрифт Times New Roman, размером 14, без дополнительных стилей, межстрочный интервал был 1.5, все это можно назвать представлением документа, который можно видеть, как на экране в Ворде, так и после того как я отправил свой реферат по географии на печать. У XML так же имеется представление документа.

    Но у XML есть очень важное отличие от других языков разметки, опять же HTML — это язык описания обычной страничке, где будут расположены элементы, как они будут расположены, размеры этих элементов и прочее. А вот в XML нет уровня представления, при помощи XML можно описать только данные и отношения. Наш ботаник с первой парты, любимчик Надежды Петровны(учитель математике), обязательно спросил бы — Как это можно понять? Или в каком виде XML представляет данные? Ответ на этот вопрос прост — XML ни в каком виде не представляет данные, пока вы этого не захотите и причем документ будет выглядеть так, как этого хотите именно вы, но стандартно в XML этого нет.

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

    XML теги и XML элементы.

    Поскольку XML разрабатывал w3.org, он, как и язык разметки гипертекста HTML, описывает документ при помощи тегов. Тег это слово, которое обрамлено треугольными скобками, вот так — данная конструкция является тегом, теги в XML бывают двух видов, открывающий тег и закрывающий тег, как и в языке HTML, но в HTML есть одиночные теги, а в XML одиночных тегов нет. То есть в XML есть открывающий тег Содержание элемента, которое пишется между тегами . Так же у XML есть закрывающий тег , а между открывающим и закрывающим тегами пишется содержание или контент или значение. В HTML есть одиночные теги, в XML по определению одиночных тегов нет.

    Что бы не было путаницы, я опять же уточню, тег это метка написанная в текстовом редакторе(например, в Notepad++), а элемент это, то что в итоге нам выведется, то есть содержание плюс метка является XML элементом или HTML элементом, в случае если вы открыли HTML-документ. Если в HTML элементы могут быть блочными и строчными, то в XML элементы не делятся никак, просто XML элемент. И понятно, что все эти элементы могут быть вложенными друг в друга:

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