如何让 Sarissa 在解析 XML 时使用 DTD?
我正在使用 Sarissa 将 XML 字符串转换为 DOM 文档对象。一切正常,只是 Sarissa 完全忽略了我的 DTD。没有注意到与 DTD 规则的偏差,也没有看到任何有关未找到 DTD 的消息。
我的 XML 开头如下:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE workspace SYSTEM "dtd/config.dtd">
我的 JavaScript 如下所示:
function toXML(str) {
var responseDoc = (new DOMParser()).parseFromString(str, "text/xml");
...
}
如何让 Sarissa 使用 DTD?
I am using Sarissa to convert a string of XML into a DOM document object. Everything is working except that Sarissa is completely ignoring my DTD. Deviations from the DTD rules are not noticed, nor do I see any messages about the DTD not being found.
My XML starts like this:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE workspace SYSTEM "dtd/config.dtd">
and my JavaScript looks like this:
function toXML(str) {
var responseDoc = (new DOMParser()).parseFromString(str, "text/xml");
...
}
How can I get Sarissa to use the DTD?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Sarissa的源代码没有任何非常特殊的DOMParser()解析代码。它基本上封装了 IE、Safari 或 Firefox/Opera 的本机实现,这些实现可能无法在您使用的浏览器中解析 DTD,因为遗憾的是外部 DTD 解析是 XML 的一个可选方面(即使对于实体也是如此),并且验证更不确定。网络迫使人们使用服务器端替换(或者可能是内部文档子集定义,就验证而言,这些定义仍然可能被忽略)。
Sarissa's source code does not have any very special parsing code for DOMParser(). It basically wraps IE's, Safari's, or the Firefox/Opera native implementation, which may not parse DTDs in the browser you are using, since external DTD parsing is sadly an optional aspect of XML (even for entities), and validation is even less certain. The web kind of forces a person to work with server-side substitutions (or possibly internal document subset definitions which may still be ignored as far as validation).