- 浏览: 314476 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 565Java8 netty jvm kafaka消息队列 上传下载 ... -
计算机各种单位讲解及换算
2017-12-13 13:54 1547我还听过有UK的 一、最小单位:位(bit,缩写为b) 在原 ... -
JAVA字符串格式化-String.format()和MessageFormat的使用
2017-12-05 10:39 1281String.format()常规类型的格式化 Stri ... -
eclipse启动项目常见问题
2017-11-16 17:46 1141今儿遇到了个问题,ecli ... -
字符编码笔记:ASCII,Unicode和UTF-8
2017-10-23 16:37 422讲的太牛逼了: http://ww ... -
emoji简单讲解
2017-10-23 15:17 918emoji处理方式大起底 http://blog.csdn.n ... -
BigDecimal讲解
2017-10-12 15:58 401BigDecimal 由任意精度的整数非标度值 和 32 位的 ... -
eclips 控制台console上不打印信息
2017-09-06 21:53 5391、进windows菜单 -> show view -& ... -
详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2017-08-29 17:08 2913http://donald-draper.iteye.com/ ... -
用@ExceptionHandler 来进行切面异常处理
2017-08-29 11:47 2226有时候我们想处理某个类里Controller中抛出的异常怎么搞 ... -
Spring 注解@Component、@Repository、@Service、@Controller区别
2017-08-28 15:27 964spring 2.5 中除了提供 @Com ... -
线程的一点小总结
2017-08-23 20:36 661java中main方法启动的是一个进程还是一个线程? 答:是一 ... -
线程池
2017-08-23 17:35 477诸如Web 服务器、数据库 ... -
Class源码大概讲解
2017-08-23 16:47 476http://blog.csdn.net/a327369238 ... -
Spring 事务相关
2017-08-14 12:10 438Transactionz注解的readOnly ... -
把时间当做朋友-前言
2017-08-13 20:47 365要管理的不是时间,而是自己。人们生活在同一个世界,却又各自 ... -
单例里面的方法讲解
2017-08-11 14:55 457spring里的controller是单例的。系统针对每个co ... -
eclipse拷贝出来的项目名称还是原来的
2017-07-26 16:46 1031需要修改的有如下几个地方: 1、pom.xml里面打包的名字一 ... -
自定义hibernate方言,新增自定义函数
2017-06-27 10:47 843按位与运算(&)在许多数据库中都是支持的,遗憾的是,H ... -
http请求参数:header body paramter三种参数区别、联系
2017-06-19 10:46 477412345
相关推荐
java根据xml生成schema_xsd_生成javabean
java中实现xmlschema验证文件借鉴.pdf
ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
利用schema解析xml,包括xml的读取、分析、修改、查询。
XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和...
博文链接:https://sydxide2006.iteye.com/blog/127804
NULL 博文链接:https://fangguanhong.iteye.com/blog/1985265
apache 的xmlschema jar包的api文档,用于解析xml schema
xml 学习的好资料,精讲xml schema模式
标签:core、apache、xmlschema、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
介绍XML中schema的语法,使用指南等等,使用schema进行内容校验
xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar
NULL 博文链接:https://code727.iteye.com/blog/1884215
java中实现xmlschema验证文件参照.pdf
本书的前两章回顾有关XML的基础知识,包括XPath、XSL、DTD以及XML Schema,其余部分专注于讲述如何在Java程序内使用XML。《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM...
鑫编写的《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》共分4篇,从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用,循序渐进...
本书的前两章回顾有关XML的基础知识,包括XPath、XSL、DTD以及XML Schema,其余部分专注于讲述如何在Java程序内使用XML。《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、...
xerces-c++ 2.8应用,主要报错xml文件的解析,创建,修改保存。schema验证的。希望对初学者有所帮助.
如果是maven依赖,可以在pom.xml中引入以下配置 <groupId>org.apache.ws.xmlschema <artifactId>xmlschema-core <version>2.2.1 </dependency>