Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabKompl1_XML.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
13.8 Mб
Скачать

Лабораторная работа №2 Пространство имен и сущности

Цель работы:

Изучить пространство имен и сущности XML -документа

Ход работы:

Пространство имен

Пространство имен (namespace) – это группа имен элементов и атрибутов. Добавляя префикс пространства имен к имени элемента или атрибута, мы сообщаем анализатору о том, из какого пространства имен оно происходит. Ниже приведен пример Пространств имен где bob-это префикс:

<part_catalog

xmlns:bob="http://www.bobco.com/">

Создайте описание книги, а затем добавьте авторские комментарии к книге, для этого необходимо сделать сдедущее:

  1. Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже

Листинг 1.1

<library>

<book>

<title>

Earthquakes for Lunch.

</title>

</book>

</library>

  1. Затем к элементу <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). Они разделяются на несколько групп:

  1. Предопределенные символьные сущности

Имя

Amp

Apos

Gt

Lt

quot

Значение

&

'

>

<

"

  1. Нумерованные символьные сущности

  2. Именованные символьные сущности

Последним видом сущностей, обсуждаемых в этой главе, являются неанализируемые сущности (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 –документ и добавьте к нему внутренние и символьные сущности, для этого сделайте следующее:

  1. Откройте новый файл в вашем текстовом редакторе и введите текст 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>

  1. Добавьте внутреннею сущность <!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>

  1. Воспользуйтесь командой Save (Сохранить) текстового редактора, для сохранения документа на вашем жестком диске, присвоив ему имя essence.xml.

  2. Откройте файл в вашем браузере и вас должно получится то что представлено на рисунке 1.7

Рисунок 1.7

Упражния для самостоятельной работы

  1. Создайте XML-документ с внутренними сущностями и пространством имен

  2. Отобразите в браузере

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]