有人可以解释一下为什么这两个引号行在
<!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/