继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

xml约束

不要慕码人我要切诺基
关注TA
已关注
手记 281
粉丝 37
获赞 120

xml约束
1)类是对象的约束
2)DTD是XML文件的约束  
3)浏览器对XML和DTD进行语法的检测
4)浏览器不会检测XML是否符合DTD规则
5)正确的XML和有效的XML文件
正确的XML文件是指语法正确,而有效的XML文件是指语法和规则都正确
6)XML中书写DTD有二种方式:
a)DTD和XML分离
b)XML中嵌入DTD
6)XML引用DTD有二种方式:
a)SYSTEM:个人或组织,小范围内使用
b)PUBLIC:大范围内使用,例如:struts框架。。。
7)EMPTY和ANY,项目中尽量使用EMPTY,少用ANY
8)在DTD中,必须将所有的标签全部都声明完才行
9)在DTD中,定义元素时,可以使用如下符号:
a)+:有且只能出现1次或N次
b)*:有且只能出现0次或N次
c)?:有且只能出现0次或1次
d)无:有且只能出现1次
注意:以上符号用在()里面      
10)DTD属性的设置值情况有四种:
a)#REQURIED:该属性必须出现
b)#IMPLIED:该属性可有可无
c)#FIXED "固定值":该属性可有可无,如果有的话,必须是"固定值"
d)"默认值":该属性可有可无,如果没有的话,用默认值补充,如果有的话,用新值替代旧值
11)当页面出现多个相同的字符串,此时可以使用引用实体来解决,在DTD中定义,在XML中使用
12)当定义DTD时,出个相同的子元素,此时可以使用参数实体来解决,在DTD中定义,在DTD中使用,
使用%标识,通过%参数实体名;来引用

         class.dtd         `<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT root      (student+)>  
<!ELEMENT student   (name,age)>
<!ELEMENT name      (#PCDATA)>
<!ELEMENT age       (#PCDATA)>
`
arg_entity.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root SYSTEM "class.dtd">
<root>
<student>
<name>张三</name>
<age>30</age>  
</student>
<student>
<name>李四</name>
<age>31</age>  
</student>
</root>

validte.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>自定义XML的检查器(语法+约束)</title>  </head>  <body>    <script type="text/javascript">        //创建IE内置解析器        var xmldoc = new ActiveXObject("Microsoft.XMLDOM");        //开启xml校验        xmldoc.validateOnParse="true";        //加载需要检查的XML文件        xmldoc.load("arg_entity.xml");          //正确        if(xmldoc.parseError.reason.length==0){            window.alert("有效的XML文件(语法正确+DTD约束");        //出错                }else{            window.alert(xmldoc.parseError.reason);        }    </script>  </body></html>

写到一个文件中的拘束

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [    <!ELEMENT root    (student)>    <!ELEMENT student (name,age,alias)>    <!ELEMENT name    (#PCDATA)>    <!ELEMENT age     (real|virtual)>    <!ELEMENT alias   ANY>    <!ELEMENT real    (#PCDATA)>        <!ELEMENT virtual (#PCDATA)>    ]>  <root>    <student>        <name>jack</name>        <age>            <virtual>11</virtual>        </age>        <alias/>    </student></root>

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP