XML之定义属性


属性类型:

  CDATA:字符串

ELEMENT birthday (#PCDATA)>    
    
    ATTLIST birthday ID1 CDATA #REQUIRED>
    <birthday ID1="A">2022-11-11birthday>

  枚举:多选一

ELEMENT age (#PCDATA)>    

    ATTLIST age ID2 (AA|BB|CC) #REQUIRED>
    <age ID2="AA">18age>

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

ELEMENT name (#PCDATA)>    
    
    ATTLIST name ID3 ID #REQUIRED>
    <name ID3="_AAA">zhangsanname>

属性的约束:

  #REQUIRED:属性值必须存在

ELEMENT name (#PCDATA)>    
    
    ATTLIST name ID3 ID #REQUIRED>
    <name >zhangsanname>

如果没有设置属性值:

显示出错;

  #IMPLIED:属性可有可无

ELEMENT age (#PCDATA)>    
    
    ATTLIST age ID2 (AA|BB|CC) #IMPLIED>
    <age>18age>

没有设置属性值:

没有显示出错;

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

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

ELEMENT sex (#PCDATA)>    
    ATTLIST sex ID4 CDATA #FIXED "QQ">
    <sex ID4="QQ">sex>

属性不设置为QQ:

显示出错。

  直接赋值:直接在属性 

ELEMENT school (#PCDATA)>    
    ATTLIST school ID5 CDATA "RR">
    <school ID5="RR">222school>

如果不设置属性值:

 没有错误;

如果不对school标签设置属性也不会报错,school标签属性的默认值就位"RR",如果为school标签属性设置了值,那么属性的值就为设置的值。

汇总:

<?xml version="1.0" encoding="UTF-8"?>

DOCTYPE person [
    >
    ELEMENT name (#PCDATA)>    
    
    ATTLIST name ID3 ID #REQUIRED>
    ELEMENT age (#PCDATA)>    
    
    ATTLIST age ID2 (AA|BB|CC) #IMPLIED>
    ELEMENT sex (#PCDATA)>    
    ATTLIST sex ID4 CDATA #FIXED "QQ">
    ELEMENT school (#PCDATA)>    
    ATTLIST school ID5 CDATA "RR">
    ELEMENT birthday (#PCDATA)>    
    
    ATTLIST birthday ID1 CDATA #REQUIRED>
]>
<person>
    <name ID3="_AAA">zhangsanname>
    <age>18age>
    <sex ID4="QQ">sex>
    <school>222school>
    <birthday ID1="A">2022-11-11birthday>
person>