xml学习总结(二)
XML Schema
(1)Schema内置类型
->字符串类型
<strlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="string.xsd">
</strlist>
->数值类型
<numberlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="number.xsd">
</numberlist>
->日期时间类型
<date_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="date.xsd">
</date_list>
->boolean类型
<boolean_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="boolean.xsd">
</boolean_list>
->anyURI类型
<url_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="uri.xsd">
</url_list>
->二进制
<binaryList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="binary.xsd">
</binaryList>
(2)使用限制派生新类型
方式一(base.xsd)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="age_Type">
<xs:restriction base="xs:int">
<xs:maxInclusive value="100"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="age" type="age_Type"/>
</xs:schema>
方式二
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="price_Type">
<xs:restriction>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
<xs:totalDigits value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:maxInclusive value="100"/>
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="price" type="price_Type"/>
</xs:schema>
(base.xml)
<?xml version="1.0" encoding="UTF-8"?>
<age xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="base.xsd">
34
</age>
(3)指定类型的两种方式
->指定type类型
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="books" type="xs:string"/>
<xs:element name="开始日期" type="xs:date"/>
<xs:attribute name="price" type="xs:double"/>
<xs:attribute name="islast" type="xs:boolean"/>
</xs:schema>
->使用子元素
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="books">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="疯狂Java讲义"/>
<xs:enumeration value="轻量级Java EE企业应用实战"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
(4)长度约束
<xs:length value="5" />
<xs:maxLength value="20" />
<xs:minLength value="0" />
(5)精度约束
<xs:simpleType name="price_Type">
<xs:restriction base="xs:decimal">
<!-- 最多5位数,小数点后最多2位数 -->
<xs:fractionDigits value="2"/>
<xs:totalDigits value="5"/>
<!-- 最大值500 -->
<xs:maxInclusive value="500"/>
</xs:restriction>
</xs:simpleType>
(6)枚举约束
<xs:simpleType name="地址_Type">
<xs:restriction base="xs:token">
<!-- 列出多个有效的枚举值 -->
<xs:enumeration value="广州"/>
<xs:enumeration value="上海"/>
</xs:restriction>
</xs:simpleType>
(7)正则表达式
<xs:simpleType name="price_Type">
<xs:restriction base="xs:decimal">
<!-- 必须匹配1XX.X的格式 -->
<xs:pattern value="1\d{2}\.\d"/>
</xs:restriction>
</xs:simpleType>
(8)空白处理
<!--whiteSpace可以接受的值
presver:保留值里边的空白
replace:将值里出现的所有的空白都替换成空格
collpase:先执行replace,在去掉前后的空格,并将中间的多个连续的空格压缩成一个
-->
<xs:simpleType name="price_Type">
<xs:restriction base="xs:decimal">
<!-- 下面的whiteSpace约束的值只能是collapse -->
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
<!-- 定义price元素,其类型是price_Type -->
<xs:element name="price" type="price_Type"/>
<xs:element name="简要介绍">
<xs:simpleType>
<xs:restriction base="xs:string">
<!-- 为string类型增加collapse约束,相当于token -->
<xs:whiteSpace value="collapse"/>
<!-- 指定字符串长度只能为5 -->
<xs:length value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
(9)使用list派生列表类型
<xs:simpleType name="age_list_Type">
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<!-- 定义age_list_Type类型的元素 -->
<xs:element name="age_list" type="age_list_Type"/>
(10)限制列表约束
---长度约束:Length。maxLength。minLength
---枚举约束:enumeration
---正则表达式约束:pattern
---空白处理:whiteSpace(约束值只能是collapse)
(11)使用union派生联合类型
<xs:simpleType name="price_Type">
<xs:restriction base="xs:decimal">
<xs:maxExclusive value="100"/>
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="publish_date_Type">
<xs:restriction base="xs:date">
<xs:minExclusive value="2007-01-01"/>
<xs:maxExclusive value="2009-12-31"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="price_publish_Type">
<!--此时price_name的值可以是price_Type也可以是publish_date_Type-->
<xs:union memberTypes="price_Type publish_date_Type"/>
</xs:simpleType>
<xs:element name="price_name" type="price_publish_Type"/>
(12)阻止派生新的简单类型
--->使用final属性
--->为约束指定fixed属性
(13)合并多个Schema
---->使用include元素
---->使用redefine元素
---->使用import元素
xml学习总结(二)的更多相关文章
- XML学习总结(二)——XML入门
XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...
- xml学习笔记二(规则)
XML 的语法规则很简单,且很有逻辑.这些规则很容易学习,也很容易使用. 所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a para ...
- XML学习总结二——DTD
主要用处是约束XML. 1.DTD分为内部DTD与外部DTD两类: 内部DTD:将DTD定义在XML文档的内部 <!DOCTYPE 根元素名 [ 元素描述]> 外部DTD < ...
- 从零开始学习jQuery (二) 万能的选择器
本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...
- Android Animation学习(二) ApiDemos解析:基本Animators使用
Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...
- XML 学习介绍 收藏
XML学习总结(一)——XML介绍 一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
随机推荐
- VB读写INI文件的四个函数以及相关API详细说明
WritePrivateProfileString函数说明 来源:http://blog.csdn.net/wjb9921/article/details/2005000 在我们写的程序当中,总有一 ...
- SelectionKey理解(总结)
SelectKey注册了写事件,不在合适的时间去除掉,会一直触发写事件,因为写事件是代码触发的 client.register(selector, SelectionKey.OP_WRITE); 或者 ...
- 结合源码看nginx-1.4.0之nginx事件驱动机制详解
目录 0. 摘要 1. nginx事件模块组织结构 2. nginx事件模块数据结构及类图 3. nginx事件模块运行机制 4. 练习:一个简单的事件驱动模块 5. 小结 6. 参考源码
- python(6)- json和pickle模块
这是用于序列化的两个模块: json: 用于字符串和python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps ...
- 关于解决form表单记录上次保存填写记录清空
传进来的是一个HTML的Table的ID. function doReset(tableId){ var tbl_content = document.getElementById(tableId); ...
- hdu 3093 动态规划
思路:直接引用论文的话. 暂时先不考虑“使剩下的物品都放不下”的条件,那就是求 0-1 背包的所有可行方案. 用 Fi[j]表示前 i 件物品中选若干件总体积为 j 的方案数,初始为 F0[0]=1, ...
- 高效的网络流dinic算法模版
#include <cstring> #include <algorithm> #include <vector> #define Maxn 120010 #def ...
- asp.net常见面试题(一)
1.索引器 class Player { ]; public int this[int index] { get { || index >= ) { ; } else { return arr[ ...
- sql中nvarchar(max)长度测试
nvarchar(max)长度测试:在使用convert强制类型转化之后 文本长度可以突破8000的上限.并且nvarchar(max)的最大长度可达到2^31以下为验证SQL: Declare @A ...
- linux中sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...