Объявление общего внешнего не разбираемого примитива
Объявление для общего внешнего не разбираемого примитива имеет следующую форму записи:
<!ENTITY ИмяПримитива SYSTEM СистемЛитерал NDATA ИмяНотации>
Здесь ИмяПримитива есть имя примитива. Вы можете выбрать любое имя, следуя правилам, приведенным в разделе "Объявление общего внутреннего разбираемого примитива" ранее в этой лекции.
СистемЛитерал есть системный литерал, который описывает местонахождение файла, содержащего данные примитива. Он действует точно так же, как системный литерал для описания местоположения общего внешнего разбираемого примитива (см. предыдущий раздел).
Примечание. Ключевое слово NDATA указывает, что файл примитива содержит не разбираемые данные (они не обрабатываются синтаксическим анализатором).
ИмяНотации есть имя нотации, объявленной в DTD. Нотация описывает формат данных, содержащихся в файле примитива, или указывает на местонахождение программы, которая может обрабатывать эти данные. Об объявлении нотации будет говориться в следующем разделе.
Файл не разбираемого внешнего примитива может содержать любой тип текста или не текстовые данные. Они должны, конечно, соответствовать описанию формата, определяемого соответствующей нотацией.
Например, DTD в следующем XML-документе определяет файл Faun.gif (который содержит рисунок обложки книги) как общий внешний не разбираемый примитив с именем faun. Имя нотации этого примитива – GIF. Она указывает на местонахождение программы, которая отображает графические файлы в формате GIF (ShowGif.exe). DTD также определяет пустой элемент с именем COVERIMAGE и атрибут типа ENTITY для этого элемента с именем Source:
<?xml version="1.0"?> <!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE, AUTHOR, COVERIMAGE)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> <!ELEMENT COVERIMAGE EMPTY> <!ATTLIST COVERIMAGE Source ENTITY #REQUIRED> <!NOTATION GIF SYSTEM "ShowGif.exe"> <!ENTITY faun SYSTEM "Faun.gif" NDATA GIF> ] > <BOOK> <TITLE>The Marble Faun</TITLE> <AUTHOR>Nathaniel Hawthorne</AUTHOR< <COVERIMAGE Source="faun" /> </BOOK>
В элементе Документ атрибуту Source элемента COVERIMAGE присвоено имя внешнего примитива, который содержит графические данные для отображения рисунка обложки. Поскольку Source имеет тип ENTITY, вы можете присвоить ему имя общего внешнего не разбираемого примитива. Фактически единственный способ использования этого типа примитива состоит в присвоении его имени атрибуту с типом ENTITY или ENTITIES.
Примечание. В отличие от файла внешнего разбираемого примитива, к файлу внешнего не разбираемого примитива XML-процессор прямого доступа не имеет. Процессор просто делает примитив и его нотацию доступными приложению, которое может выполнять необходимые действия с этой информацией. (Например, оно может запустить программу, ассоциированную с нотацией, и указать ей отобразить данные из файла примитива.) В лекции 9 вы узнаете, как писать сценарии Web-страниц, которые могут получать доступ к примитивам и нотациям.