XML文件中的DOCTYPE是什么意思?

5
在Hibernate中,我们使用配置和映射XML文件。在XML中,第一行将是版本号,然后我们指定DOCTYPE DTD行。例如:
<!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

请问有人能解释一下这是什么意思吗?我知道DTD是文档类型定义,就像为XML定义语法。

我想知道这个声明中的属性。

2个回答

6
您所提到的行是文档类型声明。
它在W3C的XML推荐中有记录,链接在这里:http://www.w3.org/TR/xml/#dt-doctype 它指定了在处理文档时要使用的DTD。有两种机制可用于指定此内容:
1. 可选的PUBLIC标识符(现在很少见),在您的示例中为“-//Hibernate/Hibernate Mapping DTD 3.0//EN”。解析此标识符以获取DTD资源的机制是特定于应用程序的。
2. SYSTEM标识符,在您的示例中为“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”。通常将其解释为可以检索DTD的URL。

2
一个文档类型定义(Doctype)描述了XML文件遵循哪个DTD。
具体来说,它:
1. 定义了哪些元素可以出现在其他元素内(用于验证) 2. 指定了可用的命名字符引用(除了5个XML内置的引用:&amp;、&lt;、&gt;、&apos;和&quot;)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接