预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Schema Schema概述 我们学习Schema的第一目标是:参照Schema的要求可以编写XML文档; 第二目标是:可以自己来定义Schema文档。 1Schema是什么 XML文档的约束,用来替代DTD。 DTD文档不是XML语法,而Schema本身也是XML文档,这对解析器来说不用再去处理非XML的文档了; DTD只能表述平台线束,而Schema本身也是XML,所以可以描述结构化的约束信息。 DTD不只约束元素或属性的类型,但Schema可以。例如让age属性的取值在0~100之间。 Schema文档的扩展名为xsd,即XMLSchemaDefinition。 为students.xml编写DTD <!ELEMENTstudents(student+)> <!ELEMENTstudent(name,age,sex)> <!ELEMENTname(#PCDATA)> <!ELEMENTage(#PCDATA)> <!ELEMENTsex(#PCDATA)> <!ATTLISTstudentnumberCDATA#REQUIRED> 3为students.xml编写schema <?xmlversion="1.0"?> <xsd:schemaschema文档的根元素,其中xmlns这个东东是与名称空间相关的东东,先不用理会它,只需要照着写就行了 xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element新建一个元素,名字为students,这个元素的类型为studentsType,这个类型在下面创建的。 name="students"type="studentsType"/> <xsd:complexType新建一个复杂类型,名为studentsType类型,这个类型为复杂类型 name="studentsType"> <xsd:sequence这个类型里面包含的子元素是需要有顺序的 > <xsd:elementstudentsType只有一个子元素,名为student,类型为studentType,在父元素中可以出现0~N次。 name="student"type="studentType"minOccurs="0"maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType新建一个复杂类型,类型名为studentType name="studentType"> <xsd:sequencestudentType中的子元素是要求顺序的 > <xsd:elementstudentType类型中第一个子元素名为name,类型为字符串 name="name"type="xsd:string"/> <xsd:elementname="age"> <xsd:simpleTypeage的类型是简单类型 > <xsd:restriction这个类型是通过对整型的约束而扩展的,约束内容为最小值为0;最大值为100 base="xsd:integer"> <xsd:maxInclusivevalue="100"/> <xsd:minInclusivevalue="0"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:elementsex元素 name="sex"> <xsd:simpleType简单类型 > <xsd:restriction通过对字符串类型约束扩展而来的类型,约束内容为枚举列表:男、女 base="xsd:string"> <xsd:enumerationvalue="男"/> <xsd:enumerationvalue="女"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> <xsd:attribute为student类型声明属性number,类型为字符串 name="number"type="xsd:string"/> </xsd:complexType> </xsd:schema> 4参照Schema编写XML文档 我们参照上面的Schema文档编写一个studens.xml文件 <?xmlversion="1.0"encoding="utf-8"standalone="no"?><studentsxmlns: