如何在XSL转换期间复制文档特定的DTD?

时间:2013-03-21 05:39:28

标签: xml xslt xml-dtd dtd-parsing

我在编辑软件创建的XML文件的顶部有以下文档特定的DTD:

<!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 -->]>

我们正在更新内容的常规文档类型,因此通过XSLT转换当前的XML文件。

我们有几百个文档,但只有少数文档具有任何特定声明(数量,名称和值不同),我们必须通过转换来维护这些声明。

但是,我找不到通过转换维护上述实体声明的方法。

有可能,你会怎么做?

1 个答案:

答案 0 :(得分:1)

DTD声明不是提供给XSLT处理器的数据模型的一部分,因此无法直接完成。

解决方法是使用Andrew Welch的Lexev工具。这将DTD转换为XML表示形式作为预处理步骤,然后反过来作为后处理步骤。