- 浏览: 324415 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (254)
- java (178)
- tomcat (6)
- 邮件 (1)
- smtp (1)
- Linux (2)
- 编码 (2)
- 导入工程 (1)
- Specification Level (1)
- hibernate (10)
- 字段类型 (1)
- 字段类型匹配 (1)
- 数据库 (3)
- sql (9)
- struts2 (8)
- 类型转换 (2)
- java,MyEclipse,SVN (1)
- Myecplise (4)
- 输入校验 (1)
- JFrame (2)
- Oracle (8)
- google (1)
- Swing (3)
- Fusioncharts (1)
- 找工作 (0)
- js (4)
- jsp (11)
- displaytag (1)
- spring (8)
- 工作 (1)
- String (1)
- 算法 (2)
- IO (1)
- xml (3)
- 设计模式 (1)
- UML (1)
- 文档 (1)
- ajax (1)
- 日常 (7)
- sql server (1)
- mysql (3)
- git (1)
- Maven (1)
- mongodb (1)
- postman (1)
最新评论
下面讲解XML Schema【非常重要】:
我们自己写的XML文件需要用Schema来验证有效性,而Schema恰恰也是一个XML文件,那么Schema这个XML文件的有效性用什么来验证呢?答案是用DTD来验证。用内置的XMLSchema.dtd来验证Schema文件(一个XML文件)的有效性。所以Schema里面定义命名空间的那个URL不能换成其他的,只能是http://www.w3.org/2001/XMLSchema,这里面包含了验证Schema有效性的DTD。
重点查看附件xml_3.pdf文档里面的内容,这个是上课的课件,里面详细讲解了Schema的相关内容,仔细阅读研究。
下面是自定义数据类型的一对使用示例:
凡是在Schema里面定义的element元素,就表示在相应的XML里面直接用的,Schema里面定义的类型complexType是不能直接在XML里面使用的。类型是抽象的概念,比如定义的某个元素可以是牟某种类型的,类型不能直接在XML里面使用。
下面是日常Schema-XML开发中最常用到的一些Schema使用示例【非常重要,根据里面的注释仔细研究,拷贝到XMLSpy里面运行起来】:
========================以上都是simpleType的一些用法=====================
simpleType和complexType区别:
1、simpleType类型的元素中不能包含元素或者属性。
2、当需要声明一个元素的子元素和/或属性时,用complexType【特点:有子元素,同时有可能有属性,换句话说,属性和子元素里面必然至少有一个,或者两个都有。】;
3、当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。
1. Schema(模式):其作用与dtd一样,也是用于验证XML文档的有效性,只不过它提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个XML文件,而dtd则不是。
2. 所有的schema文档,其根元素必须为schema。
3. SimpleType与ComplexType的区别:
1) SimpleType类型的元素没有子元素,也没有属性。
2) 当需要定义的元素包含了子元素或者属性时,必须要使用ComplexType。
4. SimpleContent,用于ComplexType元素上,用于限定该ComplexType的内容类型,表示该ComplexType没有子元素,同时该ComplexType需要有属性,否则它就成为SimpleType了。
5. 通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素【用DTD验证的情况下。】;通过Schema是没法明确指定目标XML文档的根元素,XmlSpy是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明确指定文档的根元素而不必按照XmlSpy的生成来做【并且Schema验证的XML文档根元素也不是固定的,是根据Schema具体内容来定。比如用下面这个Schema验证的XML文档的根元素就不是固定的,可以是helloworld,也可以是welcome,用XmlSpy根据这个Schema生成XML文档的时候它会提示你选择根元素,选哪个都行,比如你选择了helloworld,那么在你的这个XML文档里面就不可能出现welcome了,选择welcome就不可能出现helloworld了。】。
注意sequence和choice的区别,下面这两组例子(4个文件)做比较【重点】:
下面是一个课堂作业,根据给定的XML文件test1.xml自己写出相应的Schema文件,这里写出了两个对应的Schema那件test1-1.xsd和test1_2.xsd,这两个文件都能用来验证test1.xml,首先给出test1.xml代码,然后再给出test1-1.xsd和test1-2.xsd代码。
Schema简单总结:
Schema是另一种文档类型定义,它遵循XML的语言规范。
Schema是可扩展的,支持命名空间。
Schema支持更多的数据类型与元素类型。
Schema用element声明元素,用attribute声明元素的属性。
Schema用simpleType定义简单类型,用complexType定义复杂类型。
附件里面的XML_Schema学习总结是教师针对Schema模块专门系统总结的一些重点笔记,一定要详细查看,并且以后的XML Schema开发会经常用到这个笔记总结
附件为上课课件,详细笔记在里面
我们自己写的XML文件需要用Schema来验证有效性,而Schema恰恰也是一个XML文件,那么Schema这个XML文件的有效性用什么来验证呢?答案是用DTD来验证。用内置的XMLSchema.dtd来验证Schema文件(一个XML文件)的有效性。所以Schema里面定义命名空间的那个URL不能换成其他的,只能是http://www.w3.org/2001/XMLSchema,这里面包含了验证Schema有效性的DTD。
重点查看附件xml_3.pdf文档里面的内容,这个是上课的课件,里面详细讲解了Schema的相关内容,仔细阅读研究。
下面是自定义数据类型的一对使用示例:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="cat" type="xs:string"/> <xs:element name="dog" type="xs:string"/> <!--自定义数据类型,这种类型里面必须包含cat和dog两个元素,并且这两个元素都是字符串类型的--> <xs:complexType name="myType"> <xs:sequence maxOccurs="unbounded"> <xs:element ref="cat"/> <xs:element ref="dog"/> </xs:sequence> <!-- sequence表示按顺序,minOccurs表示最小出现次数,maxOccurs表示最大出现次数,unbounded表示最大出现次数没有限制 --> </xs:complexType> <!-- 定义了一个元素,这个元素的类型是自定义的myType类型 --> <xs:element name="pets" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <pets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema2.xsd"> <cat>123</cat> <dog>456</dog> </pets>
凡是在Schema里面定义的element元素,就表示在相应的XML里面直接用的,Schema里面定义的类型complexType是不能直接在XML里面使用的。类型是抽象的概念,比如定义的某个元素可以是牟某种类型的,类型不能直接在XML里面使用。
下面是日常Schema-XML开发中最常用到的一些Schema使用示例【非常重要,根据里面的注释仔细研究,拷贝到XMLSpy里面运行起来】:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 把name、birthday、age三个放到一组里面,以后凡是使用myGroup的地方,这三个元素就会同时出现 --> <xs:group name="myGroup"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> <xs:element name="age" type="xs:integer"/> </xs:sequence> </xs:group> <!-- 定义一个元素,这个元素引用上面定义的组myGroup --> <xs:element name="person"> <xs:complexType> <xs:group ref="myGroup"/> </xs:complexType> </xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema3.xsd"> <name>tom</name> <birthday>2013-10-10</birthday> <age>12</age> </person>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:attribute name="interest" type="xs:integer"/> <!-- person这个元素里面包含hello和world两个元素,并且它有一个属性interest,这个属性可有可无 --> <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="hello" type="xs:string"/> <xs:element name="world" type="xs:string"/> </xs:sequence> <xs:attribute ref="interest"/> </xs:complexType> </xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema4.xsd" interest="123"> <hello></hello> <world></world> </person>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 属性组定义,hello属性必须有,world属性可有可无 --> <xs:attributeGroup name="myAttributeGroup"> <xs:attribute name="hello" type="xs:string" use="required"/> <xs:attribute name="world" type="xs:string" use="optional"/> </xs:attributeGroup> <!-- 这个元素里面不包含其他元素,里面是空的,但是它有一些属性,它引用了属性组myAttributeGroup --> <xs:element name="myElement"> <xs:complexType> <xs:attributeGroup ref="myAttributeGroup"/> </xs:complexType> </xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <myElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema5.xsd" hello="abc"></myElement>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 自定义一个类型,如果有一个元素它的类型是myType,那么这个元素的值只能是介于0到100之间 --> <xs:simpleType name="myType"> <xs:restriction base="xs:integer"> <xs:minExclusive value="0"/> <xs:maxExclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:element name="hello" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema6.xsd"> 10 </hello>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 自定义一个类型,如果有一个元素它的类型是myType,那么这个元素的值只能是5、7、9中的一个 --> <xs:simpleType name="myType"> <xs:restriction base="xs:integer"> <xs:enumeration value="5"/> <xs:enumeration value="7"/> <xs:enumeration value="9"/> <!-- 定义的枚举类型,用户的元素值只能是这几个值当中的一个 --> </xs:restriction> </xs:simpleType> <xs:element name="hello" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema7.xsd"> 5 </hello>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 自定义一种类型,如果某个元素是这种类型,那么在这个元素里面可以使用itemType所指定的类型,只要我的所有元素值是属于所指定的类型就行。有一个元素值不属于这种类型就会报错。每个元素值中间用空格间隔 --> <xs:simpleType name="myType"> <xs:list itemType="xs:integer"/> <!-- list相当于一种集合一样 --> </xs:simpleType> <xs:element name="hello" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema8.xsd"> 1 2 3 78 </hello>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 定义一个属性。把roadbikeSize类型和mountainbikeSize类型作为allFrameSize这个属性的union的memberTypes的属性值(中间用空格间隔)。也就是说memberTypes值要么取roadbikeSize要么取mountainbikeSize,二者只能取一个。如果取roadbikeSize,那么memberTypes值是46、55、60中的一个;如果取mountainbikeSize,那么memberTypes值是small、medium、large中的一个。总结:属性allFrameSize只能是六选一 --> <xs:attribute name="allFrameSize"> <xs:simpleType> <xs:union memberTypes="roadbikeSize mountainbikeSize"/> </xs:simpleType> </xs:attribute> <!-- 自定义一种类型,名字叫roadbikeSize,它的约定限制是基于正整数,从46、55、60这三个值里面选一个可以作为这个类型的值 --> <xs:simpleType name="roadbikeSize"> <xs:restriction base="xs:positiveInteger"> <xs:enumeration value="46"/> <xs:enumeration value="55"/> <xs:enumeration value="60"/> </xs:restriction> </xs:simpleType> <!-- 自定义一种类型,名字叫mountainbikeSize,它的约定限制是基于字符串,从small、medium、large这三个值里面选一个可以作为这个类型的值 --> <xs:simpleType name="mountainbikeSize"> <xs:restriction base="xs:string"> <xs:enumeration value="small"/> <xs:enumeration value="medium"/> <xs:enumeration value="large"/> </xs:restriction> </xs:simpleType> <!-- 定义一个元素 --> <xs:element name="hello"> <xs:complexType> <xs:sequence> <xs:element name="welcome" type="xs:string"/> </xs:sequence> <xs:attribute ref="allFrameSize" use="required"/> <!-- 复杂类型,定义一个元素(子元素) --> <!-- 定义一个属性,这个属性类型是allFrameSize --> </xs:complexType> </xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema9.xsd" allFrameSize="small"> <welcome> </welcome> </hello>
========================以上都是simpleType的一些用法=====================
simpleType和complexType区别:
1、simpleType类型的元素中不能包含元素或者属性。
2、当需要声明一个元素的子元素和/或属性时,用complexType【特点:有子元素,同时有可能有属性,换句话说,属性和子元素里面必然至少有一个,或者两个都有。】;
3、当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 根元素 --> <xs:element name="showSize"> <!-- 这个元素是复杂类型 --> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="sizing" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="us"/> <xs:enumeration value="europe"/> <xs:enumeration value="uk"/> </xs:restriction> <!-- sizing属性的值是一个枚举,可以从下面几个值里面选择一个 --> </xs:simpleType> </xs:attribute> </xs:extension> <!-- 表示showSize元素内容是decimal类型的(十进制的小数)。基于decimal进行扩展,十进制的,可以包含小数,对十进制有一个扩展 --> <!-- 里面必定有一个名字叫做sizing的属性 --> </xs:simpleContent> <!-- simpleContent表示上面的showSize元素内容符合什么约定,<xs:simpleContent>标签中间的内容来表示这种约定 --> <!-- simpleContent表示元素下不包括子元素但是可以包含属性,否则你直接用simpleType不就可以了么。complexType可以包含子元素,可以包含属性,但是使用simpleContent就是为了限定元素中间的内容是什么类型(也就是说元素中间必须有内容,不能是空的),不能包含子元素,但可以包含属性 --> </xs:complexType> </xs:element> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <showSize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema10.xsd" sizing="uk"> 10 </showSize>
1. Schema(模式):其作用与dtd一样,也是用于验证XML文档的有效性,只不过它提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个XML文件,而dtd则不是。
2. 所有的schema文档,其根元素必须为schema。
3. SimpleType与ComplexType的区别:
1) SimpleType类型的元素没有子元素,也没有属性。
2) 当需要定义的元素包含了子元素或者属性时,必须要使用ComplexType。
4. SimpleContent,用于ComplexType元素上,用于限定该ComplexType的内容类型,表示该ComplexType没有子元素,同时该ComplexType需要有属性,否则它就成为SimpleType了。
5. 通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素【用DTD验证的情况下。】;通过Schema是没法明确指定目标XML文档的根元素,XmlSpy是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明确指定文档的根元素而不必按照XmlSpy的生成来做【并且Schema验证的XML文档根元素也不是固定的,是根据Schema具体内容来定。比如用下面这个Schema验证的XML文档的根元素就不是固定的,可以是helloworld,也可以是welcome,用XmlSpy根据这个Schema生成XML文档的时候它会提示你选择根元素,选哪个都行,比如你选择了helloworld,那么在你的这个XML文档里面就不可能出现welcome了,选择welcome就不可能出现helloworld了。】。
注意sequence和choice的区别,下面这两组例子(4个文件)做比较【重点】:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 这里表示myType这个复杂类型里面要么有hello这个子元素,要么有world这个子元素,二选一 --> <xs:complexType name="myType"> <xs:choice maxOccurs="3"> <!-- choice里面定义的元素都相当于局部元素,只能在choice的选择中使用 --> <xs:element name="hello" type="xs:string"/> <xs:element name="world" type="xs:string"/> </xs:choice> <!-- choice里面的元素最多出现三次(和同一个元素重复出现没有关系,同一个元素出现三次也可以,不同元素出现三次也可以) --> </xs:complexType> <xs:element name="helloworld" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <helloworld xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema11.xsd"> <hello>123</hello> <hello>123</hello> </helloworld>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 自定义一种类型,里面包含两个元素 --> <xs:complexType name="myType"> <xs:sequence maxOccurs="3"> <xs:element name="hello" type="xs:string"/> <xs:element name="world" type="xs:string"/> </xs:sequence> <!-- sequence表示序列,按照顺序执行。equence表示里面的元素都得出现,而且按照顺序,minOccurs和maxOccurs同样指的是整体一组,整体(两个元素必须同时出现,同时出现算作一次)要求最少出现一次,最多出现3次。 --> </xs:complexType> <xs:element name="helloworld" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <helloworld xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\myschema12.xsd"> <hello>abc</hello> <world>xyz</world> <hello>abc</hello> <world>xyz</world> <hello>abc</hello> <world>xyz</world> </helloworld>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- 总结:通过DTD验证的XML文档,在DTD里面通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素。而通过Schema验证的XML文档,是没法明确指定目标XML文档的根元素的,XmlSpy是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明确指定文档的根元素而不必按照XmlSpy的生成来做,并且Schema验证的XML文档根元素也不是固定的,是根据Schema具体内容来定。比如用下面这个Schema验证的XML文档的根元素就不是固定的,可以是helloworld,也可以是welcome,用XmlSpy根据这个Schema生成XML文档的时候它会提示你选择根元素,选哪个都行,比如你选择了helloworld,那么在你的这个XML文档里面就不可能出现welcome了,选择welcome就不可能出现helloworld了。 --> <xs:complexType name="myType"> <xs:sequence maxOccurs="3"> <xs:element name="hello" type="xs:string"/> <xs:element name="world" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="helloworld" type="myType"/> <xs:element name="welcome" type="myType"/> </xs:schema>
下面是一个课堂作业,根据给定的XML文件test1.xml自己写出相应的Schema文件,这里写出了两个对应的Schema那件test1-1.xsd和test1_2.xsd,这两个文件都能用来验证test1.xml,首先给出test1.xml代码,然后再给出test1-1.xsd和test1-2.xsd代码。
<?xml version="1.0" encoding="UTF-8"?> <学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\桌面\XML\test1-2.xsd"> <学生 学号="1"> <姓名>张三</姓名> <性别>男</性别> <年龄>19</年龄> </学生> <学生 学号="2"> <姓名>李四</姓名> <性别>女</性别> <年龄>20</年龄> </学生> <学生 学号="3"> <姓名>王五</姓名> <性别>男</性别> <年龄>21</年龄> </学生> </学生名册>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:simpleType name="sexType"> <xs:restriction base="xs:string"> <xs:enumeration value="男"/> <xs:enumeration value="女"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ageType"> <xs:restriction base="xs:integer"> <xs:minExclusive value="1"/> <xs:maxExclusive value="150"/> </xs:restriction> </xs:simpleType> <xs:group name="groupType"> <xs:sequence> <xs:element name="姓名" type="xs:string"/> <xs:element name="性别" type="sexType"/> <xs:element name="年龄" type="xs:integer"/> </xs:sequence> </xs:group> <xs:complexType name="myType"> <xs:choice maxOccurs="unbounded"> <xs:element name="学生"> <xs:complexType> <xs:group ref="groupType"/> <xs:attribute name="学号" type="xs:integer"/> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:element name="学生名册" type="myType"/> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="学生名册"> <xs:complexType> <xs:sequence maxOccurs="unbounded"> <xs:element name="学生"> <xs:complexType> <xs:sequence> <xs:element name="姓名" type="xs:string"/> <xs:element name="性别"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="男"/> <xs:enumeration value="女"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="年龄"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minExclusive value="1"/> <xs:maxExclusive value="150"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="学号" type="xs:integer"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Schema简单总结:
Schema是另一种文档类型定义,它遵循XML的语言规范。
Schema是可扩展的,支持命名空间。
Schema支持更多的数据类型与元素类型。
Schema用element声明元素,用attribute声明元素的属性。
Schema用simpleType定义简单类型,用complexType定义复杂类型。
附件里面的XML_Schema学习总结是教师针对Schema模块专门系统总结的一些重点笔记,一定要详细查看,并且以后的XML Schema开发会经常用到这个笔记总结
附件为上课课件,详细笔记在里面
- xml_3.zip (2.3 MB)
- 下载次数: 2
- XML_Schema学习总结.zip (265.4 KB)
- 下载次数: 3
发表评论
-
领域精通涉及技术点(不分先后)
2017-12-20 19:35 620Java8 netty jvm kafaka消息队列 上传下载 ... -
计算机各种单位讲解及换算
2017-12-13 13:54 1642我还听过有UK的 一、最小单位:位(bit,缩写为b) 在原 ... -
JAVA字符串格式化-String.format()和MessageFormat的使用
2017-12-05 10:39 1447String.format()常规类型的格式化 Stri ... -
eclipse启动项目常见问题
2017-11-16 17:46 1184今儿遇到了个问题,ecli ... -
字符编码笔记:ASCII,Unicode和UTF-8
2017-10-23 16:37 458讲的太牛逼了: http://ww ... -
emoji简单讲解
2017-10-23 15:17 973emoji处理方式大起底 http://blog.csdn.n ... -
BigDecimal讲解
2017-10-12 15:58 445BigDecimal 由任意精度的整数非标度值 和 32 位的 ... -
eclips 控制台console上不打印信息
2017-09-06 21:53 5811、进windows菜单 -> show view -& ... -
详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2017-08-29 17:08 2981http://donald-draper.iteye.com/ ... -
用@ExceptionHandler 来进行切面异常处理
2017-08-29 11:47 2311有时候我们想处理某个类里Controller中抛出的异常怎么搞 ... -
Spring 注解@Component、@Repository、@Service、@Controller区别
2017-08-28 15:27 1017spring 2.5 中除了提供 @Com ... -
线程的一点小总结
2017-08-23 20:36 709java中main方法启动的是一个进程还是一个线程? 答:是一 ... -
线程池
2017-08-23 17:35 522诸如Web 服务器、数据库 ... -
Class源码大概讲解
2017-08-23 16:47 512http://blog.csdn.net/a327369238 ... -
Spring 事务相关
2017-08-14 12:10 476Transactionz注解的readOnly ... -
把时间当做朋友-前言
2017-08-13 20:47 407要管理的不是时间,而是自己。人们生活在同一个世界,却又各自 ... -
单例里面的方法讲解
2017-08-11 14:55 490spring里的controller是单例的。系统针对每个co ... -
eclipse拷贝出来的项目名称还是原来的
2017-07-26 16:46 1082需要修改的有如下几个地方: 1、pom.xml里面打包的名字一 ... -
自定义hibernate方言,新增自定义函数
2017-06-27 10:47 880按位与运算(&)在许多数据库中都是支持的,遗憾的是,H ... -
http请求参数:header body paramter三种参数区别、联系
2017-06-19 10:46 489112345
相关推荐
总结,利用Java和XML Schema解析XML涉及的关键步骤包括:创建JAXBContext、获取Unmarshaller和Marshaller对象、反序列化XML、操作Java对象、序列化回XML、以及可能的XPath查询。通过熟练掌握这些技能,开发者可以...
"Java XML 二"之Schema总结,主要关注的是XML Schema,它是XML文档结构和数据类型的一种规范,用于提供比DTD(Document Type Definition)更强大的验证功能。以下是对该主题的详细概述: 1. **XML Schema定义** ...
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:schema> ``` 这个例子定义了一个`person`元素,包含`firstName`和`lastName`两个子元素,都是字符串类型。 2. **验证XML文档**:...
在Java开发中,XML(可扩展标记语言)常用于数据交换和配置文件,而XSD(XML Schema Definition)则是用于定义XML文档结构的规范。JavaBean是Java编程中的一种面向对象的设计模式,常用于封装数据并提供易于使用的...
总结起来,这个主题涵盖了XML的结构定义、JavaBean的创建以及两者之间的转换技术,这些都是Java开发中处理XML数据时的关键知识点。通过理解这些概念和技术,开发者可以更有效地管理和操作XML数据,构建健壮的Java...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn file:///D:/_dev_stu/xsdtest/src/note.xml"> <to>George <from>John <heading>Reminder <body>Don'...
在这个例子中,使用`newInstance()`方法创建了一个新的`SchemaFactory`实例,指定的协议是`http://www.w3.org/2001/XMLSchema`,这是XSD的命名空间。 2. **Schema**: `Schema` 对象是根据XSD文件创建的,它包含了...
在Java中,XML Schema的验证可以使用javax.xml.validation包,提供了独立于模式语言的验证服务接口。该包提供了三个类来验证文档:SchemaFactory、Schema和Validator。 在实际应用中,XML Schema可以用于: 1. ...
#### 二、XML Schema 的组成部分 - **XSD<schema> 元素**:这是 XML Schema 的根元素,用于声明一个 XML Schema 文档。它包含了所有其他用于定义元素、属性和类型的声明。 - **简单的类型**:简单类型定义了单一的...
在实际应用中,XSD不仅可以帮助我们验证XML文档,还可以用于生成Java类、WSDL服务定义等,极大地提升了XML在各种应用场景下的可操作性。对于开发人员来说,理解和掌握XSD是提高工作效率和代码质量的重要技能。 通过...
`XmlSchema-1.4.6.jar` 是一个包含Java绑定的XML Schema API的库,它为处理XML Schema文档提供了支持。在开发Web服务客户端时,尤其是与基于SOAP(简单对象访问协议)的Web服务交互时,这个库扮演了至关重要的角色。...
XML_schema_详解 XML Schema是XML文档的约束机制,用于定义XML文档的结构和内容。它是XML 1.0规范的一部分,提供了一个强大的工具来描述和验证XML文档。 XML Schema的优点是: * 强大的描述能力:XML Schema可以...
`xmlschema-core-2.0.3.jar` 是一个Java库,专门用于解析和操作XML Schema文档,它支持XML Schema 1.1标准。 在Spring Web服务中,XML Schema Core库扮演着关键角色。Spring Web Service框架是基于合同优先...
总结起来,XmlSchema-1.4.7.jar是用于处理XML Schema的Java库,它提供了XML文档验证、类型转换等功能,并可能在Web服务框架中得到应用。了解并熟练使用这个库,对于Java开发者来说,能够提高他们在处理XML数据时的...
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ``` 2. `<element>`:这个标签用于定义XML文档中的元素,包括元素的名称、类型、约束等。例如,定义一个名为`name`的字符串类型元素: ```xml ``` ...
本篇将详细总结在Java中如何读取和写入XML文件,以及相关的工具和技术。 首先,Java提供了一些内置的API来处理XML,如JAXB(Java Architecture for XML Binding)、DOM(Document Object Model)、SAX(Simple API ...
总结来说,这个实验要求你深入理解XML Schema的概念和应用,掌握生成XML文档的编程技巧,以及与SOA相关的数据交换知识。在实践中,你需要解析XML Schema,生成符合Schema的XML文档,这将涉及到编程、XML处理和数据...
这可以通过编程语言中的XML解析库或XML工具实现,例如Java的JAXB,.NET框架的XmlSchema类等。 10. **学习资源**:"XMLSchema.chm"这样的帮助文档通常会详细解释XML Schema的语法、用法和示例,对于初学者来说是非常...