XML 文档构建模块
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
-
元素 <!ELEMENT hibernate-configuration (session-factory,security?)>
<!ELEMENT 元素名称 类别>
-
属性 <!ATTLIST property name CDATA #REQUIRED>
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
-
实体
<!ENTITY 实体名称 "实体的值">
-
PCDATA parsed character data,也就是
&、<
被解析为 &、<. -
CDATA character data,也就是不会被解析器解析的文本。
DTD
通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。**DTD的作用是定义 XML 文档的合法构建模块。**也就是告诉xml文件构建的形式。
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test05?characterEncoding=UTF-8</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="test01/Product.hmb.xml" />
</session-factory>
</hibernate-configuration>
Hibernate的数据库的声明xml来理解DTD,英文叫做doc type define。也就是:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
上面的DTD位于 XML 源文件的外部,也就是xml中的链接。一般的格式为<!DOCTYPE 根元素 SYSTEM "文件名">
。其中hibernate-configuration就是根元素,PUBLIC就是SYSTEM。
以下是http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd中的说明:
An instance of this document contains property settings and references to mapping files for a number of SessionFactory instances to be listed in JNDI.
上面说的意思是该文件中的实例包含属性设置和引用。这个引用是映射在JNDI中列出的多个SessionFactory实例的文件。