- 浏览: 2158610 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
理解XML Schema: XML Schema 初步 (I)、简单类型示例、列表类型xsd:list、联合类型xsd:union
概念:
元素如果包含子元素或者是带有属性则被称为复合类型;反之元素如果仅仅包含数字、字符串或者其他数据等,但不包含任何子元素则称为简单类型。
转自:http://blog.sina.com.cn/s/blog_4c6245400100bhbq.html
一、最基本的
对应的Schema
二、含有子元素,来个complexType
对应的Schema
三、含有孙元素,直接嵌套也可,还可使用ref简化结构
直接嵌套时的XSD
使用Ref的
四、定义相同子元素的数量
maxOccurs的值可以为unbounded,最小值为minOccurs,两者的缺省值都为1
对应的schema:
五、定义可选项的子元素。 xsd:choice
假如上面的订书数据中,可以用书名或者书号任一一种订购,则实例文档可能如下:
对应的schema
这里假定<quantity>值为1时,缺省。
对应的schema
六、内置简单类型
内建于XML Schema的简单类型有44种。他们在XML Schema推荐标准的第二部分中公布,下面这是一张内置类型的层次结构图:
七、自定义简单类型
如果内置简单类型的44种还不能满足要求,怎么办呢?下面学习自定义简单类型。(XML的扩展性充分体现在这里)
ID是一个标准的ISBN编码,我们怎么定义这个ISBN编码呢?
idType是一个自定义的简单类型。
我们对它做了限制:
<xsd:restriction base="xsd:string">代表它是基于一个字符串类型。再用pattern元素来描述该字符串的形式。value="\d{1}-\d{4}-\d{4}-\d{1}"这是一个正则表达式.
利用这个自定义的简单类型,我们可以重新写Schema文档:
假如我们事先确定好ID只有3个,即只有3个ISBN是可选的,那怎么办?我们可以用enumeration元素来进行列举
再来看订购量quantity的值,如果我们设定其值必须在1-10之间,该怎么办呢?可以这些自定义一个简单类型。
八、定义属性 xsd:attribute
对应的schema
那么,实例文档中该属性值是必须的还是可有可无的呢?我们可以这样限制:
这里我们讲id属性类型作为一种自定义数据类型idType。而且,用attribute元素的use属性来定义是否是必须的属性。required是必须值,optional是可选值,prohibited是无属性值。
那么对于属性的缺省值,我们怎么定义呢?比如:
<order>
<orderItem id="4-8443-1780-6" quantity="3"/>
</order>
我们还可以用attribute元素的另一个属性default来定义:
上面的属性我们定义我们还可以采用属性组的办法来重新改写Schema文档。
概念:
元素如果包含子元素或者是带有属性则被称为复合类型;反之元素如果仅仅包含数字、字符串或者其他数据等,但不包含任何子元素则称为简单类型。
转自:http://blog.sina.com.cn/s/blog_4c6245400100bhbq.html
一、最基本的
<?xml version="1.0"?> <greeting>Hello World!!</greeting>
对应的Schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="greeting" type="xsd:string"/> </xsd:schema>
二、含有子元素,来个complexType
<customer> <name>teiki</name> <address>No.237, Road Waitan, Shanghai</address> </customer>
对应的Schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="address" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
三、含有孙元素,直接嵌套也可,还可使用ref简化结构
<?xml version="1.0"?> <customer> <name>Teiki</name> <address> <prefecture>Zhejiang</prefecture> <city>Hangzhou</city> <street>Xilu Road, No.121, 7F</street> </address> </customer>
直接嵌套时的XSD
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="address"> <xsd:complexType> <xsd:sequence> <xsd:element name="prefecture" type="xsd:string"/> <xsd:element name="city" type="xsd:string" /> <xsd:element name="street" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
使用Ref的
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element ref="address"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="address"> <xsd:complexType> <xsd:sequence> <xsd:element name="prefecture" type="xsd:string"/> <xsd:element name="city" type="xsd:string" /> <xsd:element name="street" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
四、定义相同子元素的数量
maxOccurs的值可以为unbounded,最小值为minOccurs,两者的缺省值都为1
<order> <orderItem>Accounting Book</orderItem> <orderItem>Taxation Book</orderItem> </order>
对应的schema:
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema <xsd:element name="order"> <xsd:complexType> <xsd:sequence> <xsd:element name="orderItem" type="xsd:string" maxOccurs="10" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
五、定义可选项的子元素。 xsd:choice
假如上面的订书数据中,可以用书名或者书号任一一种订购,则实例文档可能如下:
<order> <orderItem> <!--书名订购--> <name>Accounting Book</name> </orderItem> <orderItem> <!--书号订购--> <id>7-5058-3496-7</id> </orderItem> </order>
对应的schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="order"> <xsd:complexType> <xsd:sequence> <xsd:element ref="orderItem" maxOccurs="10"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="orderItem"> <xsd:complexType> <xsd:choice> <xsd:element name="name" type="xsd:string"/> <xsd:element name="id" type="xsd:string"/> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema>
这里假定<quantity>值为1时,缺省。
<order> <orderItem> <name>Accounting Book</name> <quantity>2</quantity> </orderItem> <orderItem> <id>7-5058-3496-7</id> </orderItem> </order>
对应的schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="order"> <xsd:complexType> <xsd:sequence> <xsd:element ref="orderItem" maxOccurs="10"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="orderItem"> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element name="name" type="xsd:string"/> <xsd:element name="id" type="xsd:string"/> </xsd:choice> <xsd:element name="quantity" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
六、内置简单类型
内建于XML Schema的简单类型有44种。他们在XML Schema推荐标准的第二部分中公布,下面这是一张内置类型的层次结构图:
七、自定义简单类型
如果内置简单类型的44种还不能满足要求,怎么办呢?下面学习自定义简单类型。(XML的扩展性充分体现在这里)
<order> <orderItem> <id>7-5058-3496-7</id> <quantity>5</quantity> </orderItem> </order>
ID是一个标准的ISBN编码,我们怎么定义这个ISBN编码呢?
<xsd:simpleType name="idType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/> </xsd:restriction> </xsd:simpleType>
idType是一个自定义的简单类型。
我们对它做了限制:
<xsd:restriction base="xsd:string">代表它是基于一个字符串类型。再用pattern元素来描述该字符串的形式。value="\d{1}-\d{4}-\d{4}-\d{1}"这是一个正则表达式.
利用这个自定义的简单类型,我们可以重新写Schema文档:
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="order"> <xsd:complexType> <xsd:sequence> <xsd:element ref="orderItem" maxOccurs="10"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="orderItem"> <xsd:complexType> <xsd:sequence> <xsd:element name="id" type="idType"/> <xsd:element name="quantity" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:simpleType name="idType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>
假如我们事先确定好ID只有3个,即只有3个ISBN是可选的,那怎么办?我们可以用enumeration元素来进行列举
<xsd:simpleType name="idType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="7-5058-3496-7"/> <xsd:enumeration value="7-5005-6450-3"/> <xsd:enumeration value="7-3020-6069-7"/> </xsd:restriction> </xsd:simpleType>
再来看订购量quantity的值,如果我们设定其值必须在1-10之间,该怎么办呢?可以这些自定义一个简单类型。
<xsd:simpleType name="quantityType"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="1"/> <xsd:maxInclusive value="10"/> </xsd:restriction> </xsd:simpleType>
八、定义属性 xsd:attribute
<order> <orderItem id="7-5058-3496-7"/> </order>
对应的schema
<xsd:element name="orderItem"> <xsd:complexType> <xsd:sequence> <!--空元素--> </xsd:sequence> <!--定义该元素属性--> <xsd:attribute name="id" type="xsd:string"/> </xsd:complexType> </xsd:element>
那么,实例文档中该属性值是必须的还是可有可无的呢?我们可以这样限制:
<xsd:attribute name="id" type="idType" use="required"/>
这里我们讲id属性类型作为一种自定义数据类型idType。而且,用attribute元素的use属性来定义是否是必须的属性。required是必须值,optional是可选值,prohibited是无属性值。
那么对于属性的缺省值,我们怎么定义呢?比如:
<order>
<orderItem id="4-8443-1780-6" quantity="3"/>
</order>
我们还可以用attribute元素的另一个属性default来定义:
<xsd:attribute name="quantity" type="xsd:integer" default="1"/>
上面的属性我们定义我们还可以采用属性组的办法来重新改写Schema文档。
<xsd:element name="orderItem"> <xsd:complexType> <xsd:sequence/> <xsd:attributeGroup ref="orderItemAttributes"/> </xsd:complexType> </xsd:element> <xsd:attributeGroup name="orderItemAttributes"> <xsd:attribute name="id" type="idType" use="required"/> <xsd:attribute name="quantity" type="xsd:integer" default="1"/> </xsd:attributeGroup>
发表评论
-
封笔了,资料转到Evernote管理
2013-01-06 20:22 1300封笔了,资料转到Evernote管理 -
windows 用户限制磁盘访问(让用户在桌面查看资料,但是不能访问其他磁盘内容)
2012-11-10 11:38 51391,TrueCrypt Setup 7.1:Free open ... -
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5567import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1226java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1431转自:SSH项目中利用Exce ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6324X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 8050Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
正能量领导力 - 林正刚
2012-10-10 16:37 1029心态,沟通,知识 = 领导力 垃圾桶理论:没人愿意做的事情,主 ... -
马斯洛需求层次理论
2012-10-10 13:55 1448马斯洛需求层次理论(Maslow's hierarchy of ... -
Java 类初始化顺序
2012-08-21 14:07 1102class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2110官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1885静态类: 只有嵌套类才 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20943ProcessBuilder.start() 和 Runtim ... -
对称加密、PBE基于密码加密、PKCS
2012-07-05 11:07 7801对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信 ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39092@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1322XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1333转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1545转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 5009Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3648play plugin和module的区别见:play Mod ...
相关推荐
XML Schema,全称为XML Schema Definition (XSD),是XML文档的一种结构化定义语言,用于描述XML文档的结构和数据类型。它是W3C(万维网联盟)制定的标准,为XML文档提供了严谨的验证机制,确保文档内容符合预设的...
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:schema> ``` 3. **资料集预览**: - 在 Visual Studio 中打开 XML Schema 文件,并切换到资料集视图。 - 预览资料集...
* 入门位于 w3.org/TR/xmlschema-0,它介绍了 XML 模式文档及其设计用途 * 文档结构的标准位于 w3.org/TR/xmlschema-1,它说明了如何定义 XML 文档的结构 * 数据类型的标准位于 w3.org/TR/xmlschema-2,它定义了一些...
在模式文档中,根元素`<xsd:schema>`会声明`xsd`名称空间,指向`http://www.w3.org/2001/XMLSchema`,这样就限定了所有XML Schema元素和属性的使用。在实例文档中,通过`xmlns:xsi`声明`xsi`名称空间并使用`xsi:...
XML Schema 是一种用于定义XML文档结构和数据类型的规范,它弥补了DTD(Document Type Definition)在数据验证方面的局限性。DTD使用自有的非XML语法,而XML Schema本身就是XML文档,这使得Schema更易于理解和集成。...
这得益于XML Schema(XSD)文件,它是XML的结构定义,XMLBean会根据XSD生成Java类。这样,你可以像操作普通Java对象一样操作XML数据。 1. **XML Schema和Java类生成**: - 创建XML Schema文件(.xsd):定义XML...
理解DTD(Document Type Definition)或XSD(XML Schema Definition)是验证XML文档结构的重要部分。DTD用来定义XML文档的结构和数据类型,而XSD提供了更强大、更灵活的验证机制,包括复杂的数据类型、命名空间支持...
此外,XML有DTD(文档类型定义)和XSD(XML Schema)两种验证机制,确保文档符合预设的结构规则。 学习XML时,还需要理解XPath,这是一种用于在XML文档中查找信息的语言。XPath通过路径表达式来选取节点,例如选取...
5. **XML Schema验证**:使用XML Schema(XSD)文件对XML文档进行验证,确保数据的正确性。 6. **XML DOM操作**:添加、删除、修改XML文档的节点,这包括对元素、属性、文本内容的操作。 7. **XML命名空间**:处理...
XML验证则通过DTD(Document Type Definition)或XSD(XML Schema Definition)来确保文档符合预设规则。 四、XPath与XSLT XPath是一种在XML文档中查找信息的语言,可以选取节点、计算字符串值、进行逻辑运算等。...
它使用XSD(XML Schema Definition)文件来定义文档结构。 5. **命名空间(Namespaces)**:在XML中,命名空间可以防止元素名称冲突。通过使用`xmlns`属性,可以为元素分配唯一的命名空间,如`...
在编写完成后,我们可以使用XML解析器或者编程语言的XML库(如Java的JAXB,.NET的XmlSchema类库)来验证XML文档是否符合Schema定义,确保数据的正确性。 在实际开发中,Schema不仅限于基本类型,还可以定义复杂类型...
5. **DTD(Document Type Definition)或XSD(XML Schema Definition)**:定义XML文档结构的规范,确保文档符合预设的规则。 6. **解析(Parsing)**:将XML文档转化为内存中的数据结构,以便进行进一步处理。 ...
5. **XML Schema (XSD)验证**:用于确保XML文档符合特定的结构规则。C#的XmlSchemaSet类可用于加载XML Schema定义,并使用XmlReaderSettings进行验证。 6. **XML文本读写器**:包括XmlTextReader和XmlTextWriter,...