- 浏览: 2139649 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 1245封笔了,资料转到Evernote管理 -
windows 用户限制磁盘访问(让用户在桌面查看资料,但是不能访问其他磁盘内容)
2012-11-10 11:38 50651,TrueCrypt Setup 7.1:Free open ... -
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5500import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1177java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1359转自:SSH项目中利用Exce ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6255X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 7950Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
正能量领导力 - 林正刚
2012-10-10 16:37 982心态,沟通,知识 = 领导力 垃圾桶理论:没人愿意做的事情,主 ... -
马斯洛需求层次理论
2012-10-10 13:55 1398马斯洛需求层次理论(Maslow's hierarchy of ... -
Java 类初始化顺序
2012-08-21 14:07 1057class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2077官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1845静态类: 只有嵌套类才 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20843ProcessBuilder.start() 和 Runtim ... -
对称加密、PBE基于密码加密、PKCS
2012-07-05 11:07 7671对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信 ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39005@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1300XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1286转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1509转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 4965Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3615play plugin和module的区别见:play Mod ...
相关推荐
使用XML schema进行EMF 建模,一个入门级的说明文档
&1.XML简介 XML的背景 1) XML代表可扩展的标记语言(eXtensible Markup Language); 2) XML由W3C联盟发展维护;...Schema 也是XML文档,用于定义XML文档的结构。 目标名域 <xs:schema xmlns:xs="http://www....
C# XML入门经典——C#编程人员必备的XML技能 作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出版社:清华大学出版社 出版时间:2003年11月 第1章 在C#中使用XML的原因 <br>1.1 使用XML的原因...
XML Schema Definition (XSD)的学习笔记和C#验证的例子,适合入门学习。
xml基本概念的介绍 dtd、xsd 以及java中用来解析xml的技术 dom, sax, jxtl等等
支持所有xml,xdtd,xsd等相关功能操作修改,转换xmltoxsd,xsdtoxml等等1、新 JSON编辑器版 一个新的入门级版本,专门针对需要图形JSON模式编辑器和相关JSON工具的开发人员。这还包括免费社区版的所有功能。 2、新的...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx=...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 指定Acegi资讯的设定档--> ...
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 7 8 9 <param-name>...
入门您可以下载文件并在客户端中使用它们。 如果要使用Java编写on client,则可以使用internetx模式文件jar作为依赖项快速开始克隆存储库,并使用src/main/resources/xsd文件夹下的架构文件。 将插件添加到您的pom....
:warning: 笔记当他们还从项目中删除了XSD模式。 没有这些架构,ui5-schemas显然无法工作。 如果要继续使用ui5-schemas,请继续使用SAPUI5 / OpenUI5的最新可用版本,其中包括架构为1.71 。 我正在与SAP同事合作,以...
(读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本...Serialize Your Deck with Positron [XML Serialization, XSD, C#]...