DTD文档说明
模块说明
l 元素
l 属性
l 实体
l PCDATA(parsed character data)
PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
l CDATA(character data)
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开
DTD文件元素说明
元素的声明方式:
<!ELEMENT 元素名称 类别>
或
<!ELEMENT 元素名称 (元素内容)>
修饰符选项
符号 |
描述 |
() |
用来元素分组 |
| |
在列举中选择一个 |
+ |
至少出现一次(1次或者多次) |
* |
0次至任意次(0到多次) |
? |
0次或者一次 |
, |
对象必须 按照指定顺序出现 |
EMPTY |
没有子元素 |
ANY |
任何可解析的数据组合 |
#PCDATA |
(#PCDATA)会被文本解析器解析的文本 |
仍用mybatis dtd文件说明:
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
说明:
Configuration元素下子元素可以有properties等元素,且必须按照指定顺序定义,否则会出现解析错误,同时,只能出现一次或者不定义。
<!ELEMENT databaseIdProvider (property*)>
说明:
databaseIdProvider元素子元素是property,可以出现0次至任意次
<!ELEMENT property EMPTY>
说明:
Property元素的子元素为空。
<!ELEMENT settings (setting+)>
说明:
settings的子元素为setting,且至少出现一次。
另外两种没有使用 情况说明
<!ELEMENT author (#PCDATA)>
<author>蜗牛</author>
说明:
通过解析文本得到具体值,author值为蜗牛
<!ELEMENT 元素名称 ANY>
说明:
通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合
DTD文件属性说明
声明属性的默认说明:
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
以下是属性类型的选项:
类型 |
描述 |
CDATA |
值为字符数据 (character data) |
(en1|en2|..) |
此值是枚举列表中的一个值 |
ID |
值为唯一的 id |
IDREF |
值为另外一个元素的 id |
IDREFS |
值为其他 id 的列表 |
NMTOKEN |
值为合法的 XML 名称 |
NMTOKENS |
值为合法的 XML 名称的列表 |
ENTITY |
值是一个实体 |
ENTITIES |
值是一个实体列表 |
NOTATION |
此值是符号的名称 |
xml: |
值是一个预定义的 XML 值 |
默认值参数可使用下列值:
值 |
解释 |
值 |
属性的默认值 |
#REQUIRED |
属性值是必需的 |
#IMPLIED |
属性不是必需的 |
#FIXED value |
属性值是固定的 |
以mybatis dtd中的一个配置说明:
源文件中的配置如下:
1、databaseIdProvider说明
<!ATTLIST databaseIdProvider
type CDATA #REQUIRED
>
说明:
元素databaseIdProvider,属性为type,字符类型,必选。
2、<!ATTLIST properties
resource CDATA #IMPLIED
url CDATA #IMPLIED
>
说明:
元素properties,属性为resource,字符类型,非必选
属性为url,字符类型,非必选
实体
实体引用 |
字符 |
< |
< |
> |
> |
& |
& |
" |
" |
' |
' |