- •Часть №1
- •Лабораторная работа №1 Структура xml документа
- •Лабораторная работа №2 Пространство имен и сущности
- •Лабораторная работа №3 Комментарии, разделы cdata,инструкции по обработке
- •Часть№2
- •Лабораторная работа №1 Синтаксис dtd
- •Лабораторная работа №2 Дочернее содержимое элемента, задание смешанного содержимого
- •Лабораторная работа №3 Атрибуты
- •Лабораторная работа №4 Подмножества dtd
- •Лабораторная работа №5 Валидность документа dtd
- •Валидность документа
- •Требования корректности формирования и валидности
- •Лабораторная работа №6 Общие внутренние и внешние примитивы dtd.
- •Xод работы:
- •Лабораторная работа №7 Параметрические внутренние и внешние примитивы
- •Xод работы:
- •Лабораторная работа №8 Ссылки на примитивы
- •Xод работы:
- •Использование предварительно определенных примитивов
- •Создайте xml-документ с использованием предварительно определенных примитивов и ссылками на примитивы на любую тематаку.
- •Отобразите документ в браузере Часть №3
- •Изучить встроенные простые типы данных xmlShema.
- •Xод работы:
- •Типы long, int, short и byte
- •Отобразите документ в браузере Лабораторная работа №2 Определение простых типов данных и пространство имен
- •Сужение
- •Не более чем из пяти целых чисел следующим образом:
- •Создайте xmlShema документ с простыми типами данных и пространством имен имен, для этого сделайте следующие:
- •Лабораторная работа №3 Объявление элементов и их атрибутов
- •Создание группы элементов и атрибутов в сложном типе
- •Лабораторная работа №5 Определение типа со сложным телом,
- •Лабораторная работа №6 Аннотирование схем, включение файлов схемы в другую схему
- •Часть №4
- •Лабораторная работа №1 Входной и выходной документы, инструкция обработки и корневой элемент
- •Лабораторная работа №2 Описание структуры с помощью шаблонов
- •Лабораторная работа №3 Встроенные шаблонные правила
- •Лабораторная работа №4 Модульная организация преобразования
- •Лабораторная работа №5 Инструкции управления
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Часть №5
- •Лабораторная работа №1 Интерфейс программы и создание xsd документа
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Xslt трансформация
- •Лабораторная работа №4 Создание документа dtd и его применение к xml.Конвертирование dtd в Shema.
- •Напечатайте следующий тест:
Лабораторная работа №2 Пространство имен и сущности
Цель работы:
Изучить пространство имен и сущности XML -документа
Ход работы:
Пространство имен
Пространство имен (namespace) – это группа имен элементов и атрибутов. Добавляя префикс пространства имен к имени элемента или атрибута, мы сообщаем анализатору о том, из какого пространства имен оно происходит. Ниже приведен пример Пространств имен где bob-это префикс:
<part_catalog
xmlns:bob="http://www.bobco.com/">
Создайте описание книги, а затем добавьте авторские комментарии к книге, для этого необходимо сделать сдедущее:
Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже
Листинг 1.1
<library>
<book>
<title>
Earthquakes for Lunch.
</title>
</book>
</library>
Затем к элементу <book> добавьте авторские комментарии. Для этого XML-приложение заключается в собственное пространство имен, для которого используется префикс book:.
<library
xmlns :book="http: /Iww. amazingterri ficbooks. com/spec ">
<book>
<title>
Earthquakes for Lunch.
</title>
</book>
</library>
В результате мы указали на место авторских комментариев для книги.
Сушности(примитивы)
Сущность (entity) является заместителем содержания, которую можно однажды объявить и многократно использовать почти в любом месте документа.
Рисунок 1.6 Виды примитивов
Внутренние сущности со смешанным содержанием чаще всего применяются для замены часто повторяемых фраз, имен или стандартного текста:
<?xml version="1.0"?>
<!DOCTYPE press_release SYSTEM "http://www.dtdland.org/dtds/reports.dtd"
[
<!ENTITY bobco "Bob's Bolt Bazaar, Inc.">
]>
</press_release>
Обратите внимание что в примере содержится DTD документ, его мы будем рассматривать в дальнейших лабораторных работах.
Иногда может понадобиться создать сущность для такого большого объема смешанного содержимого, что непрактично заключать его внутрь объявления сущности. В таком случае следует использовать внешние сущности (external entity):
В следующем примере в документе объявлены три внешние сущности part1, part2 и part3, в которых хранится его содержание:
<?xml version="1.0"?>
<!DOCTYPE longdoc SYSTEM "http://www.dtds_r_us.com/generic.dtd"
[
<!ENTITY part1 SYSTEM "p1.xml">
<!ENTITY part2 SYSTEM " p2.xml ">
<!ENTITY part3 SYSTEM "p3.xml">
]>
<longdoc>
&part1;
&part2;
&part3;
</longdoc>
<longdoc>&part1; &part2; &part3; </longdoc>-означает что в документе longdoc находятся три xml –документа p1.xml, p2.xml, p3.xml,рассмотрим их подробнее:
Документ p1.xml:
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE p1 SYSTEM "p1.dtd"
[
<!ENTITY клиент "С.Иванов">
<!ENTITY телефон "617-555-1299">
]>
<p1>
<opening>Дорогой &клиент;</opening>
<body>Дорогой &клиент; пожалуйста позвоните нам по телефону &телефон;для уточения ваших данных. </body>
</p1>
Документ p2.xml
?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE p1 SYSTEM " p2.dtd"
[
<!ENTITY клиент "С.Иванов">
<!ENTITY данные "С.Иванов-Место жительства-г. Москва, ул.Заречная,дом.31;Номер паспорта- 40 07 12345 ">
]>
<p2>
<opening>Доргой &клиент;</opening>
<body>Догогой &клиент; пожалуйста подтвердите указанные вами данные: &данные; </body>
</p2>
Документ p3.xml
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE p2 SYSTEM "p3.dtd"
[
<!ENTITY клиент "С.Иванов">
<!ENTITY телефон "617-555-1299">
]>
<p3>
<opening>Дорогой &клиент;</opening>
<body>Дорогой &клиент; благодарим вас за то, что уточнили данные,ваша посылка прибудет через неделю,по любым вопросам звоните по нашему телефону &телефон; </body>
</p3>
В приведенном только что синтаксисе объявления внешних сущностей
указано ключевое слово SYSTEM, за которым следует строка, заключенная в кавычки и содержащая имя файла. Эта строка называется си темным идентификатором (system identifier) и используется для идентификации ресурса по адресу.
Сущности, содержащие единственный символ, естественно, называются символьными сущностями (character entities). Они разделяются на несколько групп:
Предопределенные символьные сущности
Имя Amp Apos Gt Lt quot |
Значение & ' > < " |
Нумерованные символьные сущности
Именованные символьные сущности
Последним видом сущностей, обсуждаемых в этой главе, являются неанализируемые сущности (unparsed entity). Сущности этого вида хранят содержание, которое не должно анализироваться, поскольку оно не является текстом и может вызвать замешательство анализатора. Неанализируемые сущности применяются для импорта графики, звуковых файлов и других несимвольных данных:
<?xml version="1.0"?>
<!DOCTYPE doc [
<!ENTITY mypic SYSTEM "photos/erik.gif" NDATA GIF>
]>
<doc>
Here's a picture of me:
&mypic;
</doc>
Создайте XML –документ и добавьте к нему внутренние и символьные сущности, для этого сделайте следующее:
Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже
Листинг 1.2
<?xml version="1.0"?>
<!DOCTYPE press-release SYSTEM http://www.dtdland.org/dtds/reports.dtd>
<press-release>
<title> Bob's Bolt Bazaar, Inc.; Earnings Report for Q3</title>
<par>The earnings report Bob's Bolt Bazaar, Inc.; in fiscal
quarter Q3 is generally good. Sales of Bob's Bolt Bazaar, Inc.; bolts increased 35%
over this time a year ago.</par>
<par>Bob's Bolt Bazaar, Inc.; has been supplying high-quality bolts to contractors
for over a century, and Bob's Bolt Bazaar, Inc.; is recognized as a leader in the
construction-grade metal fastener industry.</par>
</press-release>
Добавьте внутреннею сущность <!ENTITY bobco "Bob's Bolt Bazaar, Inc.">и замените "Bob's Bolt Bazaar, Inc." на символьную сущность" &bobco,в результате вы получите то что показано на листинге 1.3
Листинг 1.3
<?xml version="1.0"?>
<!DOCTYPE press-release SYSTEM "http://www.dtdland.org/dtds/reports.dtd"
[
<!ENTITY bobco "Bob's Bolt Bazaar, Inc.">
]>
<press_release>
<title>&bobco; Earnings Report for Q3</title>
<par>The earnings report for &bobco; in fiscal
quarter Q3 is generally good. Sales of &bobco; bolts increased 35%
over this time a year ago.</par>
<par>&bobco; has been supplying high_quality bolts to contractors
for over a century, and &bobco; is recognized as a leader in the
construction-grade metal fastener industry.</par>
</press_release>
Воспользуйтесь командой Save (Сохранить) текстового редактора, для сохранения документа на вашем жестком диске, присвоив ему имя essence.xml.
Откройте файл в вашем браузере и вас должно получится то что представлено на рисунке 1.7
Рисунок 1.7
Упражния для самостоятельной работы
Создайте XML-документ с внутренними сущностями и пространством имен
Отобразите в браузере
