Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

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

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

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

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

<!ELEMENT SUBTITLE (#PCDATA)>

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

<SUBTITLE>Новый подход</SUBTITLE>

<SUBTITLE></SUBTITLE>

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

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

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

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

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

<TITLE>

Языки разметки документов

<SUBTITLE>Язык XML</SUBTITLE>

</TITLE>

<TITLE>

<SUBTITLE>Язык XML</SUBTITLE>

Языки разметки документов

</TITLE>

<TITLE>

Языки разметки документов

</TITLE>

<TITLE>

<SUBTITLE>Язык XML</SUBTITLE>

<SUBTITLE> Язык MathML </SUBTITLE>

</TITLE>

<ТITLE></TITLE>

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

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

  2. В созданный XML-документ вставьте объявление типа документа DTD. Для указания фамилии, имени и отчества используйте последовательную форму модели дочерних элементов. Для указания даты рождения и места проживания, а также для указания физических данных используйте выборочную форму модели дочерних элементов.

  3. Для отображения документа в браузере создайте новую таблицу какскадных стилей, предварительно согласовав её с преподавателем.

  4. Сохраните созданный документ в папке под своей фамилией.

  5. Закройте текстовый редактор “Блокнот”.

  6. Откройте для просмотра созданный XML-документ в браузере Internet Explorer.

  7. При появлении сообщений об ошибках, постарайтесь их найти и устранить.

  8. Сдайте работу преподавателю.