Технологии XML и XSLT.

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

Варианты преобразования для отображения

  1. в форме нумерованного списка и подсписков (для подэлементов)
  2. в форме ненумерованного списка с сортировкой
  3. в форме списка с выбором элементов по значению атрибута
  4. в форме списка с выбором элементов по диапазону значений атрибута
  5. в форме таблицы, в колонках которой отображаются атрибуты
  6. в форме таблицы, в колонках которой отображаются подэлементы
  7. в форме таблицы с выбором элементов по значению подэлементы
Опробовать применение стиля
  1. путем ссылки на XSL-файл в самом документе
  2. с помощью программы msxls.exe

Используя средства JavaScript по обработке XML разработать HTML-файл для отображения документа. В форме задавать необходимые параметр для указания
  1. макимального количества выдаваемых значений
  2. имени атрибута, по которому производится сортировка
  3. количества колонок в таблице
  4. списка типов подэлементов для вывода
  5. списка типов атрибутов для вывода

На языке 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

Варианты

  1. Объединить два документа с одинаковой структурой. Элементы одного типа считаются различными, если имеют различные значения атрибута ID. Если элементы одинаковые, объединяются их подэлементы.
  2. Добавить в элементы <country name="имя"> подэлементы с заданным именем из другого документа, выбирая их из соответствующих элементов.
  3. Вместо содержимого элемента <md>x</md> вставить содержимое элемента, нахощегося после комбинации <md>x</md><mo>=</mo> в другом документе
  4. Найти перечесение двух документов с одинаковой структурой, в которых элементы идентифицируются атрибутом ID.
  5. Для данного документа построить документ с описанием схемы (на языке XML-Schema, отображая только вложенность)
  6. Документ содержит описание графа. Элемент вида %lt;V id="1"/> - вершина, <L from="1" to="2"/> - дуга. Проверить правильность задания графа и вывести матрицу смежности.
  7. Сравнить в двух XML-документах первый наденный узел с заданным именем.
  8. Добавить отсутствующие элементы указанного типа на заданный уровень (из другого документа).
  9. Если в элементе с описанием автобиографии есть слова "школа Ndd", добавить в родительский узел атрибут школа = "Ndd".
  10. Удалить из XML-документа все узлы, имеющего заданный атрибут с определенным значением.
  11. Объединить все подузлы узла заданного типа в один текстовый узел.
  12. Найти все элеметы (сформировать из них XML-документ), у которых атрибут "дата" имеет заданный диапазон значений.
  13. Сгруппировать узлы заданного типа по значению атрибута, например, <person sex="M">... <person sex="M"> ... <person sex="F"> в <person-M> <person>... <person> ... </person-M> <person-F> <person>... <person> ... <person-F>.
  14. Отсортировать элементы, имеющие подэлементы типа дата в формате dd-mm-yyyy, по mm-dd.
  15. Найти в текстовых узлах заданное слово (словосочетание) и заменить его на ссылку, добавив соответстующую сущность в описание типа документа.
  16. Удалить из документа все комментарии, содержащие заданную подстроку.
  17. Сформировать из комментариев HTML-файл с сохранением уровней вложенности. Переход на вложенный уровень по гиперрсылке.
  18. Добавить в имена тегов (по заданному списку имен) заданный префикс, добавив также в корневой элемент описание пространства имен.
  19. Для элементов заданного типа вывести таблицу (HTML-файл) с колонками, помеченными именами атрибутов, и значениями атрибутов в ячейках таблицы.
  20. По элементам типа <раздел имя="заголовок...">, возможно, вложенными друг в друга, сформировать оглавление с нумераций (1.заголовок ... 1.1 ... 1.2...) и тегами H1, H2 ... с выводом в HTML-файл.
  21. Из документа с описанием товаров вывести все товары заданного типа (по значению атрибута) с ценой меньше заданной.
  22. По документу, содержащему информацию об объектах недвижимости, вычислить среднюю стоимость объетов по типам.
  23. Преобразовать атрибуты с заданным именем в подэлементы.
  24. В документе на одном уровне находятся элементы с описанием личностей и автомобилей. В элементе "автомобиль" имеется атрибут, указывающий владельца посредством уникальныго атрибута личности. Построить документ, в котором автомобили становятся подэлементами владельцев.
  25. Продублировать элементы столько раз, сколко указано в инструкции обработки, вложенной в элемент (например, <?clone 2 ?> - два раза).
  26. Упорядочить атрибуты во всех элементах по алфавиту.
  27. Найти узел с указанным именем, имеющим наибольшее число подузлов.
  28. Добавить в узел атрибут, указывающий количество подузлов каждого типа.
  29. Упорядочить подэлементы заданного элмента по убыванию (возрастанию) значения атрибута "age" (с числовым значением).
  30. Создать на верхем уровне узел с именем "all-имя" и перенести все узлы с именем "имя" в подузлы созданного узла, не повторяя значений.