以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  请问怎样在一个 XML 文件中声明多个外部 DTD 文件  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=39914)


--  作者:fishbone
--  发布时间:11/11/2006 2:49:00 PM

--  请问怎样在一个 XML 文件中声明多个外部 DTD 文件

在做 Firefox 扩展的本地化时遇到这样一个问题。需要在一个 XML 文件(实际上是 XUL 文件,与 XML 文件类似) 中声明两个外部 DTD 文件,让 XML 文件可以引用这两个 DTD 文件定义的实体。两个 DTD 文件,一个是我定义的 cooliris.dtd 文件,用来本地化 XML 文件里的文本;另一个是原扩展已经引用的 dictionarytip.dtd 文件,可能是 Firefox 内部的一个 DTD 文件。

一开始我使用下面的方法声明两个 DTD 文件,结果失败。已经在 cooliris.dtd 里定义过的实体,却提示说“未定义”。

<!DOCTYPE window [
<!ENTITY % dictionarytipDTD SYSTEM "chrome://dictionarytip/locale/dictionarytip.dtd" >
%dictionarytipDTD;
<!ENTITY % coolirisDTD SYSTEM "chrome://cooliris/locale/cooliris.dtd" >
%coolirisDTD;
]>

然后使用下面的方法声明实体。现在 cooliris.dtd 文件的实体引用成功,但 dictionarytip.dtd 有没有问题没法测试,因为我压根儿就不知道这个文件是干嘛的。

<!DOCTYPE window SYSTEM "chrome://dictionarytip/locale/dictionarytip.dtd" [
<!ENTITY % coolirisDTD SYSTEM "chrome://cooliris/locale/cooliris.dtd" >
%coolirisDTD;
]>

现在想问下熟悉 XML 的同学,我这样声明实体对不对。到底应该怎样在一个 XML 文件里声明两个外部 DTD 文件。谢谢。有 Firefox 本地化经验的同学也可以帮忙看看,原扩展在这里 https://addons.mozilla.org/firefox/2207/


[此贴子已经被作者于2006-11-11 17:51:46编辑过]

--  作者:enbi
--  发布时间:11/14/2006 11:43:00 PM

--  
<!DOCTYPE  [根节点名] SYSTEM [DTD路径]>
--  作者:fishbone
--  发布时间:11/18/2006 11:49:00 PM

--  
对不起,还是不太明白。
这样不是只能声明一个外部 DTD 文件吗? 如果有两个 DTD 文件需要声明,你怎样写 DTD 路径呢?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms