Как визуализировать xml файл

Обновлено: 04.07.2024

Если да, то как я могу это сделать?

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

Вот пример сгенерированной диаграммы

Программное обеспечение можно загрузить с

  1. Перейдите в папку dist/lib .
  2. Запустите следующую команду java -jar xsdvi.jar <input1.xsd> [<input2.xsd> [<input3.xsd> . ]] [style]

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

Встроенный просмотрщик Oracle JDeveloper 11g на мой взгляд превосходит тот, который доступен для Eclipse (который в дополнение к другим неблагоприятным точкам сравнения я мог получить только для установки Indigo, но не для Juno). Если я не ошибаюсь, Oracle делает JDeveloper доступным бесплатно (требуется только регистрация в OTN).

Вы можете использовать XMLGrid Онлайн-просмотрщик, который обеспечивает отличную поддержку XSD и многие другие функции:

  • Отобразить XML-данные в сетке данных XML.
  • Поддерживает типы файлов XML, XSL, XSLT, XSD, HTML.
  • Легко изменять или удалять существующие узлы, атрибуты, комментарии.
  • Легко добавлять новые узлы, атрибуты или комментарии.
  • Легко развернуть или свернуть дерево XML node.
  • Просмотр исходного кода XML.

В Linux (с моно, доступным через apt-get на Debian) и Windows:

Если вы находитесь в Windows, я рекомендую вам посмотреть:

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

Это изображение создается с помощью инструмента редактирования XML Schema, такого как Altova XMLSpy.

Существует целый ряд XML-инструментов, каждый из которых будет включать графический XSD Viewer. Я упомянул XML Spy просто потому, что это лидер бренда. Также многие общие IDE, такие как Eclipse, Visual Studio и Oracle JDeveloper, смогут выполнить этот трюк.

Мы предлагаем инструмент под названием DocFlex/XML XSDDoc, который позволяет вам одновременно пользоваться обоими вещами:

  • Чтобы иметь представление диаграммы вашей XML-схемы
  • Чтобы все эти диаграммы были встроены (и гиперссылки) в документацию с очень сложной XML-схемой

Диаграммы на самом деле генерируются не нами, а Altova XMLSpy. Мы внедрили Интеграция с XMLSpy (при полной поддержке всех гиперссылок):

Все это обеспечивает функциональность, не предлагаемую ни одним поставщиком прямо сейчас на рынке!

Некоторые наши клиенты были настолько впечатлены, что приобрели дополнительную лицензию для XMLSpy только из-за нашего инструмента. (Это не шутка!)

В настоящее время мы также реализовали аналогичную интеграцию с другими редакторами XML:

  • Чтобы показать, что будет выглядеть модель контента результата (представленная данным компонентом). Это подход XMLSpy.
  • Чтобы показать, как определенная модель контента (данного компонента) была получена из других компонентов. Что подход <oxygen> XML и Liquid XML.

Я лично считаю, что диаграммы, сгенерированные XMLSpy, более полезны.

В Visual Studio 2013 есть довольно классный визуализатор.

Плюсы этого решения:

  • Он работает локально, поэтому можно обрабатывать секретные файлы,
  • полностью бесплатно,
  • с открытым исходным кодом.
  • Довольно неустойчивый с большими (более 20шт MB) файлами.

Существует новый бесплатный webtool, где вы можете просмотреть любую xml-схему:

Он полностью написан в JavaScript, поэтому он работает в большинстве современных браузеров.

Мы используем Liquid XML Studio, он обеспечивает интуитивно понятное редактируемое представление схемы XSD. Он также показывает аннотации inline, которые мы находим очень полезными, и просмотр split/gfx бесценен при написании или редактировании XSD.

Если кто-то работает с IBM Rational Application Developer, то в нем встроен браузер XSD.


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

Рассмотрим наиболее популярные из них.

Oxygen

Oxygen – это кроссплатформенный редактор, написанный на Java. Он поддерживает несколько функций для редактирования документов:

  • проверку правильности формы XML;
  • валидацию по таким схемам, как DTD, W3C XML Schema, RELAX NG, Schematron, NRL и NVDL schemas.

Oxygen XML предлагает три подхода к редактированию документа XML:

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

Emacs для XML


Emacs известен как мощный текстовый редактор, предпочитаемый разработчиками UNIX. Он может работать с XML не только на UNIX-платформах, но и в Windows, MS-DOS и OS X.

В Emacs существуют следующие режимы редактирования XML:

  • sgml-mode.el
  • PSGML
  • PSGMLx
  • nXMLMode
  • XML-poly
  • xml-lite.el
  • XML Authoring Environment (XAE)
  • XSL-Mode

nXMLMode – основной режим редактирования XML в Emacs. Он поддерживает schema-sensitive.

XML Notepad

XML Notepad – редактор для XML с открытым исходным кодом. Он поддерживает древовидное представление, вывод XSL в левой панели, текст ноды справа и окно отладки внизу.


Программа поставляется с редактируемым Tree View, которое содержит обновляемые имена и значения нод, обновляемые в текстовом представлении.

Поддерживается IntelliSense для автодополнения кода и поиска синтаксических ошибок. Также включены выражения XPath и XInclude. Редактор имеет хорошую производительность при работе с большими документами XML и проверяет XML-схемы на лету. В него включено средство просмотра HTML для изучения выходных данных преобразования XSLT.

Liquid XML Studio IDE


Liquid XML Studio IDE – XML-редактор, основанный на Windows и биндинге данных. Включает в себя Graphical XML Schema Editor, Graphical JSON Schema Editor, Graphical XML editor и редактор DTD. Он также поставляется с расширением пользовательского интерфейса для Microsoft Visual Studio через Visual Studio Industry Partner (VSIP).

Stylus Studio

Stylus Studio – эта IDE написана на C++ и распространяется на условиях проприетарной лицензии стоимостью от 99 долларов. Программа позволяет редактировать и преобразовывать XML-документы для электронного обмена данными(EDI), CSV и реляционные данные. Поддерживаются XQuery Editing, XQuery Mapping, XQuery Debugging.


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

Komodo

Помимо поддержки XML, Komodo умеет работать с HTML, Perl, Ruby, Python, Java и т. д. Это простой, но функциональный инструмент. Автодополнение кода функционирует великолепно, макет лаконичен и интуитивно понятен. Софт имеет платную версию под названием Komodo IDE, включающую в себя модульное тестирование, синхронизацию нескольких рабочих станций и интеграцию с GitHub и BitBucket.


Komodo поддерживает закладки и метки, позаимствованные у Emacs.

Отслеживание изменений позволяет откатиться назад. Поле трекера позволяет управлять изменениями исходного кода (SCC), когда документ находится на стадии пересмотра. Если архив находится в SCC, то ядро трекера показывает изменения, сопоставленные с последним коммитом.

Редактор исходного кода Kate предлагает окно отладки, проводник и плагины. Среди них KTextEditor для редактирования тем, предоставляемых KSyntaxHighlighting. Он имеет возможность просмотра источников HTML, редактирования конфигурационных файлов и выполнения задач по расписанию.

Плагин проверки XML проверяет файл на наличие предупреждений и ошибок, которые появятся в окне Kate, а основанный на libxmlcalled плагин под названием «XML Completion» проверяет, следует ли документ правилам DTD.


NotePad ++


Notepad++ – это текстовый редактор с лицензией GPL. Он имеет хорошую производительность, потому как основан на компоненте редактирования Scintilla и написан на C++. Инструмент поддерживает подсветку синтаксиса, форматирование/минимизацию кода, а также незначительное автодополнение для разных языков программирования, сценариев и разметки.

К сожалению в редакторе нет интеллектуального автодополнения кода и проверки синтаксиса.

Notepad++ поставляется с основанным на libXML2 плагином XML Tools для поддержки набора полезных инструментов и редактирования XML-документов.

Для установки переходим в раздел Plugins -> Plugin Admin и находим «XML tools». Плагин обеспечивает проверку XML, XSD и DTD путем верификации формата и синтаксиса. Он поддерживает текущий XML Path и Xpath.

Это онлайн-едактор XML , предоставляющий различные сервисы:

  • XML Sitemap Editor: позволяет редактировать кастомные XML sitemap-ы сайтов, которые можно загрузить по URL-адресу или загрузить файл локально.
  • Online XML To Text Converter: преобразование XML в текстовые файлы.
  • Online XML Validator: проверка и валидация схемы на соответствие DTD.
  • XPath Editor: создание и оценка выражения XPath, а также проверка путей.

Плагин обеспечивает преобразование из XSD в XML, XML в Excel, JSON в XML, а также имеет редактор JSON и вьювер.

Adobe FrameMaker

Adobe FrameMaker – инструмент от Adobe для XML и DITA (Darwin Information Typing Architecture). Он содержит редактор WYSIWYG для XML-дизайна и обладает удобными сочетаниями клавиш для навигации.


Редактор имеет удобные для начинающих структурированные средства просмотра для нод и атрибутов XML-данных. Также он обеспечивает простое встраивание роликов из Youtube, CSS3, markdown и поддержку медиафайлов. Может быть использован в качестве PDF-редактора путем преобразования XML в DITA, который визуализируется в формат PDF.

XMLSpy

XMLSpy позиционируется как редактор JSON и XML со встроенным конструктором схем. Он поддерживает интеграцию с Visual Studio и Eclipse, а также имеет XPath builder, валидатор и отладчик.


Редактор может генерировать визуальные диаграммы из XML-данных.

Особенностью XMLSpy является валидация XML SmartFix, которая обнаруживает ошибки и автоматически применяет выбранные пользователем исправления.

ExtendsClass

ExtendsClass – это бесплатный набор инструментов для разработчиков, позволяющий сравнивать ноды XML и визуализировать семантические различия.


Инструмент XML diff выполняет семантическое сравнение пары «атрибут-значение» у каждого объекта. Сравнение затрагивает каждый узел в соответствии с его положением в массиве, а XML-строки сортируются и форматируются, чтобы найти семантические различия, а не только текстовые.

Editix

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


В последней версии предусмотрен бесплатный онлайн-инструмент – XPath tester. Разработчики также включили новую опцию – создание XML-документов из JSON и построение схемы из XML-документа с помощью редактора схем W3C.

Code Beautify


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

Online XML Tools

Online XML Tools – набор XML-инструментов, разработанных компанией B rowserling . Он поддерживает следующие функции: prettify, minify, validate , конвертацию XML в YAML, JSON TSV, Base64, CSV и наоборот.


Заключение

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

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

Где осуществляется визуализация

Трансформация XML на сервере
Трансформация XML у клиента

Модели представления

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

Формирование визуального изображения

Браузеры, способные визуализировать документы XML, легко доступны. Например, это Microsoft Internet Explorer 5 или выше. Он поддерживает как CSS , так и XSL .

Браузеры как и обычный лист бумаги являются субстратами процесса формирования графического изображения. Можно сказать, что оба они представляют собой в основном контейнеры для визуальных объектов форматирования. Простейшей сущностью языков стилей является область. В стандартных языках стилей область представляет собой прямоугольный участок. С учетом этого представления страницей можно назвать область, содержащую другую область. Такие прямоугольные области, содержащие другие прямоугольные области, формируют древовидную структуру. Таким образом, визуальная структура представляет собой дерево объектов форматирования (прямоугольных областей), причем на вершине дерева находится страница, а объекты форматирования более низкого уровня являются ее потомками.

В зависимости от уровня сложности языка стилей предлагаются две основные модели структуры:

  • Потоковая структура
  • Фиксированная структура

Потоковой называется структура, в которой объекты форматирования располагаются на субстрате (странице или экране) один за другим. Если запись ведется сверху вниз и слева направо, то объекты располагаются точно так же - сверху вниз и слева направо. Например, параграфы текста размещаются вертикально друг под другом, а слова (предложения) - горизонтально. Как правило, объекты форматирования располагаются вертикально или горизонтально. Например, в языке таблицы стилей CSS блоковые объекты располагаются вертикально, как параграфы, а встроенные (inline) объекты - горизонтально, как слова и предложения. Обычно при направлении письма слева направо объекты, располагаемые вертикально, содержат объекты, размещаемые горизонтально.

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

Формирование звукового представления

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

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

Документы XML ассоциируются с таблицами стилей с помощью команд обработки. Этот специальный тип элемента указывает браузеру или обработчику стилей:

  • Где найти таблицу стилей
  • На каком языке написана таблица стилей
  • Для какой среды предназначена таблица стилей
  • Заголовок, отображаемый в меню, если предлагается несколько альтернативных таблиц стилей
  • Имеются ли альтернативные таблицы стилей

Элементом, связывающим документ XML с таблицей стилей, является команда обработки xml-stylesheet .

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

Большинство специалистов почти единодушны в том, что HTML плохо справляется с возросшими требованиями к публикуемым в Web документам и ему необходимо срочно искать замену. Одним из первых кандидатов на роль основного языка представления информации считается именно XML.

С момента появления XML прошло совсем немного времени, однако он очень быстро стал популярным. Многие уже выбрали его в качестве инструмента для работы и, похоже, не раскаиваются в содеянном.

Универсальное средство описания данных

Одним из первых таких языков стал AML (Astronomical Markup Language), созданный для обмена не только параметрами небесных объектов, но также статьями, таблицами, изображениями, сведениями о персонале, одним словом, любой информацией, необходимой в повседневной жизни обсерватории. За астрономами последовали и другие ученые. Для представления математических данных и передачи их по сети был разработан MathML (Mathematical Markup Language). Целую серию подобных продуктов создали биологи: SBML (Systems Biology Markup Language), BIOML (BIOpolymer Markup Language), BSML (Bioinformatic Sequence Markup Language) и др.

Активно ведутся работы и в других областях. Проект VHG (Virtual HyperGlossary) предполагает построение системы взаимосвязанных словарей, призванных образовать "терминологическую среду" для разнообразных документов. Язык описания векторной графики VML (Vector Markup Language) должен обеспечить поддержку наборов изображений, объединенных посредством ссылок. Создаются также языки, специально предназначенные для работы с архивами, для построения обучающих систем. Этот список можно продолжать очень долго. Надо ли говорить, что в основе всех перечисленных языков лежит все тот же XML?

Такое обилие применений не случайно. Ведь XML-файл уже сам со себе -- готовая иерархическая база данных. Остается лишь задать ограничения и написать язык запросов, основой для которого послужит. все тот же XML. На роль такого языка запросов претендует XML-QL, причем версия 0.9 уже доступна пользователям. Аналогичную цель ставили перед собой и создатели языков XQL, YATL и XSQL.

А как же Web?

Итак, описание данных, язык запросов. А как же собственно "ML"? Ведь XML -- это eXtensible Markup Language, т. е. язык разметки. Как он выглядит в качестве альтернативы HTML? И нужна ли эта альтернатива? На последний вопрос большинство специалистов единодушно отвечают "Да!". Язык HTML плохо справляется с ролью основного средства публикации в Web. Главный его недостаток состоит в полном отсутствии инструментария для структурирования документов. Такое качество, как гибкость, тоже мало присуще HTML. Новые возможности в лучшем случае станут доступными с выходом очередной версии, а до тех пор -- обходись тем, что имеешь.

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

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

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

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

Итак, потенциальные возможности налицо. Осталось только реализовать их.

Структура на экране

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

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

Что же делать с документом? Ведь в нем нет даже намека на форматирование. Смешно предполагать, что броузер сможет угадать, в каком виде автор хотел бы представить свое произведение на экране, однако трудно удержаться от соблазна тут же открыть его в одном из поддерживающих XML броузеров, благо, их становится все больше. Для первого эксперимента вполне подойдет Internet Explorer 5.0 или более поздняя версия.

Результат, конечно, впечатляет, хотя назвать его полноценной Web-страницей можно с трудом. Структура на экране вряд ли привлечет посетителя. Без форматирования все же не обойтись.

Таблицы стилей

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

Теперь результат достигнут. На экране отображается полноценный документ, но созданный уже не на HTML, а на XML (рис. 2).

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

В XML-документе описание данных полностью отделено от описания формата. Именно это свойство XML доставляет множество неприятностей начинающему. Учитывая, что XML-документ имеет строгую древовидную структуру, можно представить себе, какие богатые возможности получает Web-дизайнер. Предположим, что разработчик решил выделить сведения о своей любимой системе (конечно же Unix) красным цветом. Для этого надо добавить всего одну строку в CSS-файл:

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

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

Представьте себе, что, экспериментируя с визуализацией документа, разработчик решил несколько уменьшить размер шрифта, которым отображаются заголовки для BSD и SunOS (действительно, ведь это лишь различные клоны одной системы), и объединить их в одном подразделе (например, "UNIX"). Но если отредактировать стиль элемента Name, уменьшится и заголовок для Win95, что противоречит первоначальному плану. Чтобы такое преобразование стало возможным, правила форматирования текста должны быть контекстно-зависимыми. Надо, чтобы Name выводился по-разному исходя из принадлежности к родительскому элементу.

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

После некоторых размышлений приходится констатировать, что выразительные средства каскадных таблиц стилей не позволяют решить ни первую, ни вторую задачи. И если при переходе от CSS1 к CSS2 и появляется возможность распознавать контекст, то для вставки текста на этапе форматирования требуются гораздо более мощные средства. Вероятно, к такому же выводу пришли и разработчики XML, поскольку результатом их деятельности стала спецификация нового языка для форматирования и преобразования XML-документов. Этот язык получил название XSL (eXtensible Style Language).

Шаг за горизонт: XSL

Жизнь полна неожиданностей. Приступив к изучению XML, Web-мастер вынужден вспомнить (или изучить заново) CSS, затем выясняется, что для того чтобы двигаться дальше, надо разобраться в возможностях XSL, которые выходят далеко за рамки использования XML в Web. Действительно, средства XSL позволяют не только форматировать, но и конвертировать XML-документ, представляя его практически в любом виде: от форматов, используемых для описания текста (PDF, PostScript, SGML, TeX), до звуковых и графических файлов.

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

Как же поступить? Наверное, стоит вспомнить о том, что XSL позволяет преобразовывать форматы почти без ограничений и выбрать из них такой, какой лучше всего обрабатывался бы броузерами, то есть. старый добрый HTML. Для этой цели воспользуемся следующим XSL-описанием:

При таком представлении стилей не составляет никакого труда выборочно настроить вид одного или нескольких элементов. Чтобы изменить уровень заголовков BSD и SunOS и объединить их в один раздел, достаточно строк, представленных на листинге 4.

А для того чтобы исключить слово Platform: из исходного текста, довольно изменить соответствующий элемент XSL-описания.

Действительно, теперь средства публикации документа приобрели новое свойство, которого им так недоставало ранее, -- гибкость. Тем не менее нам есть о чем задуматься. Обратите внимание, что, пытаясь уйти от ограничений, накладываемых HTML, пришлось изучить XML, решить множество проблем и. снова вернуться к HTML. Замкнутый круг? Нет, так только кажется. Ведь исходный текст документа по-прежнему представлен на языке XML, в XSL-файле хранится его стилевое описание, а HTML -- лишь выходной формат, который в любой момент может быть изменен. При необходимости модифицировать документ редактируется только структурированный XML-файл, преобразуемый в HTML посредством формальной процедуры.

На поводу у капризного броузера

Итак, XML-документ и его стилевое описание в XSL-файле готовы. Осталось представить его читателю. Но как это сделать? Самое простое решение -- передать XML- и XSL-данные броузеру, предоставив ему выполнять преобразование самостоятельно. Но, как уже говорилось, большинство броузеров попросту не справятся с обработкой такого документа.

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

Кстати, о необходимых инструментах уже позаботились разработчики. Один из самых популярных преобразователей под названием XT, созданный Джеймсом Кларком (James Clark), может работать на различных платформах. А конвертировать документ динамически при обращении клиента к серверу позволяет XML Enabler, реализованный в виде сервлета.

Ветер перемен в Web

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

Читайте также: