Технологии XML и XSLT.
Для отладки и демонстрации программ разработь содеражательные XML-документы
на одном из специализированных диалектов языка разметки:
По выбранному XML-приложению написать краткий реферат со ссылками
на спецификацию, с информаций о соответствующих процессорах, примерами и т.п.
Допускается использование самостоятельно разработанного набора тегов
(желательно для описания некоторой полезной информации и подходящей
для решения задачи выбранного варианта)
Разработать стиль (XSL-файл) для отображения документа (или его части)
путем преобразования в HTML-файл.
Варианты преобразования для отображения
-
в форме нумерованного списка и подсписков (для подэлементов)
-
в форме ненумерованного списка с сортировкой
-
в форме списка с выбором элементов по значению атрибута
-
в форме списка с выбором элементов по диапазону значений атрибута
-
в форме таблицы, в колонках которой отображаются атрибуты
-
в форме таблицы, в колонках которой отображаются подэлементы
-
в форме таблицы с выбором элементов по значению подэлементы
Опробовать применение стиля
-
путем ссылки на XSL-файл в самом документе
-
с помощью программы msxls.exe
Используя средства JavaScript по обработке XML разработать
HTML-файл для отображения документа. В форме задавать необходимые параметр для
указания
-
макимального количества выдаваемых значений
-
имени атрибута, по которому производится сортировка
-
количества колонок в таблице
-
списка типов подэлементов для вывода
-
списка типов атрибутов для вывода
На языке Java (или C#) написать консольное приложение, выполняющего действие,
заданное в варианте. Для анализа использовать либо интерфейсы SAX,
либо древовидную иерархическую модель DOM. Рекомендуется
использовать пакеты JAXP.
Для подлючения пакетов JAXP в JDK1.3 достаточно скопировать в подкаталог
JDK1.3/jre/lib/ext следующие файлы:
jaxp.jar - интерфейсы JAXP 27K
dom.jar - для DOM 26K
sax.jar - для SAX 26K
xalan.jar - для XSLT 906K
xercesImpl.jar - анализатор Xerces 980K
Документация по JAXP 460K
Примеры 178K
Упрощенные примеры обрабтки
Пример анализа c SAX
Пример анализа c DOM
Варианты
-
Объединить два документа с одинаковой структурой. Элементы одного типа
считаются различными, если имеют различные значения атрибута ID.
Если элементы одинаковые, объединяются их подэлементы.
-
Добавить в элементы <country name="имя"> подэлементы с заданным именем
из другого документа, выбирая их из соответствующих элементов.
-
Вместо содержимого элемента <md>x</md> вставить содержимое элемента, нахощегося
после комбинации <md>x</md><mo>=</mo> в другом документе
-
Найти перечесение двух документов с одинаковой структурой, в которых элементы
идентифицируются атрибутом ID.
-
Для данного документа построить документ с описанием схемы
(на языке XML-Schema, отображая только вложенность)
-
Документ содержит описание графа. Элемент вида %lt;V id="1"/> - вершина,
<L from="1" to="2"/> - дуга. Проверить правильность задания графа
и вывести матрицу смежности.
-
Сравнить в двух XML-документах первый наденный узел с заданным именем.
-
Добавить отсутствующие элементы указанного типа на заданный уровень
(из другого документа).
-
Если в элементе с описанием автобиографии есть слова "школа Ndd", добавить
в родительский узел атрибут школа = "Ndd".
-
Удалить из XML-документа все узлы, имеющего заданный атрибут
с определенным значением.
-
Объединить все подузлы узла заданного типа в один текстовый узел.
-
Найти все элеметы (сформировать из них XML-документ), у которых
атрибут "дата" имеет заданный диапазон значений.
-
Сгруппировать узлы заданного типа по значению атрибута,
например, <person sex="M">... <person sex="M"> ... <person sex="F">
в <person-M> <person>... <person> ... </person-M>
<person-F> <person>... <person> ... <person-F>.
-
Отсортировать элементы, имеющие подэлементы типа дата в формате
dd-mm-yyyy, по mm-dd.
-
Найти в текстовых узлах заданное слово (словосочетание) и заменить его
на ссылку, добавив соответстующую сущность в описание типа документа.
-
Удалить из документа все комментарии, содержащие заданную подстроку.
-
Сформировать из комментариев HTML-файл с сохранением уровней вложенности.
Переход на вложенный уровень по гиперрсылке.
-
Добавить в имена тегов (по заданному списку имен) заданный префикс,
добавив также в корневой элемент описание пространства имен.
-
Для элементов заданного типа вывести таблицу (HTML-файл) с колонками,
помеченными именами атрибутов, и значениями атрибутов в ячейках таблицы.
-
По элементам типа <раздел имя="заголовок...">, возможно, вложенными друг в друга,
сформировать оглавление с нумераций (1.заголовок ... 1.1 ... 1.2...)
и тегами H1, H2 ... с выводом в HTML-файл.
-
Из документа с описанием товаров вывести все товары заданного типа
(по значению атрибута) с ценой меньше заданной.
-
По документу, содержащему информацию об объектах недвижимости,
вычислить среднюю стоимость объетов по типам.
-
Преобразовать атрибуты с заданным именем в подэлементы.
-
В документе на одном уровне находятся элементы с описанием личностей
и автомобилей. В элементе "автомобиль" имеется атрибут, указывающий
владельца посредством уникальныго атрибута личности. Построить документ,
в котором автомобили становятся подэлементами владельцев.
-
Продублировать элементы столько раз, сколко указано в инструкции
обработки, вложенной в элемент (например, <?clone 2 ?> - два раза).
-
Упорядочить атрибуты во всех элементах по алфавиту.
-
Найти узел с указанным именем, имеющим наибольшее число подузлов.
-
Добавить в узел атрибут, указывающий количество подузлов каждого типа.
-
Упорядочить подэлементы заданного элмента по убыванию (возрастанию) значения атрибута "age"
(с числовым значением).
-
Создать на верхем уровне узел с именем "all-имя" и
перенести все узлы с именем "имя" в подузлы созданного узла, не повторяя
значений.