XML之dtd定义属性

用dtd定义属性

*语法 : <!ATTLIST 元素名称

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

    >

*属性类型

    -CDATA:字符串

    -枚举:只能在一定的范围内出现值,但是只能每次出现其中的一个

        **(aa|bb|cc):指的是属性值是这个范围内的

    -ID :值只能是字母或者下划线开头

      -<ATTLIST name

        ID3    ID   #REQUIRED

       >

*属性的约束

    -#REQUIRED:属性必须存在

    -IMPLIED:属性可有可无

    -FIXED:表示一个固定的值  #FIXED "AAA"

            -属性的值必须是设置的这个固定的值

        -<!ATTLIST sex

          ID4 CDATA #FIXED "陌上人"

        >

    -直接值

        *不写属性,使用直接值

        *写了属性,使用设置那个

        <!ATTLIST school

                school  CDATA  "明镜亦非台"

         >

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person 
    [<!ELEMENT person (name+,age?,sex*,birthday,school)>
    <!ELEMENT name (#PCDATA)>
    <!ATTLIST name
          ID3 ID #IMPLIED
    >
    <!ELEMENT age (#PCDATA)> 
    <!ATTLIST age
          ID2 (最帅|和丑沾不上边|舍我其谁) #REQUIRED
    >
    <!ELEMENT sex (#PCDATA)>
    <!ATTLIST sex
        ID4 CDATA #FIXED "陌上人"
    >
    <!ELEMENT birthday (#PCDATA)>
    <!ATTLIST birthday
          ID1 CDATA #REQUIRED
    >
    <!ELEMENT school (#PCDATA)>
    <!ATTLIST school
          ID5 CDATA "明镜亦非台"
    >
    ]>
    <person>
    <!-- 属性可有可无但属性值必须以字母或者下划线开始 -->
    <name ID3="A1">张三</name>
    <name>李四</name>
    <!-- 指的是属性值必须是属性类型中的一种 -->
    <age ID2="舍我其谁">最帅</age>
    <!-- 属性值必须是陌上人 -->
    <sex ID4="陌上人">为了明天更美好的生活</sex>
    <sex ID4="陌上人">果子冲鸭</sex>
    <birthday ID1="AB">啦啦啦</birthday>
    <!-- 
    即使不写属性名也不会报错,默认属性值为明镜亦非台
    写了之后也可以再次设置属性值
     -->
    <school ID5="菩提本无树">一任群芳妒,俏也不争春</school>
    </person>

 

posted @ 2019-05-20 19:41  静心*尽力  阅读(998)  评论(0编辑  收藏  举报