Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-02.doc
Скачиваний:
5
Добавлен:
12.05.2015
Размер:
137.22 Кб
Скачать

4.1.8.3. Параметрические сущности

Еще одним видом сущности являются пара­метрические сущности или сущности-параметры. Сущности этого типа используются только во внешних DTDдля более гибкого описания логической структуры до­кумента. Ссылки на параметрические сущности вDTDимеют следующий вид:

%имя;

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

<!ENTITY %имя"значение-1 значение-2…">

Параметр имяопределяет имя параметрической сущности, а параметрызначение-iопределяют значения сущностей. В качестве значения сущностей могут использоваться данные типаCDATA, а также параметрические сущности.

Пример использования параметрических сущностей:

Ниже приведены фрагменты DTDспецификацииHTML4.01 (файлstrict.dtd), описывающие элементbr:

<!ENTITY % StyleSheet "CDATA">

<!ENTITY % Text "CDATA">

<!ENTITY % coreattrs

"id ID #IMPLIED

class CDATA #IMPLIED

style %StyleSheet; #IMPLIED

title %Text; #IMPLIED"

>

<!ELEMENT BR EMPTY>

<!ATTLIST BR

%coreattrs;

>

4.1.9. Определение нотации

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

Определение нотации может быть представлено в одном из следующих форматов:

<!NOTATION имя SYSTEM "URI">

<!NOTATION имя PUBLIC "владелец" "URI ">

<!NOTATIONимяPUBLIC "владелец">

Существует два основных способа применения нотаций:

  • объяв­ление неанализируемых сущностей и использование их имен в атрибутах типа ENTITYилиENTITIES;

  • указание имени нотации в атрибуте типа NOTATION.

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

Пример использование неанализируемых сущностей в атрибутах элементов:

<!DOCTYPE menu [

<!ELEMENT menu (menuitem*)>

<!ELEMENT menuitem EMPTY>

<!ATTLIST menuitem

Image entity #required

title CDATA #REQUIRED

href CDATA #REQUIRED

>

<!NOTATION gif SYSTEM "gif-viewer.exe">

<!NOTATION jpg SYSTEM "jpg-viewer.exe">

<!ENTITY news SYSTEM "news.gif" NDATA gif>

<!ENTITY products SYSTEM "prod.jpg" NDATA jpg>

<!ENTITY support SYSTEM "support.gif" NDATA gif>

]>

<menu>

<menuitem image="news" title="News" href="news.htm"/>

<menuitem image="products" title="Products"

href="products.htm"/>

<menuitem image="support" title="Support"

href="support.htm"/>

</menu>

В этом примере определения нотации с именами gifиjpgопределяют приложения для обработки изображений форматов.gifи.jpeg, а сущности с именами определяют соответственно ссылки на нотации с именамиgifиjpg. В элементахmenuitemзначения атрибутовimageявляются соответственно сущностямиnews,productsиsupport.

Таким образом, анализируя определение сущности, например, products, обрабатывающая программа определит, что это – неанализируемая внешняя сущность форматаjpg, которая хранится в файлеprod.jpgи для обработки которой нужно использовать приложениеjpg-viewer.exe.

Вторым способом использования нотаций является присвоение определен­ного формата содержимому элемента. Один (но не более чем один) из атри­бутов элемента может иметь тип NOTATION. Значением этого атрибута долж­но быть имя нотации, которое и будет задавать формат содержимого элемента.

Пример использования нотаций для определения формата содержимого элемента:

<!DOCTYPE root [

<!ELEMENT root (#PCDATA)>

<!ATTLIST root

type NOTATION (rtf|htm|txt) #REQUIRED>

<!NOTATION rtf SYSTEM "winword.exe">

<!NOTATION htm SYSTEM "iexplore.exe">

<!NOTATION txt SYSTEM "notepad.exe">

]>

<root type="htm">

<![CDATA[

<html>

<head>

<title>Welcome Page</title>

</head>

<body>

<h1>Добро пожаловать на наш сайт!</h1>

</body>

</html>

]]>

</root>

В этом документе определяется три нотации и, соответственно, три формата данных: rtf,htmиtxt. Значениеhtmатрибутаtypeэлементаrootопределяет формат данных, и, соответственно программу, которая будет вызываться для обработки этого документа.

Соседние файлы в папке Лекции