XML , DTD 与 XML Schema简述
一. XML XML指可扩展标记语言(EXtensible Markup Language)。它是一种用来存储和传输数据的语言,而HTML是用来显示数据的。 一个完整的XML文件应该具备以下几部分: 1.XML文件的头必须要有文档的申明。 如<?xml version="1.0" encoding="gb2312" standalone="no" ?>。version是版本号,当前W3C组织只发布了一个版本,所以都填1.0,encoding是字符编码形式。standalone是之该文档是否独立存在,此属性一般用不上。 2.标签。 形式如 <element></element>或者是<element/>。标签名对字母的大小写敏感,且不能以"_"或数字开始,标签必须成对出现,有头标签必须有尾标签,而且头尾标签名要一致才能匹配,或者在头标签的最后用"/"来直接结束这个标签。一个XML文件有且只有一个跟标签,标签内可以嵌套子标签,但标签之间不能相互嵌套。 3.属性。 位于头标签中,结构:key=“value” key就是属性的名字,value就是属性的值,值必须用引号包裹,单双引号都可以,如果值中含有双引号,那么整个值必须用单引号包裹。 二. DTD DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构: <!DOCTYPE 根标签的名字[ xml文件内容定义 ]> 使用<!ELEMENT 标签名 标签类型 (含有的标签,#PCDATA)> 在需要DTD文件约束的XML文件中使用<!DOCTYPE 根标签名 SYSTEM “dtd文件名”>。 三. XML Schema. XML Schema是以XML语言为基础的,它与DTD的功能类似,但其内容比DTD丰富,作用也更强大,用来替代DTD。 1.创建XML Schema文件,后缀为xsd。与XML类似,XML Schema也有文档申明,如<?xml version="1.0" encoding="UTF-8"?>,然后主体是<schema></schema>跟标签,需要在跟标签中添加命名空间。 (a)首先引入xmlns:xs="http://www.w3.org/2001/XMLSchema"。 (b)targetNameSpace="http://www.feicui.com/newschema"声明一个我们自己的命名空间(uri)。 (c)xmlns:myns="http://www.feicui.com/newschema"。定义我们自己的命名空间,如果XML文件需要用到该Schema中的东西就需要引入该命名空间来使用。 (d)elementFormDefault="qualified"表示严格按照我们的schema文档约束我们要编写的xml文件。 添加好这四步就需要在schema跟标签中添加其它标签来编写对XML的约束。 2.将schema文档引入要约束的xml文件则需要在XML的跟标签中加入如下属性: (a)xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"要引入我们的shema文档需要使用这个命名空间中的属性。 3.简单元素内容的约束。 首先在我们要约束的元素中添加一个simpleType的标签。然后在simpleType中添加一个restricetion标签,这个标签中有一个重要的属性:base,需要填入我们这个信息类型是基于哪一种类型的。在restricetion标签中,我们就可以加入我们对信息内容的一个具体的约束了: [0-9]{8} 表示有八位阿拉伯数字。 (d)空白字符约束 <whiteSpace vaule="preserve"/> 保留,XML不会删除任何空白字符 <whiteSpace vaule="replace"/> 替代,XML会用空格代替所有空白字符(换行符,制表符,空格符,回车符) <whiteSpace vaule="collapse"/> 消除,XML会清除所有的空白字符。 (e)长度的约束 <length value="8"/> 值必须有8个字符 minLength 和 maxLength 值最少于最多的字符个数
4. 符合元素的约束。 首先我们在要约束的元素中添加一个complexType的标签。然后我们要填入指示器(eq:sequence)。添加子元素,子元素可以使复合元素也可以使简单元素。 5. 顺序指示器。 sequence 子元素必须出现且要按照指定的顺序出现。 all 子元素可以任意顺序出现,但只出现一次。 choice 指定元素中,仅可以出现一个,可以使用maxOccurs修改。 6.数量指示器。 这种指示器不是以元素(标签)的形式出现,而是以子元素的属性的方式出现。 minOccurs 设置出现的最少次数;maxOccurs设置出现的最多次数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |