XMl学习之--DTD学习笔记

DTD:

1.创建一个文件,后缀名为.dtd

2.判断元素是简单元素还是复杂元素:

        简单元素:有子元素的元素复杂元素。<!ELEMENT 元素名称  (#PCDATA)>

        复杂元素:有子元素的元素。<!ELEMENT 元素名称 (子元素)>

3.需要在XML文件中引入dtd文件   <!DOCTYPE 根元素名称 SYSTEM “dtd文件的路径”>

DTD的引入方式

1.引入外部的dtd文件

    <!DOCTYPE 根元素名称 SYSTEM “dtd文件路径”>

2.使用内部的dtd约束

<!DOCTYPE person[
    <!ELEMENT person (name,age)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT age (#PCADATA)>
]>

3.使用外部的dtd文件(网络上的)

        <!DOCTYPE 根元素 PUBLIC "DTD名称"  "DTD文档的URL">

DTD定义元素

    语法:<!ELEMENT 元素名 约束>

简单元素

如:<!ELEMENT name (#PCDATA)>

约束:

        1.(#PCDATA):约束name是字符串类型

        2.EMPTY:元素为空(如:<sex></sex>)

        3.ANY:任意(可为空也可不为空)

复杂元素

如:<!ELEMENT person (name,age,sex,school)>

这样定义子元素只能出现一次,子元素出现的次数:

        1. + :表示子元素可以出现一次或者多次。

        2. ?:表示子元素可以出现零次或者一次。

        3. * :表示子元素可以出现零次或者多次。

  • 子元素直接使用逗号进行隔开,表示子元素出现的次数。
  • 子元素直接用竖线(|)隔开,表示子元素只能出现其中任意一个。(枚举)

DTD定义属性

    语法:<!ATTLIST 元素名称

                       属性名称 属性类型 属性的约束

                        .......

                >

    如:<!ATTLIST name

                 ID1 CDATA #REQUIRED

           >

属性的类型:

  •     CDATA:字符串
  •     枚举:表示只能在一定的范围内出现值,但是只能每次出现其中一个
  •     ID :值只能以字母或者下划线开头

属性约束:

  •     #REQUIRED: 属性必须存在。
  •     #IMPLIED:属性可有可无。
  •     #FIXED:表示国定的一个值。 (#FIXED  "ABC")
  •     直接值:如果元素不写属性,则按约束中写的属性值为准。如果元素写了则按元素写的为准。(<!ATTLIST school ID CDATA "ABC")

实体定义

语法:<!ELEMENT 实体名称 "实体的值">

使用实体 &实体名称; 例&TEST;

实体定义需要写在内部的dtd中。

猜你喜欢

转载自blog.csdn.net/hare_you/article/details/79918872