Основы XML

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

XML является стандартным способом представления структурированной информации с тем, чтобы упростить работу за компьютером и упростить способы написания и интерпретации данных. Аббревиатура XML расшифровывается следующим образом: расширяемый язык разметки. Стандарт XML доступен по адресу www.w3.org/XML/.

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

<song> 
    <title>What you know?</title> 
    <artist>Steve and the flubberblubs</artist> 
    <year>1989</year> 
    <lastplayed>2006-10-17-08:31</lastplayed> 
</song>

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

<album> 
    <title>Questions, unanswered</title> 
    <artist>Steve and the flubberblubs</artist> 
    <year>1989</year> 
    <tracks> 
        <song tracknumber="1" length="4:05"> 
            <title>What do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:31</lastplayed> 
        </song> 
        <song tracknumber="2" length="3:45"> 
            <title>Who do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:35</lastplayed> 
        </song> 
        <song tracknumber="3" length="5:14"> 
            <title>When do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:39</lastplayed> 
        </song> 
        <song tracknumber="4" length="4:19"> 
            <title>Do you know?</title> 
            <artist>Steve and the flubberblubs</artist> 
            <lastplayed>2006-10-17-08:44</lastplayed> 
        </song> 
    </tracks> 
</album>

Обратите внимание, что данный XML-документ содержит внутри себя другие полные XML-структуры (такие как теги song и их дочерние элементы). Здесь также представлены другие XML-структуры, такие как атрибуты (tracknumber и length в тегах song) и теги, содержащие другие теги вместо данных (такие как теги tracks).

Начало работы с XML

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

<song tracknumber="1" length="4:05"> 
    <title>What do you know?</title> 
    <artist>Steve and the flubberblubs</artist> 
    <mood>Happy</mood> 
    <lastplayed>2006-10-17-08:31</lastplayed> 
</song>

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

<title>

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

</title>

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

<lastplayed/>

идентичен такому элементу:

<lastplayed></lastplayed>

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

<song length="4:19"></song>

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

Более подробно о XML

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

Классы ActionScript для работы с XML

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

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

  • XMLList: представляет набор XML-элементов. Объект XMLList используется при наличии нескольких XML-элементов одного уровня (находящихся на одном и том же уровне и принадлежащих одному и тому же родительскому элементу в иерархии XML-документа). Например, экземпляр XMLList был бы самым простым способом для работы с таким набором XML-элементов (предположительно содержащихся в XML-документе).

    <artist type="composer">Fred Wilson</artist> 
    <artist type="conductor">James Schmidt</artist> 
    <artist type="soloist">Susan Harriet Thurndon</artist>

Для более расширенного использования пространств имен XML в ActionScript также имеются классы Namespace и QName. Дополнительные сведения см. в разделе «Использование пространств имен XML».

Помимо встроенных классов для работы с XML, в ActionScript 3.0 также имеется несколько операторов, отвечающих за особые функции доступа к XML-данным и обращения с ними. Данное направление работы с XML с привлечением названных классов и операторов известно под названием ECMAScript для XML (E4X), согласно определению спецификации ECMA-357 версии 2.

Важные понятия и термины

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

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

Пустой элемент
XML-элемент, который не содержит дочерних элементов. Пустые элементы часто создаются в качестве самозакрывающихся тегов (к примеру, <element/>).

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

Узел
Еще одно название XML-элемента.

Атрибут
Именованное значение, связанное с элементом, вписанным в открывающий тег элемента в формате attributename="value", а не в отдельный дочерний элемент, вложенный внутрь элемента.