Основы XML для начинающих пользователей. Применение XML во Flash

11 ответов

Я пытаюсь сделать несколько резюме моего опыта работы с XML:

Pros

Формат для чтения:

Каждый может проверить свой контент, просто прочитав его. Это делает его простой в использовании и понятной форме общения. Даже деловым людям нравится это (насколько я знаю в финансовых институтах в течение многих лет), поскольку они это понимают, и они могут легко проверять сообщения, например, в системах обмена сообщениями. Только они могут решить, какая система ошибается. Делает их счастливыми:) Сравните это с JSON . Я думаю, JSON далека от дружественной к читателю, поскольку закрытие скобок сложнее отслеживать, чем закрытие элементов в XML. Вы должны вернуться к странице, чтобы узнать, что было началом. Вам не нужны навыки программирования для понимания XML. Даже ваша бабушка может понять это через полчаса.

Независимость платформы:

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

Великие инструменты для преобразования

Отличный инструмент для проверки с помощью

Против

Многословность

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

Неэффективное использование

Далеко не тривиально, какие объекты (выражения XPath, шаблоны XSL, схемы XSD, синтаксические анализаторы XML и т.д.) имеют какой жизненный цикл. Что можно кэшировать? Многие люди не делают это правильно, чтобы избежать проблем безопасности нитей. И это приведет вас к ужасной медлительности. И я хочу подчеркнуть, что это не проблема технологии, а неправильное использование . Многие люди застряли в старом партере DOM, который является уродливым. Они абстрагировали некоторый слой над ним и создали собственные API для обработки XML, что плохо. Двигайтесь дальше, используйте DOM4j или STAX или JAXB или что-то стандартное.

Ложная свобода создания чего-то особенного

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

Лучшие учебники по XML находятся на ZVON Я думаю. Используйте их, если хотите.

В качестве общей формы для передачи данных. Это были 90-е годы, и все метки были яркими!

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

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

Действительно, что это.

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

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

Он может быть проверен на основе формальных правил грамматики (DTD, XSD...), преобразованных в другую древовидную структуру (XSLT), данные могут быть извлечены различными способами, такими как языки запросов (XQuery), XML может быть построен из дерево (DOM) и многое другое.

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

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

Одна вещь, которую никто не любит в XML, - это многословие. Человек потеряется во всех этих тегах, если имеется более 2-3 уровней отступов. И нет, вы не перестаете видеть все те теги через некоторое время, как люди с круглыми скобками Lisp.

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

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

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

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

Вот именно для создания структуры и существует язык XML . Простой пример:

Зелёное яблоко

Для нас людей сразу всё становится понятно. В голове возникает сразу образ "зелёного яблока ", однако, как объяснить компьютеру, что это яблоко, а не апельсин, человек или наша галактика? Здесь вновь приходит на помощь XML , где мы можем создавать любые теги, давая чётко понять, где яблоко, где апельсин, где человек, а где наша галактика. Надеюсь, понятно объяснил.

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

  • Файл-настроек . Настройки в XML-файле очень легко считывать и записывать. По этой причине на Вашем компьютере находятся сотни XML-файлов .
  • Мост для обмена данными между программами, написанными на разных языках. Очень важная особенность, следующая из универсальности языка, и это регулярно используется в сложных системах.
  • Хранение данных . Фактически, это некий аналог базы данных, но не требующий СУБД (например, MySQL ). А благодаря языку запросов XPath становится возможным легко общаться с этой "базой данных ".

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

Файл с расширением.xml является файлом Extensible Markup Language (XML). Это действительно просто текстовые файлы, которые используют пользовательские теги для описания структуры и других функций документа.

Что такое XML

XML – это язык разметки, созданный консорциумом World Wide Web Consortium (W3C) для определения синтаксиса кодирования документов, которые могут быть прочитаны людьми и машинами. Он делает это с помощью тегов, которые определяют структуру документа, а также то, как документ должен храниться и транспортироваться.

Проще всего сравнить его с другим языком разметки, с которым вы можете быть знакомы, – язык гипертекстовой разметки (HTML), используемый для кодирования веб-страниц. HTML использует предопределенный набор символов разметки (короткие коды), которые описывают формат содержимого на веб-странице.

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

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

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

  • RSS и ATOM описывают, как приложения должны обрабатывать веб-каналы.
  • Microsoft .NET использует XML для своих файлов конфигурации.
  • Microsoft Office использует XML в качестве основы для структуры документа.

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

Как открыть XML-файл

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

Используйте текстовый редактор при регулярной работе с XML

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


Использование веб-браузера для просмотра XML-файла

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

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

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

Использование онлайн-редактора для XML-файлов

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

TutorialsPoint.com , XMLGrid.net и CodeBeautify.org – позволяют просматривать и редактировать XML-файлы. После завершения редактирования можно загрузить измененный XML-файл или даже преобразовать его в другой формат.

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

Например, на рисунке ниже слева находится наш полный XML-файл, а на панели результатов отображается представление в виде дерева, так как мы нажали кнопку Tree View посередине.

Используйте кнопку Browse для загрузки XML-файла с вашего компьютера или кнопку Load URL для извлечения XML из интернет-источника

Кнопка Tree View отображает данные в хорошо отформатированной древовидной структуре на панели результатов, со всеми тегами, выделенными оранжевым цветом, и атрибутами справа от тегов.

Beatify отображает ваши данные в аккуратном, легко читаемом виде.

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

И, наконец, Вы можете использовать кнопку XML to JSON для преобразования XML в формат JSON, и кнопку Export to CSV для сохранения данных в виде файла значений, разделенных запятыми, или кнопку Download для загрузки любых изменений, которые вы сделали в новом XML-файле.

Как правильно использовать XML

XML как инструментальное средство

Часто используемые сокращения
  • CDATA: Character Data (символьные данные)
  • DOM: Document Object Model (объектная модель документа)
  • E4X: ECMAScript for XML (ECMAScript для XML)
  • IDE: Integrated Development Environment (интегрированная среда разработки)
  • W3C: World Wide Web Consortium (консорциум WWW)
  • XML: Extensible Markup Language (расширяемый язык разметки)
  • XSLT: Extensible Stylesheet Language Transformations (расширяемый язык преобразований таблиц стилей)

В настоящее время XML воспринимается как нечто само собой разумеющееся. Он повсюду! Но если посмотреть со стороны, то можно увидеть, что это мощная технология. Есть интегрированные среды разработки, которые помогают строить XML-деревья. Есть целый ряд технологий проверки корректности XML-кода. Есть XSLT – специальный язык преобразования XML. Поддержка XML встроена даже непосредственно в синтаксис некоторых языков (как, например, E4X в ActionScript).

Но у XML есть и обратная сторона. Его можно использовать неправильно. Его можно использовать плохо. Он может быть чрезмерно сложным. Он может быть недоопределенным. С ним может быть трудно работать. Что нужно сделать для более эффективного использования этой мощной технологии? В своей статье я дам 10 советов, которые помогут ответить на этот вопрос.

Не используйте XML в качестве имени файла или корневого тега

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

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

Не переопределяйте обобщенные или специфичные для языка конструкции

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

Этим я хочу сказать, что специфичные для языка конструкции нужно хранить вне XML. Как часто вы встречали 07-18-2010 ? Что такое NSDate? Ага, это имя класса для работы с датами на прикладной платформе. Что произойдет при смене платформы или языка? Потребуется преобразование тегов NSDate во что-то другое, что используется на новой платформе.

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

Еще одно важное правило – избегайте использования в XML излишних обобщений. Взгляните на следующий пример ():

Листинг 1. Обобщенное дерево узлов
jack

Что это означает? Я понял, что это список пользователей. Но человеку трудно это читать и редактировать. Еще хуже то, что этот XML-код очень трудно использовать в средствах, подобных XSLT, или проверять его корректность при помощи схемы. В показано, что на самом деле означает приведенный выше XML-код.

Листинг 2. Более эффективное дерево узлов
jack

Разве так не лучше? Код говорит то, что означает, и означает то, что говорит. Его легче читать и анализировать. Его легче проверять и преобразовывать при помощи XSLT. Он даже меньше по размеру.

Не делайте файлы слишком большими

Знаю, что вы скажете: "Дисковая память стоит дешево. За десять центов я куплю еще один терабайт". Это верно. Вы действительно можете создавать гигабайтные XML-файлы. Но программирование – это постоянные компромиссы. Приходится менять дисковое пространство на время или память на время. А при работе с огромным XML-файлом вы получаете худшие стороны и того, и другого. Файл занимает много места на диске, а на его анализ и проверку уходит много времени. Кроме того, большой файл исключает использование DOM-анализатора, поскольку построение дерева требует бесконечного времени и огромного количества памяти.

Какова же альтернатива? Можно создать несколько файлов. Один выступает в качестве индекса, а другие содержат большие ресурсы, которые, возможно, будут нужны не всем пользователям этого XML. Другой вариант– вынос всех больших фрагментов CDATA из XML-файла и помещение их в свои собственные файлы с собственными форматами. Если вы хотите хранить все данные вместе, запакуйте все файлы в новый файл с новым расширением. Любой популярный язык программирования имеет модули, облегчающие быструю упаковку и распаковку файлов.

Не используйте пространства имен, если в этом нет острой необходимости

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

Однако пространства имен очень затрудняют синтаксический анализ и управление данными. Они сбивают с толку расширения языков программирования, такие как E4X. Они затрудняют использование XML в XSLT. Наконец, они делают XML-файлы намного более трудными для чтения.

Поэтому используйте пространства имен XML, только если это действительно необходимо. Не используйте их просто потому, что "XML позволяет это делать". XML прекрасно работает и без пространств имен.

Не используйте специальные символы

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

Используйте XML Schema

Синтаксический анализ XML является непростой задачей. Для точного анализа необходимо проделать большую работу по защите кода от возможного отсутствия и некорректного использования тегов или атрибутов. Это дополнительная работа по написанию кода, дополнительная сложность, а также затенение реальной бизнес-логики, являющейся вашей главной заботой. Как избежать этого? Проверяйте XML перед его использованием. Для этого можно использовать несколько стандартов. Можно указать Document Type Definition (DTD) или XML Schema (ссылки на информацию о DTD и XML Schema приведены в разделе ). Лично я нахожу XML Schema намного более простой в работе, но если вы новичок в этом деле, попробуйте различные системы проверки корректности.

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

Нумеруйте версии

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

Сочетайте узлы и атрибуты

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

Листинг 3. Список пользователей
1 jack

Должен ли быть тегом? Я утверждаю, что он должен быть атрибутом. Код становится более коротким и осмысленным, появляется возможность искать пользователя по идентификатору при помощи простого XPath-выражения (/users/user[@id=1]).

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

Листинг 4. Более удобный список пользователей
jack

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

Используйте CDATA, но не злоупотребляйте этим

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

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

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

Храните необязательные данные в отдельной области

До сих пор я рассказывал об XML-документах с жестким форматом. Я даже рекомендовал использовать технологию проверки корректности, (например, XML Schema), гарантирующую жесткую структуру. Тому есть веская причина: структурированные данные легче анализировать. А если нужна определенная гибкость? Я рекомендую размещать необязательные данные в отдельном блоке в своем собственном узле. Взгляните, например, на .

Листинг 5. Неупорядоченная запись о пользователе
jack d herrington 8:00

Эта запись содержит все ожидаемые данные о пользователе. Я согласен с first, middle, last, но зачем здесь runningpace? Это необходимо? Будете ли у вас много таких полей? Будут ли они расширяемыми? Если ответ на все эти вопросы утвердителен, я порекомендовал бы сделать так (см. ):

Листинг 6. Хорошо структурированная запись о пользователе
jack d herrington 8:00

При таком подходе вы можете иметь сколько угодно полей, не загромождая пространство имен родительского элемента . Вы даже можете проверить корректность этого документа, а также обратиться к определенному полю при помощи XPath-выражения (//user/userdata/field[@name="runningpace").

Заключение

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

По существу, стандартизация дает возможность взаимодействовать между собой разнородным предметам – фонарику и батарейкам, Macromedia Flash и серверу многопользовательской игры, и так далее. Также и во Всемирной сети, где каждую секунду перемещаются огромные объемы данных, чрезвычайно важно стандартизировать способы обмена данными между системами. Мощный и простой в использовании XML очень быстро становится таким общепринятым стандартом.

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

Что будет изучаться

В этом уроке :

  • Формат XML
  • Отсылка XML-данных на сервер и загрузка их с сервера
  • Создание нового объекта XML
  • Применение методов, свойств и событий объекта XML
  • Организация соединения с сокет -сервером при помощи Flash

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

Время выполнения

На выполнение этого урока требуется примерно полтора часа.

Файлы урока

Файлы-носители :

Стартовые файлы :

Lesson12/Assets/LoginRegister1.fla Lesson12/Assets/Chat1.fla

Законченные проекты :

LoginRegister2.fla Chat2.fla

Основы xml

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

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


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

В синтаксисе XML , подобно HTML , используются теги, атрибуты и значения – но на этом сходство и заканчивается. Тогда как в HTML используются заранее определенные теги (например, body, head или html ), в XML пользователь создает свои собственные, а не выбирает готовые имена из библиотеки. Давайте для начала рассмотрим вот этот простой документ XML :

Kelly Makar Mike Grundvig Free Makar

Каждый тег XML называется узлом ( node ), набор данных в формате XML называется документом XML . В нашем документе-примере имеется корневой узел MyFriends и три дочерних узла. Каждый XML-документ может содержать только один корневой узел. Первый из дочерних узлов имеет имя узла Name и значение узла Kelly Makar . Слово Gender в каждом из дочерних узлов – атрибут . Атрибуты необязательны; каждый узел может иметь неограниченное число атрибутов. Обычно атрибуты используются для размещения небольших порций информации, которые необязательно отображать на экране (например, идентификационный номер пользователя).


Как вы видите в этом примере, теги (которые мы сами же создали и описали) придают смысл порциям информации (Kelly Makar, Mike Grundvig и Free Makar).

Следующий XML-документ являет более сложный пример структурирования.

Kelly Makar 121 Baker Street Some City North Carolina Tripp Carter 777 Another Street Elizabeth City North Carolina

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

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