В начале мая в истории XML произошло самое крупное событие с момента утверждения стандарта на этот язык в 1998 г. На Десятой международной конференции World Wide Web, прошедшей в Гонконге, была наконец официально представлена XML Schema в качестве рекомендации Консорциума Всемирной паутины. Тем самым завершен трехлетний этап стандартизации способов описания структуры XML-документов и описания типов данных, содержащихся в их полях.
Итак, долгожданная схема XML хоть и с большой задержкой, но появилась. Теперь можно ждать бурного роста популярности этого языка - ведь обмен XML-документами между организациями и их верификация станут гораздо проще.
Утверждение XML Schema в какой-то мере можно сравнить с открытием Розеттского камня. Его обнаружение в 1799 г. позволило понять смысл древнеегипетских иероглифов, наведя тем самым мосты через двухтысячелетний исторический период. Подобно этому камню XML Schema дает организациям возможность фиксировать значение XML-документов и проложить мосты через организационные границы и архитектуры ИТ, которые не удается связать другими способами.
XML Schema должна стать краеугольным камнем новой архитектуры электронной коммерции, которую мы создаем сегодня совместными усилиями. Более того, она призвана превратиться в ключевой компонент делового взаимодействия и обеспечить налаживание тесных связей между торговыми партнерами.
Разговор на общем языке
XML Schema обеспечивает обмен документами XML между организациями.
Три года, прошедшие между разработкой расширяемого языка разметки и появлением Схемы, оказались достаточным сроком, чтобы вызвать серьезное раздражение потребителей; наметился даже ряд расколов (корпорация Microsoft и некоторые другие производители, скажем, нашли собственные пути реализации предварительных проектов стандарта и выпуска продукции на их основе). В результате рынок сегодня полностью созрел для нового стандарта.
Правда, нет худа без добра. Долгая разработка XML Schema дала производителям время хорошо разобраться в спецификации и заблаговременно приступить к разработке совместимого с ней ПО. Благодаря этому можно ожидать скорого появления совместимого (или почти совместимого) с этой схемой авторского инструментария и серверов.
Всего понемногу
Длительное обсуждение спецификации в комитете дало и еще один неожиданный результат: XML Schema вобрала в себя всего понемногу, поэтому создать полностью совместимый с ней синтаксический анализатор будет не так-то просто. Такой инструментарий должен состоять из массы различных компонентов - только так можно будет обеспечить поддержку всех возможностей нового стандарта.
К счастью, для составления конкретных документов на основе XML Schema можно использовать весьма ограниченное подмножество из тех ее средств, что действительно необходимы автору. В Схеме, видимо, найдется немало излишеств (ими могут оказаться, к примеру, нулевые элементы или явные типы), но это не страшно. Со временем, не будучи востребованы пользователями, они канут в Лету сами по себе.
Консорциум Всемирной паутины недавно опубликовал еще одну свою рекомендацию. Она касается порядка деления языка XHTML (Extensible HTML - расширяемый HTML), предлагаемого консорциумом вместо HTML, на строго описанные подгруппы. Такая систематизация позволяет четко определять, какие составные данного языка поддерживаются тем или иным браузером XHTML (например, встроенным в сотовый телефон), а какие нет.
XML Schema позволяет создавать файлы со схемой, описывающей элементы документа XML.
В приведенном примере представлено описание комплексного элемента типа USAddress,
в состав которого входят элементы name, street и city
Нечто подобное предусмотрено и в XML Schema на тот случай, если полная ее реализация покажется кому-то из производителей чересчур обременительной (хотя IBM, Microsoft, Oracle и другие крупные компании уже заявили о своем намерении поддерживать эту спецификацию в полном объеме).
По оценкам eWeek Labs, в несколько ближайших лет опора на XML Schema станет неотъемлемой частью стратегии многих компаний в области обмена информацией (примерная реализация системы на базе централизованного репозитория схем XML Schema представлена на рисунке).
Необходимость XML Schema для электронного бизнеса не вызывает ни малейших сомнений. Она является естественным продолжением и развитием языка XML - наиболее важной технологии, помогающей поддерживать связь между компаниями.
Что такое XML Schema
Спецификация XML Schema (с ней можно познакомиться по адресу; www.w3.org/XML/Xchema# dev) состоит из двух частей.
В первой части определяется язык XML Schema Definition, используемый для описания высокоуровневой структуры документов XML. Вторая содержит список допустимых типов данных, поддерживаемых этим языком (которые, следовательно, можно применять и в самих документах XML).
Разработчикам очень важно понять, что документы XML Schema представляют собой, по существу, метаинформацию XML. Они не содержат никаких данных для конечного пользователя, а только описывают структуру документов XML.
Используя язык XML Schema Definition в комплексе с потоком данных XML, синтаксический анализатор XML может автоматически проверить не только синтаксис поступающих данных, но и их структуру и логическую корректность. А это большой шаг вперед по сравнению с не слишком понятным и не столь мощным стандартом XML Document Type Definition, на смену которому идет XML Schema.
Новая спецификация, например, поможет компаниям выявить целый ряд ошибок: пропуск данных в полученном файле XML, нарушение их форматирования (скажем, выпадение первых двух цифр года или буквенные строки в цифровых полях), явно неверные данные (например, слишком большие или слишком малые числа, которые заведомо не могут быть корректными).
XML Schema способна описывать широчайший диапазон характеристик и использовать богатый набор основных типов данных - здесь и целые числа, и числа с плавающей запятой, и строки символов, и время, и даты. Кроме того, она дает возможность устанавливать приемлемые рамки для значений, описывать стандартные значения отсутствующих данных, вводить требуемые элементы данных.
Описывает XML и комплексные типы, состоящие из групп простых типов (допустим, тип “адрес”).
Для проверки корректности данных здесь можно использовать регулярные выражения, а документы XML Schema способны унаследовать характеристики других таких же документов и допускают частичное их изменение, что очень важно для объектно-ориентированного программирования.
В то же время XML Schema не позволяет проверить (путем обращения к базе данных, например) истинную корректность документов, внешне безупречных. Этот недостаток уже пытаются восполнить некоторые производители, в том числе фирма Data Junction, которые начали включать подобные функции в свои продукты.
В силу того, что XML Schema помогает обмениваться высокоуровневыми описаниями структуры данных XML, компании набросились на новую спецификацию так, будто ничего другого и в природе не существует.
Отраслевые описания документов XML в формате XML Schema уже находят поддержку и в централизованных репозиториях информации о формате файлов XML, например, в BizTalk корпорации Microsoft (познакомиться с этим продуктом можно на узле www.biztalk.org).