xml文件

本文深入探讨了XML(可扩展标记语言)及其文档类型定义(DTD)的概念,详细介绍了DTD的作用、语法规则及如何使用XML与DTD进行数据交换。并通过代码示例展示了如何创建并验证XML文档与DTD之间的兼容性。

什么是XML?

可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

什么是DTD?

文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言和 可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。文档类型定义也可用做保证标准通用标记语言、可扩展标记语言文档格式的合法性,可通过比较文档和文档类型定义文件来检查文档是否符合规范,元素和标签使用是否正确。文件实例提供应用程序一个数据交换的格式。使用各类文档类型定义是为了让标准通用标记语言、可扩展标记语言文件能符合规定的数据交换标准,因为这样,不同的公司只需定义好标准文档类型定义,就都能依文档类型定义建立文档实例,并且进行验证,如此就可以轻易交换数据,防止了个实例数据定义不同等原因造成的数据交换障碍,满足了网络共享和数据交互。文档类型定义文件是一个美国信息交换标准代码文本文件。

代码示例

如下是一个dtd文档,instance1.dtd

<!ELEMENT TVSCHEDULE (CHANNEL+)>
<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>
<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>

如下是按照dtd文档的要求和约束写出的instance1.xml文件

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE TVSCHEDULE SYSTEM "instance1.dtd">
<TVSCHEDULE NAME="CCTV">
	<CHANNEL CHAN="CCTV1">
		<BANNER>GREAT</BANNER>
		<DAY>
			<DATE>2016-1-20</DATE>
			<PROGRAMSLOT>
				<TIME>TT</TIME>
				<TITLE LANGUAGE="EN">OK</TITLE>
				<DESCRIPTION>VERY NICE</DESCRIPTION>
			</PROGRAMSLOT>
		</DAY>
	</CHANNEL>
</TVSCHEDULE>

利用js文件验证xml文件的有效性

<script type="text/javascript" >
	var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
	xmldoc.validateOnParse="true";
	xmldoc.load("instance1.xml");
	var reason = xmldoc.parseError.reason;
	var line = xmldoc.parseError.line;
	document.write(reason+"</br>");
	document.write(line);
</script>

经过验证,xml文件符合dtd文件的要求,没有报错。


转载于:https://my.oschina.net/donngchao/blog/605952

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值