Как копировать документ DTD во время преобразования XSL?

У меня есть следующий документ DTD в верхней части XML-файла, созданного нашим программным обеспечением для редактирования:

<!DOCTYPE front SYSTEM "file:///M:/Library/AMH-Paed.dtd" [
<!NOTATION cgm PUBLIC "" >
<!-- Begin Document Specific Declarations --><!ENTITY fm.tcont " (Continued)">
<!ENTITY equation1 SYSTEM "equation11.cgm" NDATA cgm>
<!ENTITY equation2 SYSTEM "equation26.cgm" NDATA cgm>
<!ENTITY equation3 SYSTEM "equation32.cgm" NDATA cgm>
<!ENTITY equation4 SYSTEM "equation41.cgm" NDATA cgm>
<!ENTITY equation5 SYSTEM "equation51.cgm" NDATA cgm>
<!ENTITY equation6 SYSTEM "equation62.cgm" NDATA cgm>
<!-- End Document Specific Declarations -->]>

Мы обновляем общий тип документа для нашего контента и, таким образом, преобразуем текущие файлы XML с помощью XSLT.

У нас есть пара сотен документов, но только у нескольких из них есть какие-то конкретные декларации (которые различаются по количеству, имени и стоимости), которые мы должны поддерживать при преобразовании.

Тем не менее, я не могу найти способ поддерживать вышеуказанные объявления сущности посредством преобразования.

Возможно ли это, и как бы вы это сделали?

1 ответ

Декларации DTD не являются частью модели данных, представленной процессору XSLT, поэтому это нельзя сделать напрямую.

Обходной путь должен использовать инструмент Лексева от Эндрю Уэлча. Это преобразует DTD в представление XML в качестве этапа предварительной обработки, а затем выполняет обратное действие в качестве этапа последующей обработки.

Другие вопросы по тегам