DTD约束

    xiaoxiao2022-07-13  142

    DTD约束

    DTD设计模式:它是用来解决现实中出现的一类问题;
    DTD框架的由来:就是由多种设计模式配合形成的,并且特定的框架是用来处理特定问题的;

    案例一 合法的XML 1、良好的XML应该要有的格式 ① 有且只有一个根元素 ; ② XML标签大小写正确区分 ; ③正确使用结束标签 ;④正确嵌套标签 ; ⑤使用了合法的标签名 ; ⑥定义有效的属性 ;

    <?xml version="1.0" encoding="UTF-8"?> <persons> <person pid="p1" sex="男" qq="aaa" parent="p2"> <name>张小明</name> <age>10</age> <contact> <phone>1234567</phone> </contact> <br/> </person> <person pid="p2"> <name>张大明</name> <age>35</age> <contact> <email>123@qq.com</email> </contact> </person> <dog></dog> <cat></cat> </persons>

    案例二: DTD对元素限制 2、对元素次数的限制: + ,(1~n) ; *,(0~n) ; ?,(0或1) ; ,,(元素间隔符) ; |,(或者) 案例三: DTD对属性限制

    <?xml version="1.0" encoding="UTF-8"?> <!-- 3、 在XML加入DTD声明 --> <!DOCTYPE persons [ <!-- 4、 元素定义的语法(根标签) --> <!ELEMENT persons (person*)> <!ELEMENT person (name,age,contact,br?)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT contact (phone|email)> <!ELEMENT phone (#PCDATA)> <!ELEMENT br EMPTY > <!ELEMENT email (#PCDATA)> ]> <persons> <person> <name>张小明</name> <age>10</age> <contact> <phone>1234567</phone> </contact> <br/> </person> <person> <name>张大明</name> <age>35</age> <contact> <email>123@qq.com</email> </contact> </person> </persons>

    5、 元素的分类

    <!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素

    注意:根标签也要定义。

    6、XML中的特殊符号: &(逻辑与) & ; <(小于) < ; >(大于) > ; "(双引号) " ; '(单引号) &apos ;

    案例四 DTD对config.xml限制 案例五 web.xml文件中servlet标签出错分析 思路:使用合理的限制符和特殊符号来处理标签出错;

    <?xml version="1.0" encoding="UTF-8"?> <!-- 2. 在XML加入DTD声明 --> <!-- 3. 元素定义的语法 --> <!-- 属性定义的语法 --> <!DOCTYPE persons [ <!ELEMENT persons (person*)> <!ELEMENT person (name,age,contact,br?)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT contact (phone|email)> <!ELEMENT phone (#PCDATA)> <!ELEMENT br EMPTY > <!ELEMENT email (#PCDATA)> <!ATTLIST person pid ID #REQUIRED sex (|) '男' qq CDATA #IMPLIED parent IDREF #IMPLIED > ]> <persons> <person pid="p1" sex="男" qq="aaa" parent="p2"> <name>张小明</name> <age>10</age> <contact> <phone>1234567</phone> </contact> <br/> </person> <person pid="p2"> <name>张大明</name> <age>35</age> <contact> <email>123@qq.com</email> </contact> </person> </persons>
    最新回复(0)