Технология XSLT

на главную

Жанры

Поделиться:

Технология XSLT

Шрифт:

Предисловие

О чем эта книга?

Сложно переоценить влияние, которое за последнюю пару-тройку лет оказало на информационные технологии появление и распространение расширяемого языка разметки XML (от англ. extensible Markup Language). XML-технологии нашли применение во множестве областей и стали незаменимыми инструментами для многих решений.

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

с этим языком.

Эта книга посвящена одной из таких технологий, языку XSLT. XSLT — это расширяемый язык стилей для преобразований (от англ. extensible Stylesheet Language for Transformations), который используется для описания преобразований структуры документов. XSLT позволяет трансформировать одни документы в другие, пользуясь простыми наборами правил преобразования.

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

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

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

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

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

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

В этой книге XSLT рассматривается совместно с языком XPath (от англ. XML Path Language — язык путей в XML-документах), который используется для обращения к частям XML-документов. XPath играет в XSLT

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

Использование XSLT позволяет сделать разработку преобразований действительно несложным занятием. Преобразования в XSLT — это не более чем наборы правил вида "если обнаружен узел определенного типа, то выполнить следующие действия". Во многих случаях преобразования, для записи которых понадобилась бы не одна страница на процедурном языке программирования, определяются в XSLT буквально в трех строчках.

Естественно, столь простой язык (а XSLT, безусловно, несложный язык как в изучении, так и в использовании) имеет свои границы. Встречаются задачи, решения которых с помощью XSLT либо не существуют вообще, либо они неудобны. В этих случаях можно прибегнуть к расширениям языка, которые позволяют использовать в XSLT-преобразованиях подпрограммы, написанные на более традиционных языках программирования, например — Java или С++.

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

Таким образом, на вопрос "о чем эта книга?" можно ответить так: она написана о прикладных XML-технологиях преобразования, которые призваны облегчить использование структурированных данных в пользовательских приложениях, открывая новые возможности проектам самого различного масштаба. Изучая языки XSLT и XPath, мы на примерах увидим, как заставить XML-технологии работать — просто, удобно и эффективно.

Для кого эта книга?

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

Поскольку XSLT и XPath являются уникальными языками, мало похожими на что-либо еще, знание других языков программирования для их изучения, в принципе, не обязательно, однако знакомство с основами алгоритмизации и базовыми концепциями программирования, конечно же, приветствуется.

Из обычных языков программирования XSLT ближе всего к декларативным языкам типа Lisp и Prolog. Как показывает практика, разработчики, имеющие опыт функционального программирования, вникают в тонкости XSLT немного быстрее остальных. Но это ни в коем случае не означает, что XSLT — сложный язык, доступный лишь избранным, совсем нет. Скорее даже наоборот: XSLT — это простой и понятный язык, работать с которым очень легко и интересно.

Многие из приводимых примеров будут ориентированы на web-решения — в этих случаях хорошую службу может сослужить знание основ web- технологий и языка HTML в частности.

Одна из глав посвящена вопросам использования XSLT совместно с другими языками программирования. Эта информация будет полезна читателям, работающим с такими языками программирования, как Object Pascal, С или С++, Java, JavaScript, VBScript, Python и PL/SQL.

В десятой главе рассматриваются основные принципы создания расширений языка XSLT. Основным языком для создания расширений является Java, потому желательно иметь представление о программировании на этом языке.

Комментарии:
Популярные книги

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Совок 2

Агарев Вадим
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Совок 2

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Попаданка для Дракона, или Жена любой ценой

Герр Ольга
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Попаданка для Дракона, или Жена любой ценой

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III