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