Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Таранова / Лекция-7xml.pptx
Скачиваний:
66
Добавлен:
19.05.2015
Размер:
469.09 Кб
Скачать

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

Для элементов, содержащих символьные данные, но не другие элементы, используйте модель содержимого (#PCDATA):

<!ELEMENT emphasis (#PCDATA)>

Ключевое слово #PCDATA происходит от «parsedcharacter data» (анализируемые символьные данные). Это означает, что все символы будут проверены анализатором XML на наличие ссылок на сущности, которые будут заменены на соответствующие значения сущностей.

31

Зарезервированные слова и символы

#PCDATA

ELEMENT

Содержимое элемента может быть анализируемыми

 

символьными данными.

()

В объявлении модели содержимого для элемента требуются

 

как минимум одни круглые скобки (можно вкладывать

 

дополнительные скобки). Дополнительные скобки могут

 

понадобиться для уточнения более сложной модели

 

содержимого для элемента.

|

Вертикальная черта используется для отделения двух

 

именованных элементов. При использовании она указывает,

 

что любой из элементов (до или после вертикальной черты)

 

может отображаться как дочерний элемент.

,

Запятая используется для отделения двух именованных

 

элементов или вложенных правил.

?

При использовании указывает, что предыдущий элемент или

 

правило является необязательным. Может использоваться

 

только один раз в данном фрагменте структуры XML-

 

документа

+

При использовании указывает, что предыдущий элемент или

 

правило является обязательным. Может использоваться

 

более одного раза в данном фрагменте структуры XML-

*

документа.

При использовании указывает, что предыдущий элемент или

правило является необязательным. Может использоваться 32

 

более одного раза в данном фрагменте структуры XML-

XML-документ: <letter>

<title>Заголовок письма</title> <message>Текст письма</message> </letter>

DTD-схема:

<!ELEMENT letter (title, message)> <!ELEMENT title (#PCDATA)> <!ELEMENT message (#PCDATA)>

33

<!ELEMENT issue (title, author+, table-of- contents?)>

В этом примере указывается, что внутри элемента <issue> должны быть определены элементы title, author и table- of-contents, причем элемент title является обязательным элементом и может встречаться лишь однажды, элемент author может встречаться несколько раз, а элемент table-of-contents может отсутствовать

34

<?xml version="1.0"?> <! DOCTYPE journal [

<!ELEMENT contacts (address, tel+, email?)> <!ELEMENT address (street, appt)> <!ELEMENT street PCDATA>

<!ELEMENT appt (PCDATA | EMPTY)*> <!ELEMENT tel PCDATA>

<!ELEMENT email PCDATA> ]>

<contacts>

<address>

<street>Marks avenue</street> <appt id="4">

</address> <tel>12-12-12</tel> <tel>46-23-62</tel> <email>info@j.com</email>

</contacts>

35

Инструкция ENTITY

Инструкция ENTITY используется для определения сущностей в DTD с целью их использования как в связанном с DTD XML-документе, так и собственно в DTD. ENTITY представляет собой сокращенную запись для размещения в XML- документе.

36

DTD-схема:

<!ENTITY name “Hello, world!”> XML-документ:

<element>&name;</element>

37

<?xml version="1.0"?>

<!DOCTYPE message SYSTEM "5.dtd"

[

<!ENTITY client "Mr. Rufus Xavier Sasperilla"> <!ENTITY agent "Ms. Sally Tashuns">

<!ENTITY phone "<number>617 555 1299</number>"> ]>

<message>

<opening>Dear &client;</opening>

<body>We have an exciting opportunity for you! A set of ocean front cliff dwellings in Piñata, Mexico have been renovated as time share vacation homes. They're going fast! To reserve a place for your holiday, call &agent; at &phone;. Hurry, &client;. Time is running out!</body>

</message>

38

Инструкция NOTATION

Синтаксис объявления типа нотации следующий:

<!NOTATION name identifier>

Здесь name является именем типа нотации, а identifier – внешним идентификатором, имеющим определенное значение для процессора XML. Какое именно значение, зависит от приложения.

В широком смысле, нотация является особой меткой, сообщающей процессору XML о том, какого типа данные он рассматривает в данный момент. Пометка нетекстовых данных является одним из применений нотаций. Другим из них является пометка текстовых данных, имеющих особый формат, например, дат.

39

Корневой элемент XXX должен содержать ровно один элемент AAA, а за ним - ровно один BBB. Элементы AAA и BBB могут содержать некоторый текст, но не могут содержать другие элементы.

<!

ELEMENT<! XXX (AAA , BB ELEMENTB)> AAA (#PCDATA)>

<!

ELEMENT BBB (#PCDATA)>

40

Соседние файлы в папке Таранова