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. Sqlalchemy 设置表编码及引擎

    1. 设置引擎编码方式为utf8. engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/sqldb01?ch ...

  2. vue运行原理

    Vue工作原理小结 本文能帮你做什么? 1.了解vue的双向数据绑定原理以及核心代码模块 2.缓解好奇心的同时了解如何实现双向绑定 为了便于说明原理与实现,本文相关代码主要摘自vue源码, 并进行了简 ...

  3. js之广告弹出自动关闭

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  4. ios逆向工程-动态分析

    先说说为什么要分析应用吧,如果你想从一个ios应用中获取有用的信息,或者你想修改该应用的一些功能,前提当然是要先知道该app的逻辑和结构了. 动态分享工具比较少,我们先分析个简单的,全民工具Cycri ...

  5. Android Hook神器:XPosed入门与登陆劫持演示

    前段时间写了一篇关于Cydia Substrate广告注入的文章,大家都直呼过瘾.但是,真正了解这一方面的同学应该知道,其实还有一个比Cydia Substrate更出名的工具:XPosed. 不是因 ...

  6. C++面向对象的编程思想机器人

    C++的面向对象的编程思想如下,一般情况为一个类中包含了这个对象的所有属性与函数,直接调用这个对象就可以对这个对象执行它可以使用的任何操作. #include <iostream> cla ...

  7. BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)

    4550: 小奇的博弈 Time Limit: 2 Sec  Memory Limit: 256 MBSubmit: 159  Solved: 104[Submit][Status][Discuss] ...

  8. 《DSP using MATLAB》示例Example 8.25

  9. modsecurity3.0 nginx 安装

    备注: 使用的是modsecurity 3.0 的版本,也是nginx 官方推荐使用的,同时使用的是nginx 的dynamic module 1. 环境准备 https://github.com/S ...

  10. mui 拨打电话

    function callPhone() { let btnArray = ['拨打', '取消']; let Phone = "10086"; mui.confirm('是否拨打 ...