关于DTD,FireFox好像对外部的ENTITY声明格式不支持。
例如,在外部DTD文件test.dtd中声明:
<!ENTITY reg "®">
而在test.xml文件中写:
<!DOCTYPE books SYSTEM "./test.dtd"
……
<title>C# Programming ®</title>
……
但是Firefox提示:XML Parsing Error: undefined entity
很显然,Firefox对外部DTD中的ENTITY没有理会,大家尽量把ELEMENT的dtd声明放在xml文件内部。这样就没有问题了。
不过,类似情况没有在ie6中出现。它会正常显示一个带圆圈的R。
话说回来,Firefox对外部dtd的ELEMENT和ATTLIST的支持还是没有问题的。
此外,FireFox对一些XLS格式不支持,所以如果你像对一些xml文件修饰一下,不妨考虑用css的方式。
还有一点,浏览器对DTD的格式检查的不多,例如,属性如果设为ID并且不同实体的属性值相同的话,浏览器并不报错,而且其他一些xml的dtd规定在浏览器中似乎并没有得到检查。所以,你想确保你的XML文件没有问题,不妨另外找一个检验器。
总之,大家写在浏览器中直接显示的xml文件时,不妨多用几种浏览器,以确定能被尽可能多的浏览器支持。
例如,在外部DTD文件test.dtd中声明:
<!ENTITY reg "®">
而在test.xml文件中写:
<!DOCTYPE books SYSTEM "./test.dtd"
……
<title>C# Programming ®</title>
……
但是Firefox提示:XML Parsing Error: undefined entity
很显然,Firefox对外部DTD中的ENTITY没有理会,大家尽量把ELEMENT的dtd声明放在xml文件内部。这样就没有问题了。
不过,类似情况没有在ie6中出现。它会正常显示一个带圆圈的R。
话说回来,Firefox对外部dtd的ELEMENT和ATTLIST的支持还是没有问题的。
此外,FireFox对一些XLS格式不支持,所以如果你像对一些xml文件修饰一下,不妨考虑用css的方式。
还有一点,浏览器对DTD的格式检查的不多,例如,属性如果设为ID并且不同实体的属性值相同的话,浏览器并不报错,而且其他一些xml的dtd规定在浏览器中似乎并没有得到检查。所以,你想确保你的XML文件没有问题,不妨另外找一个检验器。
总之,大家写在浏览器中直接显示的xml文件时,不妨多用几种浏览器,以确定能被尽可能多的浏览器支持。