ORACLE MAGAZINE
Июль Поиск
Российское Электронное Издание

Общая методология
Новости и события
Опыт пользователей
Oracle Applications
Высокие технологии
Постоянная экспозиция
Мастерская разработчика
Кабинет администратора
Полезные ссылки
Архив







       ВЫСОКИЕ ТЕХНОЛОГИИ

Введение в XML

1 июля 2000 г.

Oracle Magazine, #6/1999

Разработчики и АБД Oracle должны взять на вооружение ряд новых, имеющих стратегическое значение, стандартов и технологий.

На момент забудьте о XML, SGML, HTML или любой другой аббревиатуре, инициалах и акронимах. Вместо этого подумайте о столь частом раздражении, которое охватывает вас, когда вы подаете в свой банк заявление о предоставлении займа. Вы думаете: "Мой бухгалтер и все финансовые учреждения, с которыми я имел дело многие годы, включая “бегемота”, который приобрел эту региональную контору, уже обладают всей этой информацией. Почему я должен предоставлять ее опять?"

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

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

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

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

Что такое XML?

XML имеет прямое отношение к спецификации SQML (Standard Generalized Markup Language), который с 1986 года является стандартом ISO. SGML является основой многих систем обработки документов высокого уровня. SGML предоставляет собой средство для создания новых языков разметки, ориентированных на различные цели, например, HTML (HyperText Markup Language) – это язык разметки на основе SGML.

Но если HTML предназначен только для показа гипертекстовых страниц в браузерах, то XML был предложен для создания новых языков разметки для новых типов документов. Это означает, что в отличие от HTML с его ограниченным набором типов элементов: <TITLE>, <H1>, <H2> и так далее, XML позволяет пользователям определять новые элементы для обработки информации из их предметных областей.

Спецификация XML 1.0 (доступная на http://www.oracle.com/oramag/oracle/00-Jan/www.w3c.org/xml) определяет алгоритмы работы процессора XML, создание типов документов и наборов тэгов (tag sets), построение документов XML.

Банк, предположим, использует XML для создания типа документа, называемого LoanApplication (приложение обработки займов). Для этого LoanApplication необходимо определение типа документа (document-type definition (DTD)), содержащее сущности (entities), определение элементов, списков атрибутов и других тэгов, которые применимы к документам XML, которые, в свою очередь, являются приложениями обработки займов. Точно также, как программист должен объявить переменные, прежде чем использовать их в программе, создатель документа XML должен объявить тип документа в начале спецификации (content) XML, а также сущности, элементы и атрибуты и определить отношения между ними в DTD.

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

<?XML version="1.0" encoding="UTF-8"?>

<!DOCTYPE LoanApplication[

<!ENTITY LoanCust(

<!ELEMENT ApplicantName (

<!ELEMENT ApplicantID (

<!ELEMENT ApplicationDate (

<!ELEMENT BankID (

]>

....

<ApplicantID>999-99-9999

<BankID>90-78/1211

<ApplicationDate>15-JAN-2000

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

<?XML version="1.0" encoding="UTF-8"?>

<!DOCTYPE LoanApplication "Loans.dtd">

...

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

<entity id="custType">

<name> cust

<attribute primary_key=1>

<name>cust_no

<type> number

<length> 10

</attribute>

<attribute>

<name> cust_name

<type> char

<length> 25

<comment>Customer last name

</attribute>

</entity>

Раз некоторый DTD существует, компьютерная система может использовать программу-разборщик (parser-software), которая просматривает входной поток данных, осуществляет проверку на соответствие заданному типу документа и выбирает данные (the content) из тэгов. Когда процессор XML разбирает входной поток, он отображает результаты согласно модели документ-объект (document-object model (DOM)) – иерархическому деревообразному объекту – для дальнейшей обработки этим приложением. В качестве альтернативы вы можете использовать интерфейс Простого API для XML (SAX - Simple API for XML), который использует модель программирования, управляемого событиями. Оба варианта применимы в зависимости от конкретных обстоятельств.

После того, как система разобрала входной поток XML в иерархические узлы объектов согласно DOM (иерархические, с отношениями родитель/наследник внутри узлов), приложение (или ряд приложений) могут получить доступ к этим объектам для дальнейшей обработки. Такая обработка может включать адаптацию (rendering) содержания для различных целей, например, для Web-браузера, электронной почты, дисплея пейджера, сотового телефона или форматирование для ввода и интеграции с системами планирования ресурсами предприятия (ERP) или даже для “унаследованных” приложений мейнфреймов. Способность разобрать один раз и адаптировать для многих различных медиа-сред и приложений в большой степени зависит от применения стилей страниц (style sheets), созданных благодаря использованию спецификаций Extensible Stylesheet Language (XSL), который становится еще одним стандартом в наборе стандартов XML.

Что такое XSL, XSLT, XCetera?

Впервые принятый консорциумом W3C (World Wide Web Consortium; www.w3c.org) в феврале 1998 года, XML с тех пор эволюционировал из рамок единого языка разметки в средство реализации концепции полной среды (complete framework), которая включает почти 20 предложений, рекомендаций, спецификаций для дополнения основных спецификаций языка XML. (Некоторые из них кратко обсуждаются в этой статье, но для полной информации следует обратится к W3C). Консорциум W3C определяет развитие XML и имеющих отношение к нему рекомендаций, предложений и спецификаций; предоставляет библиотеку технических материалов и рабочих проектов; спонсирует рабочие группы, которые появляются в новых областях:

  • Спецификация XSL определяет словарь XML для спецификации семантики форматирования.
  • К XSL примыкает язык XSL Transformation (XSLT), преобразующий одни типы документов XML в другие типы документов XML. (Процессор XSLT встроен в Oracle XML процессор.) XSLT придуман для использования в соединении со стилями страниц XSL, для адаптации потока XML в формат, соответствующий целевому назначению.
  • В настоящее время в рабочей группе по статусу находятся предложения по языку определения схемы XML, которые будут обеспечивать более глобальный и эффективный способ взаимодействия с DTD. Прежде всего, для обеспечения прозрачного взаимодействия необходимо соглашение о стандартах для структур и форматов файлов.
  • Спецификация XML о “Пространстве имен” (Namespace), формальная рекомендация W3C с начала 1999 года, позволяет множеству приложений совместно использовать словарь разметки. Документ XML связывается с namespace, благодаря использованию общепринятого идентификатора ресурса, как правило URL.

Oracle Internet Platform и XML?

Корпорация Oracle была лидером различных инициатив по развититию XML, будучи активным членом консорциума W3C и спонсором-основателем XML.org, независимого общественного ресурсом, который является сайтом эталонов для словарей XML, DTD, схем и пространств имен. Она также принимает активное участие в работе подразделения консорциума W3C по стандартизации схемы XML (XML Schema), признавая тем самым, что стандарты схемы необходимы для достижения долгосрочной глобальной интеграции приложений и связей В2В (business-to-business – “бизнес-бизнес”).

Помимо работы в комитетах по стандартизации XML, корпорация Oracle через сеть Oracle Technology Network (OTN; http://technet.oracle.com) предоставляет разработчикам (бесплатно) все необходимое ПО, с помощью которого они могут приступить к созданию XML-приложений. Это ПО состоит их XML-разборщиков для Java (версии 1. и 2), C, C++ и PL/SQL. Эти разборщики соответствуют стандарту W3C для XML 1.0 и поддерживают интерфейс SAX в дополнение к требуемой в XML 1.0 модели программирования DOM.

Вы можете также скачать с OTN утилиту корпорации Oracle: XML SQL Utility for Java. Эта утилита значительно упрощает задачу преобразования записей базы данных в элементы XML и наоборот. Эта SQL-утилита может генерировать документ XML из результатов SQL-запросов и может записывать данные из входного потока XML в таблицы и представления базы данных.

Там же можно получить Oracle Class Generator for Java, который создает классы из DTD для обеспечения программного конструирования XML-документов, а также простые Java-сервлеты, которые дают представление о функциональности и возможностях предложенной Oracle XML-технологии.

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

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

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

Келли Вайсет (kwiseth@us.oracle.com) – технический редактор Oracle Publishing.

Чтобы узнать больше, посетите консорциум W3C (http://www.w3c.org/),

XML.org (xml.org) и Oracle Technology Network (http://technet.oracle.com/).



Материал номера:
Новый тест для специалистов по Oracle


Колонка главного редактора:

Oracle открывает третье тысячелетие.

 Письмо в редакцию
 


Человек месяца: Беседа с руководителями ИВЦ АИС и WEB-центра “Омега”
Oracle: от МВД до РПЦ