Лабораторная работа № 6. Технология XML 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа № 6. Технология XML



Лабораторная работа №5 выполняется после знакомства со стандартами расширяемого языка разметки XML и основами программирования на Java.

Цель работы:

Овладеть навыками работы с XML и родственными технологиями в Java.

Материалы:

Данная лабораторная работа опирается на материалы лекций, оригинальное руководство корпорации Sun - j2eetutorial14 (англ.) (установлено локально на каждом компьютере в каталоге C: \Sun\j2eetutorial14\doc), а также на описание библиотеки xalan в виде javadoc (разархивировать самостоятельно). j2eetutorial14 http: //ru.wikipedia.org/wiki/XML - XML Инструменты: Любая среда разработки на Java

Примеры исходного кода, подготовленного к компиляции и сборке:

Archive\Documents\Java\j2eetutorial14\examples

Библиотека xalan в каталоге с данным описанием лабораторной работы

Ресурсы сайта citforum.ru:

Язык XML - практическое введение. Часть 1 http://www.citforum.ru/internet/xml/index.shtml

Язык XML - практическое введение. Часть 2 http://www.citforum.ru/internet/xml2/index.shtml

Предварительная подготовка:

Следует настроить систему для работы с JDK (если это не было сделано ранее).

Скопировать библиотеку xalan на локальную машину, разархивировать и подключить к проекту на Java или прописать местоположение библиотеки в classpath

 

Введение в XML

XML (Extensible Markup Language — расширяемый язык разметки) — рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил.

XML предназначен для хранения структурированных данных для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.

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

Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён (англ. namespace).

Краткий обзор синтаксиса XML Ниже приведён пример простого кулинарного рецепта, размеченного с помощью XML:

<?xml version="1.0" encoding="UTF-8"?>

<Recipe name="хлеб" prep_time="5 мин" cook_time="3 час">

<title>Простой хлеб</title>

<ingredient amount="3" unit = "стакан"> Мука </ingredient>

<ingredient amount="0.25" unit = "грамм"> Дрожжи </ingredient>

<ingredient amount = "1.5" unit = "стакан"> Тёплая вода </ingredient>

<ingredient amount="1" unit="чайная ложка"> Соль</ingredient>

<Instructions> <step>Смешать все ингредиенты и тщательно замесить.</step>

<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>

<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>

</Instructions>

</Recipe>

Обратите внимание, что названия и значения элементов и атрибутов могут состоять не только из букв латинского алфавита, но десятичным разделителем может быть только точка.

Первая строка XML-документа называется объявлением XML (англ. XML declaration) — это необязательная строка, указывающая версию стандарта XML (обычно это 1.0), также здесь может быть указана кодировка символов и внешние зависимости.

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

Элемент обычно состоит из открывающего и закрывающего тегов (меток), обрамляющих текст и другие элементы. Содержимым элемента (англ. content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы.

Ниже приведён пример XML-элемента, который содержит открывающий тег, закрывающий тег и содержимое элемента: <step>Замесить ещё раз, положить на противень и поставить в духовку.</step>

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

Значения атрибутов всегда заключаются в кавычки (одинарные или двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе. Не рекомендуется использовать разные типы кавычек для значений атрибутов одного тега.

<ingredient amount="3" unit = "стакан">Мука </ingredient>

В приведённом примере у элемента «ingredient» есть два атрибута:

«amount», имеющий значение «3», и «unit», имеющий значение «стакан». С точки зрения XML-разметки, приведённые атрибуты не несут никакого смысла, а являются просто набором символов.

Кроме текста элемент может содержать другие элементы:

<Instructions> <step>Смешать все ингредиенты и тщательно замесить.</step> <step>Закрыть тканью и оставить на один час в тёплом помещении.</step> <step>Замесить ещё раз, положить на противень и поставить в духовку.</step> </Instructions> В данном случае элемент «Instructions» содержит три элемента «step».

XML не допускает перекрывающихся элементов. Например, приведённый ниже фрагмент некорректен, так как элементы «em» и «strong» перекрываются.

<!-- ВНИМАНИЕ! Некорректный XML! -->

<p>Обычный <em>акцентированный

<strong>выделенный и акцентированный</em> выделенный</strong>

</p>

Каждый XML-документ должен содержать в точности один корневой элемент (англ. root element или document element), таким образом, следующий фрагмент не может считаться корректным XML-документом.

<!-- ВНИМАНИЕ! Некорректный XML! -->

<thing>Cущность №1</thing>

<thing>Cущность №2</thing>

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

Следующие фрагменты полностью равнозначны:

<foo></foo> <foo/>

В XML определены два метода записи специальных символов:

ссылка на сущность и ссылка по номеру символа. Сущностью (англ. entity) в XML называются именованные данные, обычно текстовые, в частности спецсимволы. Ссылка на сущность (англ. entity references) указывается в том месте, где должна быть сущность и состоит из амперсанда («&»), имени сущности и точки с запятой («;»).

В XML есть несколько предопределённых сущностей, таких как «lt» (ссылаться на неё можно написав «&lt;») для левой угловой скобки и «amp» (ссылка — «&amp;») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков. Ниже приведён пример использования предопределённой сущности для избегания использования знака амперсанда в названии:

<company-name>AT&amp; T</company-name>

Полный список предопределённых сущностей состоит из &amp;

(«&»), &lt;

(«<»), &gt;

(«>»), &apos;

(«'»), и &quot;

(«"») — последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD-документе. Иногда бывает необходимо определить неразрывный пробел, который в HTML обозначается как &nbsp;

в XML его записывают &#160;

Ссылка по номеру символа (англ. numeric character reference) выглядит как ссылка на сущность, но вместо имени сущности указывается символ # и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод. Амперсанд может быть представлен следующим образом:

<company-name>AT&#038;

T</company-name>

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

Задание на лабораторную работу

Задание состоит из следующих частей:

ознакомительная (общая часть), и индивидуальная (по вариантам). Необходимо выполнить обе части и результат представить в виде исходного кода с описанием.

Общая часть:

Необходимо найти описание перечисленных ниже примеров в j2eetutorial14, создать проекты с исходным кодом на Java из этих примеров, откомпилировать проект и запустить на выполнение, проконтролировав результат. Необходимо объяснить суть примера: какие библиотеки используются и их назначение, каков должен быть ожидаемый результат.

Список примеров:

Document Object Model,

Reading XML Data into a DOM (стр.188-194 j2eetutorial14)

Document Object Model,

Displaying a DOM Hierarchy (стр.195-211 j2eetutorial14)

Constructing a User-Friendly JTree from a DOM (стр.221-237 j2eetutorial14)

Extensible Stylesheet Language Transformations,

Writing Out a DOM as an XML File (стр.253-272 j2eetutorial14)

Transforming XML Data with XSLT, Writing the Basic Program (стр.287 -297 j2eetutorial14)

Transforming from the Command Line with Xalan (стр.311 j2eetutorial14) Индивидуальная часть:

1. Создать XML-файл, содержащий данные из определенной предметной области (по вариантам). Количество уровней вложенности - не менее 4 (вместе с корневым узлом). По крайней мере у двух разных уровней узлов должны быть атрибуты. Пример на основе классификации живых организмов дан в файле primer.xml в каталоге с данным описанием на диске. Также смотрите пример преобразования XSLT в файлах transform.xsl и module.xml module.xml. Это преобразование извлекает все узлы с именем par вне зависимости от вложенности и выводит их текстовое содержимое на экран с новой строки. Затем извлекает все узлы содержащие комментарии и выводит их следом за блоком параметров.

Предметные области (варианты):

1.1. Экономика;

1.2. Содержание издания;

1.3. Вычислительная техника;

1.4. Медицина;

1.5. Спорт;

1.6. Детские игрушки и игры;

1.7. Транспорт;

1.8. Военная техника;

1.9. Химия;

1.10. Астрономия;

1.11. Элементарные частицы;

1.12. Мебель;

1.13. Литература;

1.14. Архитектура;

1.15. Изобразительное искусство;

1.16. Оптические приборы;

1.17. Осветительные приборы;

1.18. Одежда;

1.19. Музыка;

1.20. Музыкальные инструменты;

1.21. Типы поверхности Земли;

1.22. Погода.

2. Создать на языке Java приложение, отображающее структуру xml файла в виде дерева JTree;

3. Разработать xsl таблицу позволяющую выводить на экран и в файл содержимое всех узлов в виде текста;

4. Разработать xsl таблицу позволяющую выводить на экран и в файл содержимое всех узлов в виде html (таблица или список по выбору);

5. Продемонстрировать работу созданных в п.3 и 4 xsl таблиц в командной строке xalan;

6. Разработать средство поиска текста по заданному ключу (начало слова) и/или атрибуту в xml файле с помощью XPathAPI библиотеки Xalan.

Включить это средство поиска в приложение, созданное в п.2.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-08-10; просмотров: 364; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.40.207 (0.021 с.)