XML 文件中的属性 或者子元素在 其 DTD文件中是有定义的
所以如果对某种XML文件感兴趣 可以解读下起 DTD 文件
一般 DTD 文件的资源路径在XML文件中有声明 如
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
以上http显示的即为其DTD的路径 直接打开该链接即可下载
以下是 Hibernate-mapping-3.0 dtd 中的一部分
<!--
The document root.
-->
<!ELEMENT hibernate-mapping (
meta*,
(class|subclass|joined-subclass|union-subclass)*,
...
)>
<!ATTLIST hibernate-mapping schema CDATA #IMPLIED> <!-- default: none -->
<!ATTLIST hibernate-mapping catalog CDATA #IMPLIED> <!-- default: none -->
<!ATTLIST hibernate-mapping default-cascade CDATA "none">
...
蓝色部分说明的是 hibernate-mapping 这个xml配置文件的根元素下有的子元素
*表示0或多个
所以如上说明的是 可以有0或者多个 meta 子元素
而第二部分(class|...) 说明的是 括号内的元素是任选一个的
紫色部分定义的是属性
语法格式: <!ATTLIST 元素名称 属性名称 属性类型 默认值>
所以以上 <!ATTLIST hibernate-mapping default-cascade CDATA "none">
说明的是 default-cascade 这个属性是属于 hibernate-mapping 这个元素的
类型是CDATA 默认值为none
默认值参数可使用下列值:
值 | 解释 |
---|---|
值 | 属性的默认值 |
#REQUIRED | 属性值是必需的 |
#IMPLIED | 属性不是必需的 |
#FIXED value | 属性值是固定的 |
举例来说
<hibernate-mapping package="com.test">
<class name="com.lintl39227.persistence.Entity" table="ENTITY">
<id name="id" type="int">
<column name="ID" />
<generator class="assigned" />
</id>
</class>
<meta attribute="" />
</hibernate-mapping>
更详细的DTD介绍可以看 W3C School的介绍