如何让 Sarissa 在解析 XML 时使用 DTD?

发布于 2024-11-05 07:48:34 字数 440 浏览 4 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魂归处 2024-11-12 07:48:34

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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文