XML----DTD-引用,验证,元素属性

前端之家收集整理的这篇文章主要介绍了XML----DTD-引用,验证,元素属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

DTD主要用来约束xml文件,也可去约束html,xhtml...

可以根据别人提供的dtd文件,写出相对应的xml文件


内部DTD:

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<!DOCTYPE NET[						--文档类型定义声明的开始,根元素
<!ELEMENT NET (视频网站,社交网站)>		--定义"NET"根元素下面的直接子元素
<!ELEMENT 视频网站 (优酷网,土豆网,爱奇艺)>		 --代表"视频网站"这个元素下具有那些子元素
<!ELEMENT 优酷网 (开发者,网址)>
<!ELEMENT 土豆网 (开发者,网址)>
<!ELEMENT 爱奇艺 (开发者,网址)>
<!ELEMENT 社交网站 (INSTAGRAM,FACEBOOK,TWITTER)>
<!ELEMENT INSTAGRAM (DEVELOPER,URL)>
<!ELEMENT FACEBOOK (DEVELOPER,URL)>
<!ELEMENT TWITTER (DEVELOPER,URL)>
<!ELEMENT DEVELOPER (#PCDATA)>
<!ELEMENT URL (#PCDATA)>				
--代表是的是开发者这个元素下面已经没有子元素了,而且定义了此元素的内容是什么类型,(#PCDATA:文本类型)
]>
<NET>
	<视频网站>
		<优酷网>
			<开发者>A Team</开发者>
			<网址>http://www.youku.com</网址>
		</优酷网>
		<土豆网>
			<开发者>B Team</开发者>
			<网址>http://www.tudou.com</网址>
		</土豆网>
		<爱奇艺>
			<开发者>C Team</开发者>
			<网址>http://www.iqiyi.com</网址>
		</爱奇艺>
	</视频网站>
	<社交网站>
		<INSTAGRAM>
			<DEVELOPER>AA Team</DEVELOPER>
			<URL>http://www.instagram.com</URL>
		</INSTAGRAM>
		<FACEBOOK>
			<DEVELOPER>BB Team</DEVELOPER>
			<URL>http://www.facebook.com</URL>
		</FACEBOOK>
		<TWITTER>
			<DEVELOPER>CC Team</DEVELOPER>
			<URL>http://www.twitter.com</URL>
		</TWITTER>
	</社交网站>
</NET>


外部DTD方式:

1. XML文件

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<!DOCTYPE 网站 SYSTEM "net.dtd">
<NET>
	<视频网站>
		<优酷网>
			<开发者>A Team</开发者>
			<网址>http://www.youku.com</网址>
		</优酷网>
		<土豆网>
			<开发者>B Team</开发者>
			<网址>http://www.tudou.com</网址>
		</土豆网>
		<爱奇艺>
			<开发者>C Team</开发者>
			<网址>http://www.iqiyi.com</网址>
		</爱奇艺>
	</视频网站>
	<社交网站>
		<INSTAGRAM>
			<DEVELOPER>AA Team</DEVELOPER>
			<URL>http://www.instagram.com</URL>
		</INSTAGRAM>
		<FACEBOOK>
			<DEVELOPER>BB Team</DEVELOPER>
			<URL>http://www.facebook.com</URL>
		</FACEBOOK>
		<TWITTER>
			<DEVELOPER>CC Team</DEVELOPER>
			<URL>http://www.twitter.com</URL>
		</TWITTER>
	</社交网站>
</NET>


2. DTD文件文件名为:net.dtd

<?xml version="1.0" encoding="gb2312"?>
<!ELEMENT NET (视频网站,社交网站)>				 --定义"NET"根元素下面的直接子元素
<!ELEMENT 视频网站 (优酷网,URL)>
<!ELEMENT DEVELOPER (#PCDATA)>
<!ELEMENT URL (#PCDATA)>				
--代表是的是开发者这个元素下面已经没有子元素了,而且定义了此元素的内容是什么类型,(#PCDATA:文本类型)

#PCDATA(元素的类型):代表此元素下是纯文本,不能再有子元素的出现


+:代表此元素在xml文档中至少出现一次
*:代表此元素在xml文档中可以不出现,也可以出现多次
?:代表此元素在xml文档中可以不出现,也可以出现,但是出现的时候,只能出现一次
|:代表此元素在xml文档中是可选的 比如:男|女


用JS来验证XML:

<script>
function check(){
    //创建xml文档解析器对象
	var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
	//开启xml的校验
	xmldoc.validateOnParse = "true";
	//加载要载入的xml文档
	xmldoc.load("zuoye.xml");
	//获取错误的信息
	alert(xmldoc.parseError.reason);
	//获取错误信息出现的位置  
    alert(xmldoc.parseError.line);
}
</script>

元素属性基本语法

<!ATTLIST 元素名字

属性属性类型 属性的特点

属性属性类型 属性的特点

>

属性类型有:

CDATA [表示属性值可以是字符或者数字]
ID [属性值是唯一的,字母开头 ]
IDREF/IDREFS [id引用]
Enumerated [枚举]
ENTITY/ENTITIES [实体]


属性的特点

#required 【该属性必须有】

#IMPLIED 【该属性可以有可以没有】

#FIXED value [该属性的值是固定值]

DEFAULT value [默认值]



如:

<!ATTLIST 学生

住址 CDATA#IMPLIED

学号 ID#required

大佬 IDREFS#required

>


注意:例中的定义关键字一定要大写,如DOCTYPE、ELEMENT、#PCDATA,且元素名称与数据类型之间也要有空格。

猜你在找的XML相关文章