XML 的两种主要验证机制

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:oa001
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为保证标准通用标记语言、可扩展标记语言文档格式正确,可通过验证判断文档是否有效。验证是把 XML 文档的结构、标记名称、数据类型等与预先设定的要求作比较的过程。预先设定的要求被保存在模式文档中。W3C标准制定了两种XML的验证机制(模式文档):DTD(Document Type Definition)和XSD(XML Schema Definition)。
  关键词:验证; XML; W3C; DTD; XSD
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)13-0082-02
  Abstract: In order to ensure the standard generalized markup language, extensible markup language document format is correct, can be verified by the judgment document is valid. Verification is the structure, the tag name, data type of XML document and the preset requirements for comparison process. The preset requirements are stored in the document model. W3C standard authentication mechanism of two kinds of XML (schema) :DTD(Document Type Definition)和XSD(XML Schema Definition)。
  Key words: verification; XML; W3C; DTD; XSD
  1 问题的提出
  XML在数据描述过程中,用户可以自定义数据的结构,因此,在使用XML文档之前需要对数据进行筛选,防止无效的数据出现,以确保数据的结构标准化。不同的用户只需定义好标准文档类型定义,各用户都能依文档类型定义建立文档实例,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。一般教材中会提到两种验证机制:DTD 和 XSD。
  2 DTD验证
  文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。是一套关于标记的语法规则,它说明了在XML文档中可以使用哪些标记,哪些标记具有属性,以及所使用的标记出现的顺序是什么。DTD的文件格式是SGML,因此我们在学习DTD语法时需区分它与XML语法规则。在XML文档中的使用DTD主要有三种方式:内部引用、外部引用和内外结合引用。
  DTD的定义主要包括在DOCTYPE 声明中,三种方式分别为<!DOCTYPE根元素 [元素声明]> 、<!DOCTYPE根元素 SYSTEM "文件名">、<!DOCTYPE根元素 SYSTEM "文件名" [元素声明]>。在讲授过程中一般建议使用外联方式,这样数据文档与验证文档分开更易维护。
  在DTD文档中,可以对源XML文档的元素、属性及元素出现的顺序进行描述,在描述的过程中,包括元素和属性的类型、元素出现的次数等。这里对DTD文档的具体语法就不作详细的介绍了。
  3 XSD验证
  XML Schema 定义(XML Schema Definition,XSD)是一个XML文档,用于描述另一个XML文档。定义 XML 文档的合法构建模块,类似DTD。它的文件格式是XML。在XML文档中的使用XSD只有一种方式:外联。XSD的引用主要是在XML源文件的根元素中添加noNamespaceSchemaLocation 属性,而该属性所在的命名空间为http://www.w3.org/2001/XMLSchema-instance。例如:
  在XSD文档中,对源XML文件的描述所需的元素所在的命名空间为上述URL。根元素是schema,所有对源数据文件的描述都包括在根元素里,在描述过程中,几乎可以实现在DTD中对数据的所有描述,除此之外,对元素出现的次数更具体化。另外,XSD的最大特点就是支持数据类型。XSD标准里有内置的数据类型,而DTD中没有。而正是因为XSD中的数据类型,确保了不同的用户在理解数据同一数据时保持一致。
  4 举例分析
  下面对名为”shiporder.xml”源XML文档,分别进行两种不同的验证,通过比较它们之前的区别,分别对两种验证机制的语法和用法进行讲解。文档片段如下:
  在XML文档中shiporder元素包括三个子元素,其中item元素出现了两次也许更多次,还包括属性orderid;三个子元素又分别包括子元素。在DTD中描述时,shiporder的描述<!ELEMENT shiporder (shipto,item*)>,圆括号中的列表可以确定其子元素出现的顺序,而“item”后面的“*”表示item元素出现的次数是零次或者多次,而不能确定具体的次数;在XSD中描述时,对于有子元素的这类元素,通常用complexType元素来描述其结构,在该元素中通过使用三种控制器即:all、sequence、choice来控制子元素结构。其中sequence来控制子元素的顺序。例子中通过maxOccurs属性来确定元素出现的最大次数。而这个属性在all控制器中,其值只能是“0”或者“1”,其它两种控制器该值可以任意设置,与maxOccurs属性对应的属性minOccurs,在sequence控制器中其值只能是“1”。通过这两个属性的设置可以限制子元素出现的最小和最大次数,且次数的具体值可以确定。另外,在描述类型的过程中,DTD描述数据时,仅限于抽象的类型,譬如“#PCDATA”、“CDATA”,它们分别用于描述元素和属性的文本类型,像元素quantity,属性orderid它们只能被描述为文本类型,但是在XSD中,它们分别被描述成string、integer。当然,XSD中对数据类型的描述不仅仅只有内置类型,可以通过在simpleType元素中的restriction元素来对数据类型作更具体的描述,譬如对数据的长度、数据的模式、数据的范围等。
  XSD描述中结构和类型可以自定义并且重用。源XML文件中的元素根据其结构不同,一般分成两种:1)无属性且无子元素的元素;2)有属性或者有子元素的元素。在XSD描述中,分别使用上述提到的simpleType元素和complexType元素来进行具体的定义,这两个元素都包含name属性,通过对该属性赋值来分别为两种结构命名。这样在XSD描述过程中,出现与该结构相同的描述,我们可以直接通过name的名字来直接引用。而这种类型的描述在DTD中是无法实现的。
  5 总结
  上述通过一个简单的例子对XML中的两种验证机制,从文档格式、描述的语法进行了分析和比较,突出了XSD中对数据类型的描述特点。可以看出XML Schema 是基于 XML 的 DTD 替代物。XSD弥补的DTD中的很多不足之处,而今也被用在大部分的网络应用程序中。
  参考文献:
  [1] David Hunter,Jeff R.XML入门经典[M]. 4版. 北京: 清华大学出版社, 2009.
  [2] 马在强. XML实用教程[M]. 北京: 清华大学出版社, 2008.
  [3] Dr Shahram Khosravi.ASP.NET 2.0服务器控件与组件开发高级编程[M]. 北京: 人民邮电出版社, 2007.
  [4] 韩忠明. XML数据查询与信息检索系统[M]. 北京: 中国水利水电出版社, 2013.
  [5] 李秋云, 郝建国. XML及WAP开发手册[M]. 北京: 人民邮电出版社, 2002.
其他文献
建立人肠道病毒D68型(EV-D68)微复制子体系。利用增强绿色荧光蛋白(EGFP)或萤火虫荧光素酶(FLuc)报告基因替换病毒编码区,通过酶切连接,构建EV-D68 T7和PolⅠ系统微复制子体
应用腹腔镜诊治妇科疾病814例临床分析方爱华,张令浩我院自1988年5月至1992年6月应用腹腔镜诊断和治疗某些妇科疾病,共814例,结果分析如下:1资料与方法1.1一般资料行腹腔镜检查(以下称镜检)814例中除2例外,均
在城市抗震防灾规划中,城市生命线系统的安全对保障城市功能具有重要作用.本文对城市供水管道进行了抗震性能评估.在评估过程中,考虑不同地震烈度、管径、管材、接头形式以及
骏马离不开草原,哈萨克人民挂在毛主席心间。毛主席虽然永别了我们,他的光辉却永使我们温暖。
采用高效液相色谱-三重四极杆/复合线性离子阱质谱,在多反应监测触发增强子离子扫描模式下对染料产品中的分散黄3同时进行定性定量测定。通过二级质谱进行定性,多反应监测扫
随着信息技术的快速发展,各种信息管理系统在各行各业得到了广泛的应用,在工业信息系统的实现过程中往往需要信息系统与控制系统互相通信进行数据交换。在实际实现中,控制系
为揭示冻融循环作用对棕壤抗剪强度的影响,采集沈阳地区5 cm和25 cm 2个深度原状棕壤(分别为H 5和H 25)为研究对象,通过室内冻融循环模拟和土壤直剪试验,研究冻融循环次数和
为解决机器学习过程中样本标注困难和模型训练遇到的损失函数取值异常和模型回归难的问题,提出了一种新的斜矩形范围框标注方式。采用"倾斜范围框中心点C的坐标、中心点到任意一个顶点D的向量■、C到D的一个相邻顶点E的向量■在■上的投影向量■与■的比例系数"来标注倾斜范围框,在给定约束下实现了一个范围框只有一种数值表示,避免了损失异常,有利于模型回归训练。并将该标注方式应用在遥感影像目标检测任务中,通过斜框
隐源性致纤维化肺泡炎10例分析尹凤鸣,罗文侗,叶曜芩,茅月存隐源性致纤维化肺泡炎(CFA)又称特发性弥漫性肺间质纤维化。近年来,由于诊断技术的提高,发现本病有增多趋势。现将本院1982~1991年收治的
对固定支架的GH4169 M60断裂螺柱进行宏观和微观分析。目视检查断裂表面,发现裂纹的特征是脆性断裂,并且断裂最终发生在螺柱螺纹和螺母的接合处。渗透测试发现,螺柱内有5个平