xml - 注释语音语法 xml (SRGS) 中的 DTD

标签 xml dtd

有人可以解释一下为什么这两个引号行在 <!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN" "http://www.w3.org/TR/speech-grammar/grammar.dtd"> ?这是来自官方 SRGS (http://www.w3.org/TR/speech-grammar/) 文档的第 2.7 节。人们可能会认为仅后一个引用的行记录了 dtd 的位置就足够了。我怀疑这与指定英语语言有关,但该文件没有解释这一点。谢谢。

最佳答案

如果 XML 文档对于 DTD 来说是有效的,则只有后一个字符串(系统标识符)必须存在。

第一个带引号的字符串是公共(public)标识符,它是可选的。它用于通过名称而不是物理地址来唯一标识 DTD(或其他外部标识符)。通常可以认为公共(public)标识符比 http:file: URL 更稳定。即使系统标识符错误,或者互联网访问中断(例如),它也可以定位 DTD。

只用就可以了

<!DOCTYPE grammar SYSTEM "http://www.w3.org/TR/speech-grammar/grammar.dtd">

请注意本例中 SYSTEM 关键字的使用。

另请参阅http://www.xml.com/axml/target.html#sec-external-ent .

关于 W3C 托管的 DTD 的使用,您可能会对 http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic/ 感兴趣。 .

关于xml - 注释语音语法 xml (SRGS) 中的 DTD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688092/

相关文章:

mysql - xslt-processor 仅返回请求/匹配标签的一小部分

c# - 在xml中一次添加多个节点

xml - DTD ATTLIST 数字范围

java - 使用 Java 针对本地 DTD 文件验证 XML 文件

java - 离线工作 java Hibernate 3.3.2.GA?

java - Struts 2.5 更新操作 validator 问题(条件验证)

css - 如何将 HTML 语义分配给我的 XML 元素以使其在我的网络浏览器中呈现?

xml - 如何处理 Nokogiri 的 XPath 表达式中的转义字符

android - 是否可以在 Android 运行时交换 XML 布局?

c# - XmlDocument.CreateDocumentType 方法超时