Emacs для начинающих



         

Объявления SGML и DTD


PSGML не требует, обязательного включения в документ объявления SGML. Даже если такое SGML-объявление будет включено, PSGML проигнорирует его. PSGML использует Reference Concrete Syntax, но не поддерживает ограничения, накладываемые этим документом, на длину имени типа элемента.

PSGML должен знать, где обнаружить описания элементов DTD. Сообщить PSGML о местоположении описания элементов DTD можно тремя способами:

  • Через идентификатор SYSTEM в объявлении DOCTYPE.
  • Через идентификатор PUBLIC в объявлении DOCTYPE.
  • Через установку соответствующей переменной PSGML в Emacs.

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

Идентификатор SYSTEM - самый простой метод. Он вставляется в DOCTYPE определение, подобное приведенному ниже

<!DOCTYPE chapter SYSTEM "mybook.dtd">


ключевое слово SYSTEM сообщает программному обеспечению, что DTD находятся в файле "mybook.dtd". При использовании вышеупомянутого объявления в большинстве операционных систем программное обеспечение ищет данный файл в каталоге файла документа. В некоторых системах можно задать полное имя файла:

<!DOCTYPE chapter system "\dev\sgml\dtds\mybook.dtd">

Некоторое программное обеспечение SGML более придирчиво относится к имени пути, ожидая встретить в имени пути прямые слеши "/", характерные для UNIX, вместо обратных "\", даже если используется система DOS или Windows. У PSGML не возникает никаких проблем со стилем DOS.

Идентификатор PUBLIC популярен при использовании известных элементов DTD. Объявление DOCTYPE включает строку после слова PUBLIC, как, например, в случае с DocBook DTD:

<!DOCTYPE chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN">

Тем не менее приложение SGML (в данном случае PSGML) все же должно знать, где лежит копия этого "общественного" DTD. Наиболее общий способ сообщить приложению данную информацию - через файл каталога в формате, определенном SGML Open Technical Resolution 9401:1995. Каждый вход этого файла (обычно называемый каталогом(catalog)), начинающийся с ключевого слова PUBLIC, идентифицирует DTD и фактическое имя файла системной копии DTD, а, в случае необходимости, его местоположение. Ниже приводятся примеры входов для DocBook и DTD HTML:




Содержание  Назад  Вперед