Краткий курс XML

Материал из FictionBook
Перейти к: навигация, поиск

English

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

Зачем мне XML?

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

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

Что есть XML?

Это универсальный язык структурной разметки. Он не является единственным, но на данный момент может считаться наиболее перспективным.

Что отличает XML от других языков разметки?

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

Эта простота обеспечивается несколькими особенностями языка XML:

  1. Интуитивной простотой и понятностью;
  2. Строгостью.

Интуитивная понятность

Вы открываете пришедший неизвестно откуда файл и понимаете, что к чему. Например, вот файл с описанием модуля PERL:

<SOFTPKG NAME="DBD-mysql" VERSION="1,2212,0,0">
  <TITLE>DBD-mysql</TITLE>
  <ABSTRACT>MySQL driver for the Perl5 Database Interface (DBI)</ABSTRACT>
  <AUTHOR>Jochen Wiedmann (joe@ispsoft.de)</AUTHOR>
  <IMPLEMENTATION>
    <DEPENDENCY NAME="DBI" VERSION="1,08,0,0" />
    <DEPENDENCY NAME="Data-Dumper" VERSION="0,0,0,0" />
    <DEPENDENCY NAME="Data-ShowTable" VERSION="0,0,0,0" />
    <OS NAME="MSWin32" />
    <ARCHITECTURE NAME="MSWin32-x86-multi-thread" />
    <CODEBASE HREF="D:/My_WWW/MySQL/DBD-mysql-1.2212.x86.tar.gz" />
  </IMPLEMENTATION>
</SOFTPKG>

(файл взят с сайта activestate)

Я открыл этот файл и исправил одну строку (<CODEBASE>). Мне не потребовалось для этого читать мануалы или скачивать программы-анализаторы. Любой документ XML должен соответствовать этому принципу.

Строгость

  1. XML документы, как и документы html, размечаются тегами - маркерами, окруженными знаками <> (<body>, <table>). Но в отличие от html, в документе xml можно использовать любые теги (типа <мой_кульный-тег>).
  2. Разметка в документе XML используется для выделения структуры и только для этого. Представление документа полностью выносится из документа и обрабатывается отдельно. Для любого документа XML можно создать бесконечное множество представлений (для этого используются CSS и XST-стили).
  3. Структура документа XML жестко задана и не может быть нарушена. Например, такое сочетание тегов, как <I> <B></I> </B> является допустимым (хотя и ошибочным) в html и будет адекватно отображено в браузере (например). В XML же такое сочетание тегов вызовет сообщение об ошибке, и документ обработан не будет. Любой вложенный тег должен быть закрыт прежде, чем родительский.
  4. Теги в XML чувствительны к регистру. То есть <i> и <I> в XML - не одно и то же.
  5. Документы XML помимо корректной вложенности тегов (well-formed, правильный XML) имеет еще одну степень структурированности. Можно задать, например, что тег <I> будет встречаться только внутри тега <PARAGRAPH>, а внутри тега <PARAGRAPH> может находиться только текст и тег <I>. Любой документ, в котором это правило будет нарушено, считается невалидным и при его обработке никаких гарантий не дается - в лучшем случае будет выдана ошибка. Можно задать теги, которые должны обязательно присутствовать в конкретном месте документа. Можно задать набор тегов, только один из которых может быть использован внутри тега, или указать, какой тег за каким должен следовать.

Ну и зачем все это?

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

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

Дмитрий Грибов

Также смотрите:

Школа XML - подробное русское описание XML в школе консорциума W3C (IE 5.5+)

XML в 10 тезисах - перевод статьи XML in 10 points от W3C.

Информация о текущем состоянии стандарта на сайте W3C.