[docs] psgml - precompiled dtd в emacs

Evgenij M. Baldin E.M.Baldin на inp.nsk.su
Сб Сен 21 08:20:27 MSD 2002


Добрый день

Кому любопытно (имеет смысл вставить в документацию, если я не 
опаздал): ликвидация одного из самых раздражающих факторов при 
редактировании xml файлов в emacs  - зависание на 
несколько секунд emacs при чтении dtd

В головном файле, или в файле с таким же типом dtd говорите
M-x sgml-save-dtd - создаётся файл c расширением ced, далее в других 
файлах в конце документа надо вписать что-то вроде: 

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
sgml-default-dtd-file:"../Cyrillic-HOWTO-russian.ced"
sgml-recompile-out-of-date-cdtd:t
End:
-->


базовые конструкцию можно создать с помощью 'M-x sgml-save-options'

Основной интерес представляет строчка 

sgml-default-dtd-file:"../Cyrillic-HOWTO-russian.ced"

которая и указывает на файл с compiled dtd

Интерес представляет и срока

sgml-recompile-out-of-date-cdtd:t

которая означает, что в случае устаревания ced файла - он автоматически 
пересобирается, можно поставить опцию, чтобы он спрашивал

Пара любопытных деталей:

Для изменения стандартной строки проверки валидности документа 
(C^c C^v [RET]) можно воспользоваться строкой вида 

sgml-validate-command:"xmllint -\-noout -\-postvalid -\-xinclude %s %s"

\ - слэш нужен, для того чтобы во время проверки программа не вопила про 
два подряд тире "--" в комментариях

При разбивке документа на части (не через xinclude) а через стандартную 
вставку необходимый dtd файла можно определить через 

 sgml-parent-document (PARENT-FILE CONTEXT-ELEMENT* TOP-ELEMENT (HAS-SEEN-ELEMENT*)?) 

подробности в разделе 
pinfo psgml ->  Managing the DTD -> Using a Split Document

С уважением
	Евгений

-- 
---------------------------------------------------------------------------
                  Budker Institute of Nuclear Physics
                     e-mail: E.M.Baldin на inp.nsk.su
	           WWW: http://www.inp.nsk.su/~baldin
---------------------------------------------------------------------------




Подробная информация о списке рассылки docs