В хорошем дизайне добавление вещи стоит дешевле, чем сама эта вещь.
Thomas C. Gale
Что такое XML
XML (eXtensible Markup Language) - это, как следует из дословного перевода, расширяемый язык разметки данных. Но не каких-то конкретных данных, а любых структурированных данных, которые можно представить в текстовом виде. Сложно оценить роль, которую XML сыграл и продолжает играть в сфере информационных технологий и, в частности, в отрасли разработки программных продуктов - она велика и даже больше, чем просто велика... Ключевое слово в его определении (аббревиатуре) – расширяемый (eXtensible), и смысл его не в том, что сам по себе XML может куда-то расширяться, а в том, что на его основе можно создавать различные расширения – специализированные языки разметки. Стандарт XML регламентирует лишь то, как должны описываться структурные элементы документа (теги) и связанные с ними атрибуты. Иными словами XML определяет обобщенный синтаксис разметки документа. Расширение XML – это конкретная грамматика, созданная на базе XML и представленная словарем тегов и их атрибутов, а также набором правил, определяющих какие атрибуты и элементы могут входить в состав других элементов. Если бы HTML появился позднее, чем XML, то он, возможно, также бы являлся его расширением. Однако, этого не случилось: HTML является производным другого обобщенного стандарта разметки документов - языка SGML (Standard Generalized Markup Language), отсюда и все синтаксические "послабления" HTML. Например, теги HTML могут не иметь соответствующих закрывающих тегов. Стоит заметить, что эта “несправедливость” частично осталась в прошлом с появлением XHTML. Более подробно про различия XML и SGML можно узнать из сравнения стандартов HTML и XHTML, которое предваряет справочник по HTML/XHTML, также размещенный на сайте codingcraft.ru.
В этой статье я не буду подробно рассматривать синтаксис XML (да и рассматривать особо нечего), а постараюсь сфокусироваться на его применении в программировании и на особенностях обработки XML документов. Буду стараться на примерах проиллюстрировать то, как он "крут", и что выигрывает тот, кто разумно его использует в своем коде. Стоит отметить, что именно "разумное" применение XML может положительно сказаться на качестве вашего программного продукта. Применение XML “без разбору” и “где попало” обычно заканчивается отказом от его использования из-за низкого быстродействия, больших (несоизмеримых с полезным эффектом) объемов занимаемой оперативной памяти и других "побочных эффектов". В заключение представлю несколько разделов о связанных с XML стандартах: о языке запросов к разделам XML документа - XPath, о спецификации описания структуры XML документа - XSD и о способах трансформации XML документов в другие форматы - XSL.

Пример не well-formed XML.
Два уровня синтаксической корректности XML
Необходимо четко понимать, что существует два уровня синтаксической корректности XML документа: правильно построенный (well-formed), и валидный (valid) документ XML. С первым все просто. Если ваш XML документ не является правильно построенным, то он и не является XML документом. Правильно построенный XML документ - это текст, соответствующий его базовому синтаксису. Этот самый синтаксис, надо сказать, очень простой, но его правила не терпят исключений: про отсутствие закрывающего тега я уже упоминал. XML также не может пережить множества корневых элементов в документе и учитывает регистр символов в наименованиях тэгов и атрибутов. Такое отличие в синтаксических ограничениях XML и HTML я для себя объясняю не только порядком их появления на свет, но и различием в предназначениях этих языков разметки или, если угодно, разной степенью ответственности, возложенной на них: XML предназначен для описания и хранения структурированных данных в контексте всевозможных расширений себя самого, а HTML – для настройки представления и форматирования этих самых данных в интернет браузерах. Хотя все, безусловно, несколько сложней, поскольку более корректно сравнивать не XML и HTML, а XML и SGML или XHTML и HTML.
Валидный или действительный XML документ – это правильно построенный XML документ, удовлетворяющий дополнительному - прикладному синтаксису или набору ограничений, состав и семантику (смысловую нагрузку) которых легко можно настроить. Этот набор ограничений, в свою очередь, также представлен правильно построенным XML документом (DTD не в счет, поскольку в этом аспекте данная технология уже устарела) и называется схемой XML документа. Примеры таких схем вы легко найдете в интернете или в разделе про стандарт XSD на этом сайте.
С дальнейшими материалами про XML и связанные с ним компьютерные технологии обработки данных вы можете знакомиться последовательно, переходя по ссылкам "читать далее" (внизу каждого раздела) или сразу выбрать то, что вас интересует в первую очередь в содержании (меню сверху).
Читать далее: применение XML
Задать вопрос
|