xml约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

以上是关于xml约束的主要内容,如果未能解决你的问题,请参考以下文章

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

xml Eclipse模板(代码片段)检查参数并最终抛出IllegalArgumentException

活动中 TabLayout 内的片段的约束问题

需要示例代码片段帮助

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

创建片段而不从 java 代码实例化它