1、新建文件 Rhythmk.xsd

<?xml version="1.0" encoding="utf-8"?>

<xs:schema id="Rhythmk"
targetNamespace="http://tempuri.org/Rhythmk.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Rhythmk.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
>
<xs:element name="sqlMap">
<xs:complexType>
<!-- xs:all 控制子元素单一出现 -->
<xs:all>
<xs:element ref="rhythmk" minOccurs="0"/>
<xs:element ref="books" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="namespace" type="xs:string" use="required"/>
</xs:complexType>
</xs:element> <!--
1、elementFormDefault="qualified":
指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定 -->
<xs:element name="rhythmk">
<xs:complexType>
<xs:sequence>
<!-- 指定类型为整行-->
<xs:element name="id" type="xs:integer">
</xs:element>
<xs:element name="realname" type="xs:string"></xs:element>
<xs:element name="body" type="xs:string"></xs:element>
<xs:element name="birthday" type="xs:date"></xs:element>
<!-- 为性别设置默认值 "男"-->
<xs:element name="sex" type="xs:string" default="男"></xs:element>
<!--设置默认值,且无法修改-->
<xs:element name="url" type="xs:string" fixed="http://rhythmk.cnblogs.com"></xs:element>
<!-- 定义属性 -->
<xs:element name="address" >
<xs:complexType >
<!--必填属性-->
<xs:attribute name="area" use="required" >
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN" >
<xs:enumeration value="长沙"></xs:enumeration>
<xs:enumeration value="衡阳"></xs:enumeration>
<xs:enumeration value="岳阳"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element> <!--包住子元素让其可以多次出现-->
<xs:element name="books">
<xs:complexType>
<!-- 允许子节点多次出现 -->
<xs:choice maxOccurs="unbounded">
<xs:element ref="book"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element> <xs:element name="book">
<xs:complexType>
<xs:sequence>
<!-- 指定类型为整行-->
<xs:element name="id" type="xs:integer">
</xs:element>
<xs:element name="bookname" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

2、根据定义 书写XML

<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="" xmlns="http://tempuri.org/Rhythmk.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<rhythmk>
<id> 1</id>
<realname>wk </realname>
<body> body</body>
<birthday>1990-01-25</birthday>
<sex>男</sex>
<url>http://rhythmk.cnblogs.com</url>
<address area="长沙"></address>
</rhythmk>
<books>
<book>
<id>1</id>
<bookname>book1</bookname>
</book>
<book>
<id>2</id>
<bookname>book1</bookname>
</book>
<book>
<id>3</id>
<bookname>book1</bookname>
</book>
</books> </sqlMap>

下载地址:http://pan.baidu.com/share/link?shareid=3470703694&uk=3826187342

XSD 学习的更多相关文章

  1. [xsd学习]复合元素

    对于xsd,复合元素的定义有两种方式: 一.在元素内部直接声明,此种方法只能此元素使用 <xs:element name="employee"> <xs:comp ...

  2. [xsd学习]xsd实例

    以下为一个表示学校的xml文件,学校内有若干学生,每个学生都有基本信息,电脑信息,选课信息 <?xml version="1.0" encoding="UTF-8& ...

  3. [xsd学习]xsd介绍

    一直以来项目中对xml格式的判断使用的都是dtd格式,直到最近才发现,不知何时都已经转为xsd来进行判断和校验,于是今天专门找资料看下,不得不说,对于这类资料的入门,w3cschool真是个不错的资料 ...

  4. [xsd学习]xsd元素限定

    限定(restriction)用于为 XML 元素或者属性定义可接受的值 一.xsd中主要限定格式如下: <xs:element name="xxx"><!--元 ...

  5. [xsd学习]xsd基本要素

    一.xsd常用数据格式 xs:string xs:decimal xs:integer xs:boolean xs:date xs:time 二.简易元素 <xs:element name=&q ...

  6. JAXB常用注解讲解(超详细)

    简介: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例 ...

  7. JAXB—Java类与XML文件之间转换

    JAXB-Java类与XML文件之间转换 简介         JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生 ...

  8. XML学习笔记7——XSD实例

    在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素.属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改),也就是说,是 ...

  9. XML学习笔记5——XSD复杂数据类型

    和简单数据类型对应就是复杂数据类型了,XML元素的数据类型可以是简单数据类型,也可以是复杂数据类型,而XML属性的数据类型就只能是简单数据类型.这篇笔记,就来学习一下XSD中的复杂数据类型了. 1.定 ...

随机推荐

  1. Git详解之四 服务器上的Git

    以下内容转载自:http://www.open-open.com/lib/view/open1328069988843.html 服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日 ...

  2. 每天一个linux命令(文件操作):【转载】find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  3. Java 层级的简单理解

    在J2EE项目中,开发的都是分层来做的: 1.service层:用于暴露给网络调用 2.Impl层:统一规范接口 3.bean层:实体对象,也就是表 4.DAO(Data Access Object) ...

  4. 字符串处理scanf("%d%*c",&n);

    "*"表示该输入项读入后不赋予任何变量,即跳过该输入值.这在减小内存开支上面还是有一点用处的,不需要的字符直接跳过,免得申请没用的变量空间 你的例子中的%*c的作用是读入'\n', ...

  5. python selenium 开发环境配置

    selenium是一个web测试应用框架也可以拿来做爬虫. 1.安装selenium模块 pip install -U selenium 2.安装selenium模块后需要有相应的浏览器驱动 A.使用 ...

  6. MySQL事物回滚

    #commit.rollback用来确保数据库有足够的剩余空间:#commi.rollback只能用于DML操作,即insert.update.delet;#rollback操作撤销上一个commit ...

  7. Apache Accumulo

    Apache Accumulo 是一个可靠的.可伸缩的.高性能的排序分布式的 Key-Value 存储解决方案, 基于单元访问控制以及可定制的服务器端处理.Accumulo使用 Google BigT ...

  8. ORACLE联机日志文件丢失或损坏的处理方法(转)

    经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...

  9. 坑爹的AMH

    坑爹的 AMH的配置文件在这里: nginx 配置文件1:/usr/local/nginx-generic-1.6/conf/nginx.conf nginx 配置文件2:/home/wwwroot/ ...

  10. C# Socket Post File

    ///<summary> ///向服务器发送混合型的请求,1:成功发送,0:发送失败 ///</summary> ///<param name="paranam ...