XML

Спецсеминар "Разработка свободного ПО": http://uucode.com/oss2004/. 7-я лекция, 23 октября.

Введение

Семейство. Надо уметь использовать: XML, XPath 1.0, XSLT 1.0 и, наверное, XQuery

XML есть семейство технологий для обработки структурированных данных (особенно деревянных). Метаязык. Универсальность. Аналогия с ASCII.

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

Юмор. 1) XML Sapiens. 2) Н-да. Они бы лучше сначала "XML прямоходящий" и "XML умелый" сделали... 3) XML? ПРЯМОХОДЯЩИЙ? Не, так не бывает.

Ресурсы:

XML

<article id="hw">
 <title>Hello</title>
 <para>Hello, <object>World</object>!</para>
</article>

Методы обработки: SAX, DOM, XPath

SAX:

DOM:

XPath

Простой XPath. Похож на путь к файлу.

/usr/bin/xmllint

Простой XPath. Результат -- множество узлов

/AAA/CCC

// -- поиск по всему поддереву

//DDD/BBB

* -- любое имя

/AAA/*/*/BBB

@ -- атрибут

//BBB/@name

Оси навигации, сокращения

Фильтрация

(/AAA/BBB)[1]
(/AAA/BBB)[last()]

Фильтрация, функции

//bin[vim]
//openssh[.//sshd[@date<20040923]]
//bin/*[contains(name(), 'vi')]

Польза Xpath примерно как польза regexps -- можно и без них, но научившись их использовать, без них никак.

И SAX, и DOM достаточно сложны из-за низкоуровенности. Идеальная обработка: смесь SAX, DOM и XPath. Этим является XSLT.

Другие стандарты

DTD

W3C Schema, RELAX NG

Пространства имён. Всё просто, но спецификация запутана.

<... xmlns:u="eeefff">...<u:type/>...</..>

имя не "u:type", но "{eeefff}type"

XSLT

Рассказать:

Вывод:

XSLT vs свой велосипед: базовая модель проста, но есть очень большой набор "идиоматических выражений". Для XSLT они уже разработаны, узнаваемы (некоторым присвоены имена) и многократно описаны, для велосипеда -- вряд ли.

Модель:

XQuery

Запросы не для XPath

FLWOR ("flower") expressions Функции

Спецификация пока ещё не готова.

Отвлечения

Старт студенческого конкурса Imagine Cup 2005 Корпорация Microsoft объявила о том, что началась регистрация участников третьего международного конкурса проектов в области информационных технологий Imagine Cup 2005. <http://imagine.thespoke.net/>

Про Oxigen -- кто что умеет, кто как документирует

http://paulgraham.com/antispam.html A Plan for Spam, Plan for Spam FAQ, etc.