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的介绍