Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Упражния для самостоятельной работы. Комментарии, разделы CDATA,инструкции по обработке



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

Лабораторная работа №3

Комментарии, разделы CDATA,инструкции по обработке

Цель работы:

Изучение комментариев , разделов CDATAинструкции по обработке в XML-документе

Ход работы:

Комментарии

Комментарии – это заметки в документе, не интерпретируемые анализатором. Если разные люди работают над одними и теми же файлами то такие данные могут оказаться очень ценными. Их можно использовать для указания назначения файлов и их разделов, чтобы облегчить перемещение по сложному документу, или просто для связи друг с другом.

 

Комментарий начинается с символов <!-- и заканчивается символами -->. Между этими двумя ограничителями вы можете поместить любые символы, за исключением двойного тире (--). Вы даже можете вставлять внутрь комментария символ левой угловой скобки (<) и знак амперсенда (&). Вот пример правильно записанного комментария:

<!-- Здесь вы можете поместить любой текст, за исключением двойного тире.

Символы < и & также допустимы! -->

 

Вы можете вставить комментарий в любое место в вашем XML-документе, но вне описания разметки, например, поместить их в пролог документа:

<?xml version="1.0" encoding="windows-1251" ?>

<!-- Это комментарий в прологе. -->

<DOCELEMENT>

This is a very simple XML-document.

</DOCELEMENT>

 

Вы можете поместить их вслед за элементом Документ:

<?xml version="1.0" encoding="windows-1251" ?>

<DOCELEMENT>

This is a very simple XML-document.

</DOCELEMENT>

<!-- Это комментарий, следующий за элементом Документ. -->.

 

И вы можете поместить их внутри содержимого элемента:

<?xml version="1.0" encoding="windows-1251" ?>

<DOCELEMENT>

<!-- Это комментарий, который является частью содержимого корневого

элемента. -->

This is a very simple XML-document.

</DOCELEMENT>

Использование разделов CDATA

CDATA служит акронимом для «character data», что просто значит «не разметка» (символьные данные). В сущности, мы сообщаем анализатору, что данный раздел документа не содержит разметки и должен рассматриваться как обычный текст

Раздел CDATA начинается с символов <![CDATA[ и заканчивается символами ]]>. Между этими двумя ограничителями вы можете поместить любые символы (включая < или &), за исключением ]]> (что будет интерпретировано как конец раздела CDATA). Все символы внутри раздела CDATA трактуются как литеральная часть символьных данных элемента, а не XML-разметка.



Вот пример CDATA в XML-документе:

<?xml version="1.0" encoding="windows-1251" ?><MUSICAL> <TITLE_PAGE> <![CDATA[ <Oklahoma!> By Rogers & Hammerstein ]]> </TITLE_PAGE> <!-- Здесь расположены другие элементы… --></MUSICAL>

 

Инструкция по обработке

Информация, касающаяся представления, должна, по возможности, храниться вне документа. Однако бывают случаи, когда иного выбора нет, например, если в документе требуется запомнить номера страниц для создания указателя. Такая информация применима только для конкретного процессора XML и может быть неуместной или вводящей в заблуждение для других. Для такого рода данных предписывается использовать инструкции обработки (processing instruction). Это контейнер для данных, предназначенных определенному процессору XML.

 

Примером инструкции по обработке может служить первая строка пролога

документа XML — объявление XML

<?xml version="l.О" encoding="windows-1251"?>

Cсоздайте XML-документ, содержащий комментарии ,CDATA и инструкцию по обработке, для этого сделайте следующее:

1. Создайте xml файл под названием comIstrcdta.xml и введите текст который представлен на листинге 1.4

 

 

Листинг1.4

<?xml version="1.0" encoding="windows-1251" ?>

<!-- Начало описания документа -->



<!-- File Name: comIstrcdta.xml -->

<INVENTORY>

<!-- Описание первой книги -->

<BOOK Binding="mass market paperback">

<TITLE>The Adventures of Huckleberry Finn</TITLE>

<AUTHOR Born="1835">Mark Twain</AUTHOR>

<PAGES>298</PAGES>

<PRICE>$5.49<![CDATA[(3.98 EUR.)]]>

</PRICE>

</BOOK>

<!-- Описание второй книги -->

<BOOK Binding="hardcover">

<TITLE>Leaves of Grass</TITLE>

<AUTHOR Born="1819">Walt Whitman</AUTHOR>

<PAGES>462</PAGES>

<PRICE>$7.75</PRICE>

</BOOK>

<!-- Описание третей книги -->

<BOOK Binding="trade paperback">

<TITLE>The Marble Faun</TITLE>

<AUTHOR Born="1804">Nathaniel Hawthorne</AUTHOR>

<PAGES>473</PAGES>

<PRICE>$10.95<![CDATA[(7.94 EUR.)]]>

</PRICE>

</BOOK>

<!-- Описание четвертой книги -->

<BOOK Binding="hardcover">

<TITLE>Moby-Dick</TITLE>

<AUTHOR Born="1819">Herman Melville</AUTHOR>

<PAGES>724</PAGES>

<PRICE>$9.95<![CDATA[(7.21 EUR.)

]]>

</PRICE>

</BOOK>

</INVENTORY>

 

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

Рисунок 1.8

Задание на самостоятельную работу:

Создать XML документ «Описание пород собак», используя ввсе компоненты, с которыми Вы ознакомились в данной работе

Часть№2

DTD

Лабораторная работа №1

Синтаксис DTD

Цель работы:

Изучить основы DTD

Ход работы:

DTD

Если синтаксис XML-документов успешно выдержал проверку, они называются

действительными; в частности, XML-документ считается действительным, если

в его состав включено определение DTD (document type definition, определение типа

документа) или XML-схема, а сам документ не противоречит схеме (определению

DTD). Отметим, что определения DTD задают структуру и синтаксис XML-документов (а не их содержание). Это все, что необходимо для создания действительного документа

Добавление DTD

Объявление типа документа представляет собой блок XML-разметки, который вы должны добавить в пролог валидного XML-документа. Он может располагаться в любом месте пролога – вне другой разметки – после XML-объявления, как показано на рисунке 2.0. (Напомним, что если вы включаете XML-объявление, оно должно располагаться в начале документа.)

 

Рисунок 2.0

Объявление типа документа определяет структуру документа. Если вы открываете документ, не содержащий объявления типа, в браузере, процессор браузера всего лишь осуществляет проверку документа на корректность формы составления. Если же вы открываете документ, содержащий объявление типа документа, процессор браузер будет проверять документ на валидность вместе с проверкой на корректность формы составления, так что ваш документ должен отвечать всем имеющимся декларациям в объявлении типа документа. Так, вы не сможете включить в документ какие-либо элементы или атрибуты, если вы не объявили их в объявлении типа документа. Каждый элемент и атрибут, который вы включаете, должен соответствовать спецификации (например, допустимости применения данного содержимого элемента или типа атрибута), выраженной в соответствующем объявлении.

Форма записи DTD

Объявление типа документа имеет следующую обобщенную форму записи:

<!DOCTYPE Имя DTD>

Здесь Имя указывает на имя элемента Документ. Имя действительного элемента Документ должно в точности соответствовать имени, записанному в объявлении.

Например, если вы создаете объявление типа документа для документа, рассмотренного в предыдущем разделе, вам следует использовать имя INVENTORY:

<!DOCTYPE INVENTORY DTD>

DTD состоит из символа левой квадратной скобки ([), после которой следует ряд объявлений разметки, заканчивающихся правой квадратной скобкой (]). Объявления разметки описывают логическую структуру документа; т.е. задают элементы документа, атрибуты и другие компоненты. На рисунке 2.1 приведен законченный валидный XML-документ, содержащий DTD с единственным объявлением разметки, которое определяет один тип элемента в документе, SIMPLE.

Рисунок 2.1

Типы объявляемых элементов

Существует пять различных видов моделей содержимого:

1. Пустые элементы

Простейшая модель, которую можно объявить, это пустой элемент, и состоит она из ключевого слова EMPTY. Например:

 

<!ELEMENT graphic EMPTY>

2. Элементы без ограничений на содержимое

Эта модель содержимого объявляет элемент, который может содержать любые другие элементы. Она использует ключевое слово ALL:

<!ELEMENT contain_anything ALL>

3. Элементы, содержащие только символьные данные

4. Элементы, содержащие только элементы

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

 

Такая модель содержимого может выглядеть, например, следующим образом:

 

<!ELEMENT article (para+)>

<!ELEMENT article (title, (para | sect1)+)>

<!ELEMENT article (title, subtitle?, ((para+, sect1*) | sect1+))>

5. Элементы со смешанным содержимым

Смешанное содержимое (mixed content) представляет собой смесь элементов и символьных данных. Элемент с содержимым этого т па должен объявляться с помощью модели содержимого, следующей такому шаблону:

 

<!ELEMENT para (#PCDATA | emphasis | xref)*>

Первым идет ключевое слово ELEMENT. За ним следуют имя элемента, список допустимых элементов и #PCDATA, разделяемых вертикальной чертой (|) и заключенных в круглые скобки, и, наконец,

 

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

Таблица 2.0

Символ Значение
?   + * Ни одного или один из предшествующих элементов Один или более из предшествующих элементов Ни одного или более из предшествующих элементов  

 

 

В качестве примера рассмотрим законченный XML-документ с двумя типами элементов. Объявление типа элемента COLLECTION указывает, что он может содержать один или несколько элементов CD, а объявление типа элемента CDуказывает, что он может содержать только символьные данные. Заметим, что документ соответствует этим объявлениям, и, следовательно, является валидным:

<?xml version="1.0" encoding="windows-1251" ?>

<!DOCTYPE COLLECTION

[

<!ELEMENT COLLECTION (CD)+>

<!ELEMENT CD (#PCDATA)>

<!-- Вы также можете включать комментарии в DTD. -->

]

>

<COLLECTION>

<CD>Mozart Violin Concertos 1, 2, and 3</CD>

<CD>Telemann Trumpet Concertos</CD>

<CD>Handel Concerti Grossi Op. 3</CD>

</COLLECTION>

Создайте валидный XML-документ, для это сделайте следующее:

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

Листинг 2.0

<?xml version="1.0" encoding="windows-1251"?>

<!DOCTYPE library

[

<!ELEMENT library (Book)+>

<!ELEMENT Book (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ELEMENT BINDING (#PCDATA)>

<!ELEMENT PAGES (#PCDATA)>

<!ELEMENT PRICE (#PCDATA)>

]

>

<library>

<BOOK>The Adventures of Huckleberry Finn</BOOK>

<AUTHOR>Mark Twain</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>298</PAGES>

<PRICE>$5.49</PRICE>

</library>

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

рисунке 2.2

 

 

Рисунок 2.2

Лабораторная работа №2

Дочернее содержимое элемента, задание смешанного содержимого

Цель работы:

Изучить дочерние содержимое элемента, способы задания смешанного содержимого в элементе

Ход работы:

Задание дочернего содержимого элемента

Если элемент имеет дочернее содержимое, он может непосредственно содержать только определенные дочерние элементы, но не символьные данные. В тексте документа вы можете разделять дочерние элементы символами пробела, табуляции, возврата каретки или перевода строки, чтобы улучшить восприятие документа, но процессор будет игнорировать эти символы и не передаст их приложению.

Рассмотрим следующий пример XML-документа, описывающий одну книгу:

<?xml version="1.0" encoding="windows-1251" ?><!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE, AUTHOR)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)>]> <BOOK> <TITLE>The Scarlet Letter</TITLE> <AUTHOR>Nathaniel Hawthorne</AUTHOR></BOOK>

В этом документе тип элемента BOOK объявлен как имеющий дочернее содержимое. (TITLE, AUTHOR), следующие за именем элемента в объявлении, составляют модель содержимого. Модель содержимого указывает на разрешенные типы дочерних элементов и их порядок. В этом примере модель содержимого указывает на то, что элемент BOOK должен иметь ровно один дочерний элемент TITLE, за которым следует ровно один дочерний элемент AUTHOR. При обработке документа процессор игнорирует три символа перехода на следующую строку, используемые для разделения дочерних элементов внутри элемента BOOK.

Модель содержимого может иметь одну из следующих основных форм.

· Последовательная. Последовательная форма модели содержимого указывает, что элемент должен иметь заданную последовательность дочерних элементов. Вы отделяете имена типов дочерних элементов запятыми. Например, следующее DTD указывает, что элемент MOUNTAIN должен иметь один дочерний элемент NAME, после которого идет один дочерний элемент HEIGHT, за которым следует один дочерний элемент STATE:

· <!DOCTYPE MOUNTAIN

· [

· <!ELEMENT MOUNTAIN (NAME, HEIGHT, STATE)>

· <!ELEMENT NAME (#PCDATA)>

· <!ELEMENT HEIGHT (#PCDATA)>

· <!ELEMENT STATE (#PCDATA)>

· ]

· >

Следовательно, следующий элемент Документ будет валидным:

<MOUNTAIN>

<NAME>Wheeler</NAME>

<HEIGHT>13161</HEIGHT>

<STATE>New Mexico</STATE>

</MOUNTAIN>

Следующий элемент Документ, однако, не будет валидным, поскольку порядок дочерних элементов не соответствует объявленному:

<MOUNTAIN> <!-- Неправильный элемент! -->

<STATE>New Mexico</STATE>

<NAME>Wheeler</NAME>

<HEIGHT>13161</HEIGHT>

</MOUNTAIN>

· Выборочная. Выборочная форма модели содержимого указывает, что элемент может иметь любой из серии допустимых дочерних элементов, разделяемых символом |. Например, следующее DTD указывает, что элемент FILM может состоять из одного дочернего элемента STAR, или одного дочернего элемента NARRATOR, или одного дочернего элемента INSTRUCTOR:

<!DOCTYPE FILM

[

<!ELEMENT FILM (STAR | NARRATOR | INSTRUCTOR)>

<!ELEMENT STAR (#PCDATA)>

<!ELEMENT NARRATOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

Следовательно, следующий элемент Документ будет валидным:

<FILM>

<STAR>Robert Redford</STAR>

</FILM>

Следующий элемент Документ не будет валидным, поскольку вы можете включить только один из дочерних элементов:

<FILM> <!-- Неправильный элемент! -->

<NARRATOR>Sir Gregory Parsloe</NARRATOR>

<INSTRUCTOR>Galahad Threepwood</INSTRUCTOR>

</FILM>

Наконец, вы можете формировать более сложные модели содержимого путем вложения выборочной модели содержимого внутрь последовательной модели, либо последовательной модели в выборочную модель. Например, следующее DTD задает, что каждый элемент FILM должен иметь один дочерний элемент TITLE; за ним должен следовать один дочерний элемент CLASS; после него должен идти один дочерний элемент STAR, NARRATOR или INSTRUCTOR:

<!DOCTYPE FILM

[

<!ELEMENT FILM (TITLE, CLASS, (STAR | NARRATOR |

INSTRUCTOR) )>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT CLASS (#PCDATA)>

<!ELEMENT STAR (#PCDATA)>

<!ELEMENT NARRATOR (#PCDATA)>

<!ELEMENT INSTRUCTOR (#PCDATA)>

]

>

В соответствии с этим DTD, следующий элемент Документ будет корректным:

<FILM>

<TITLE>The Net</TITLE>

<CLASS>fictional</CLASS>

<STAR>Sandra Bullok</STAR>

</FILM>

так же, как такой:

<FILM>

<TITLE>How to Use XML</TITLE>

<CLASS>instructional</CLASS>

<INSTRUCTOR>Penny Donaldson</INSTRUCTOR>

</FILM>

Создайте валидный XML –документ с дочерними элементами, для это сделайте следующее:

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

Листинг 2.1

<?xml version="1.0" encoding="windows-1251"?>

<!DOCTYPE library

[

<!ELEMENT library (BOOK | AUTHOR | BINDING | PAGES | PRICE )>

<!ELEMENT BOOK (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ELEMENT (#PCDATA)>

<!ELEMENT PAGES (#PCDATA)>

<!ELEMENT PRICE (#PCDATA)>

]

>

<library>

<PRICE>$5.49</PRICE>

<AUTHOR>Mark Twain</AUTHOR>

<PAGES>298</PAGES>

<BOOK>The Adventures of Huckleberry Finn</BOOK>

</library>

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

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

рисунке 2.3

Рисунок 2.3

 

 

Задание смешанного содержимого

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

Чтобы объявить тип элемента смешанного содержимого, вы можете воспользоваться одной из следующих форм модели содержимого.

  • Только символьные данные. Чтобы объявить тип элемента, который может содержать только символьные данные, используйте модель содержимого (#PCDATA). Так, следующее объявление указывает, что для элемента SUBTITLE допускаются только символьные данные:

<!ELEMENT SUBTITLE (#PCDATA)>

Следующие два элемента в соответствии с данной декларацией являются корректными:

<SUBTITLE>A New Approach</SUBTITLE>

<SUBTITLE></SUBTITLE>

· Символьные данные с необязательными дочерними элементами. Чтобы объявить тип элемента, который может содержать символьные данные плюс ни одного или несколько дочерних элементов, перечислите каждый тип дочернего элемента после ключевого слова PCDATA в модели содержимого, разделяя их символами | и помещая звездочку (*) в конце всей модели содержимого. Каждое имя элемента может появляться в модели содержимого только один раз. Например, следующее объявление указывает, что элемент TITLE может содержать символьные данные плюс ни одного или несколько дочерних элементов SUBTITLE:

 

<!ELEMENT TITLE (#PCDATA | SUBTITLE)*>

В соответствии с этим объявлением следующие элементы TITLE являются допустимыми:

<TITLE>

Moby-Dick

<SUBTITLE>Or, the Whale</SUBTITLE>

</TITLE>

<TITLE>

<SUBTITLE>Or, the Whale</SUBTITLE>

Moby-Dick

</TITLE>

<TITLE>

Moby-Dick

</TITLE>

<TITLE>

<SUBTITLE>Or, the Whale</SUBTITLE>

<SUBTITLE>Another Subtitle</SUBTITLE>

</TITLE>

Лабораторная работа №3

Атрибуты

Цель работы:

Изучить атрибуты, используемые в DTD

Ход работы:

Объявление атрибутов

Объявление списка атрибутов имеет следующую общую форму:

<!ATTLIST Имя ОпрАтр>

Допустим, вы объявили тип элемента с именем FILM следующим образом:

<!ELEMENT FILM (TITLE, (STAR | NARRATOR | INSTRUCTOR) )>

Вот пример объявления списка атрибутов, которое описывает два атрибута – Class и Year – для элемента FILM:

<!ATTLIST FILM Class CDATA "fictional" Year CDATA #REQUIRED>


Эта страница нарушает авторские права

allrefrs.ru - 2018 год. Все права принадлежат их авторам!