微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml约束

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>

原文地址:https://www.jb51.cc/xml/293393.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。