Что такое XML на самом деле?

 

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

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

 

номенклатуры каталогов, технических условий для всех Dodge Minivan, когда-либо созданных, и т. д.

¦ Язык XML широко распространен. Компьютерные приложения, написанные на разных языках программирования (например, Java, Visual Basic либо C++) или выполняющиеся под управлением разных ОС и компьютерного оборудования (например, Windows, Mac или Linux), могут применять XML практически одинаково. Это качество делает язык XML отличным решением для обмена информацией между людьми, компаниями и даже компьютерами, которые запрограммированы на автоматическую пересылку данных от одного к другому (средства, подобные последнему, заставляют даже типов, занимающихся управлением цепочками поставок, истекать слюной, когда речь заходит об XML).

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

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

Например, компания Acme Company может создать свой XML-формат для счетов и назвать его Acmelnvoice. Между тем компания Budget Company может сформировать собственный XML-формат счетов и назвать его Budgetlnvoice. Несмотря на то, что оба формата разработаны для хранения данных счета, они могут содержать совершенно разные типы данных. Сила их — в гибкости языка XML.

В то же время эта гибкость XML способна создать проблемы. Предположим, что банк, названный Worldwide Green, установил систему автоматической обработки XML-счетов с определенным форматом. Система работает гладко до тех пор, пока Acme Corporation не отправит свой доморощенный счет. Несмотря на то, что счет компании Acme использует язык XML, он не соответствует XML-формату, на который рассчитывает банк, и поэтому он нарушит работу банковского приложения автоматической обработки счетов. Неожиданно язык XML перестал казаться таким уж полезным.

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

 

Примечание

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

 

Три правила XML

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

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

 

 

Пролог

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

Далее приведен типичный пролог документа, указывающий, что в документе используется версия 1.0 XML-стандарта (наиболее распространенная версия):

<?xml version="1.0"   ?>

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

 

 

Элементы

 

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

Типичный элемент состоит из открывающего и закрывающего тегов. Реальные данные располагаются между этими двумя тегами. Открывающие и закрывающие теги легко узнать, поскольку они используют угловые скобки о. Далее приведен возможный открывающий тег: <Name>

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

 </Name>

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

<Name>Patrick</Name>

 

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

 

 

 

 

Вложенность

 

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

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

<Name>Lisa Chen</Name>

<Age>19</Age>

<Name>Bill Harrison</Name>

<Age>48</Age>

Лучше было бы сгруппировать элементы <Name> и <Age> для каждого человека и поместить их в другой элемент, например, так:

<Person>

<Name>Lisa Chen</Name>

 

<Age>19</Age> </Person>

<Person>

<Name>Bill Harrison</Name>

<Age>48</Age> </Person>

В этом примере приведены два элемента <Person>, каждый из которых содержит сведения о конкретной персоне. Информация об отдельном человеке хранится в элементах <Name> и <Аgе>, вложенных в соответствующий элемент <Person>.

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

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

<?xml version="1.0".?>

<PeopleList>

     <Person>

<Name>Lisa Chen</Name>

<Age>19</Age> </Person>

<Person>

<Name>Bill Harrison</Name>

<Age>48</Age> </Person> </PeopleList>

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

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

 

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

<?xml  version="1.0"   ?>

<PeopleListXPerson><Name>Lisa Chen</Name><Age>19</ AgeX/Person><Person><Name>Bill Harrison</Name><Age>48 </Agex/Person></PeopleList>

 

 

 Более внимательный взгляд на теги

 

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

Самое важное, что вам следует понять о тегах, состоит в том, что создание тегов — ваша задача. Если нужно хранить список имен, можно создать XML-формат, который использует тег <Name>. Одновременно кто-то еще может решить отслеживать фамилию, имя и отчество с помощью другого XML-формата, использующего такие элементы, как <firstName> и <lastName>. В этих элементах может храниться та же информация, что и в вашем элементе <Name>, но они отличаются, и документ, написанный с использованием тегов <f irstName> и <lastName>, несовместим с вашими документами.

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

 

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100