Вы можете загрузить PSGML с
домашней страницы PSGML
или, если вы пользователь Mandrakelinux и у вас есть источник с
«дополнительным ПО» или CD, настроенные
в Менеджере источников программ, простой запуск urpmi
psgml установит PSGML.
2.2. Осведомлённость о DTD
Режим PSGML прекрасно осведомлён о DTD. Это означает,
что при использовании PSGML вы всегда получите правильно сформированные и
действительные XML-файлы. Пожалуйста, обратитесь к
The XML FAQ для
получения дополнительной информации о значении терминов
«well-formed» и «valid».
PSGML'у необходимо каким-либо образом сообщить о DTD,
которому соответствует ваш модуль, чтобы он был «осведомлён»
об этом шаблоне. Для этого Borges вставляет в конец каждого исходного
XML-файла модуля:
<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-parent-document: ("../../manuals/module/en/psgml-top.xml" "корневой_элемент")
End:
-->
где mode: xml гарантирует, что
Emacs войдёт в режим XML после автоматической загрузки PSGML, когда
вы откроете в нём исходный XML-файл модуля, а
корневой_элемент должен быть заменён корневым элементом
модуля, например, chapter, если рассматриваемый модуль
является chapter'ом.
Подсказка
Если вас что-то удивляет, то имя файла psgml-top.xml
автоматически создаётся в каталоге manuals/module/ при
настройке Borges.
2.3. Основные команды PSGML
Режим PSGML добавляет мощные команды, которые берут на себя ввод тегов и/или
атрибутов элементов при работе с простыми текстовыми XML-файлами.
Замечание
В следующей таблице перечислены некоторые команды
PSGML без какого-либо порядка или приоритета. Пожалуйста, обратитесь к
документации
PSGML для получения полного списка доступных команд.
Подсказка
Если вы видите, что-то вроде Ctrl-C-Ctrl-E, это означает, что вы должны нажать клавиши Control плюс C и
сразу после этого клавиши Control плюс E.
Таблица 5.1. Команды PSGML
Команда | Комбинация клавиш или пункт меню | Описание |
---|
Вставка элемента | Ctrl-C-Ctrl-E | Вставляет элемент, ограниченный шаблоном DTD. Т.е. могут быть вставлены элементы, разрешённые DTD. Если вы нажмёте клавишу Tab key, в мини-буфере Emacs будет показан список действительных элементов. Если для вставляемого элемента требуются атрибуты, вам будет предложено ввести их значения в мини-буфере Emacs'а. |
Проверка файла | Ctrl-C-Ctrl-V | Загружает DTD, делает его синтаксический разбор (если ещё сделан), а затем показывает в мини-буфере Emacs'а внешнюю команду проверки. При нажатии на клавишу Enter будет выполнена проверка файла с выводом списка найденных ошибок. |
Переход к следующей ошибке | Ctrl-C-Ctrl-O | Эта команда включает в себя проверку, но вместо вывода списка ошибок она останавливается на первой найденной ошибке и показывает в мини-буфере Emacs'а сообщение об этой ошибке. Это более предпочтительный способ проверки файлов. |
Завершение элемента | Ctrl-C-/ | Закрывает текущий открытый элемент. По сути команда вставки элемента вставляет соответствующим образом открывающий и закрывающий теги, но если вы вводите имя элемента и хотите закрыть его, на набирая весь закрывающий тег, то вам пригодится эта команда. |
Список действительных тегов | Ctrl-C-Ctrl-T | Выводит список всех действительных тегов, которые могут быть вставлены с текущего положения курсора. Это полезно при работе со «сложными»DTDs (типа DocBook), где некоторые элементы могут включать в себя десятки элементов, и вы при всём желании не сможете запомнить их все. Она может быть использована как быстрый «напоминатель»DTD. |
Сворачивание элемента | Ctrl-C-Ctrl-F-Ctrl-E | Сворачивает элемент, в котором находится курсор. Это очень удобно, когда вы работаете с большими файлами и вам нужно быстро просмотреть структуру документа (или его части). Эффект сворачивания элемента заключается в том, что показываются только открывающий тег и одна строка контента с окончанием, заключённым в круглые скобки (...). |
Разворачивание элемента | Ctrl-C-Ctrl-U-Ctrl-E | Разворачивает свёрнутый элемент, в котором находится курсор. |
Вставка атрибута | -> | Выводит список атрибутов, действительных для элемента под курсором, из которого вы можете выбрать тот, который вы хотите вставить. Если для выбранного атрибута требуется значение, вам будет предложено ввести его в мини-буфере Emacs'а. |