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参数 多参数的实 ...
随机推荐
- 小白日记4:kali渗透测试之被动信息收集(三)--Shodan、Google
搜索引擎 公司新闻动态 重要雇员信息 机密⽂文档 / 网络拓扑 用户名密码 目标系统软硬件技术架构一.Shodan Shodan只搜网络设备.很多设备并不应该接入互联网,却由于本地网络管理员的疏忽和懒 ...
- C# 之 未能映射路径
在开发中遇到此问题,如下原码,报错:未能映射路径: string filename = Server.MapPath("/logs/log.txt"); 解决方法,从根目录开始: ...
- ArcGIS动态文本
处理动态文本 来自:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s900000013000000/ Deskto ...
- android开发之路10(文件的读写)
1.安卓中文件的数据存储实例(将文件保存到手机自带存储空间中): ①MainActivity.java public class MainActivity extends Activity imple ...
- XML XmlDocument
1.SelectSingleNode(xPath) xPxth:xml/cam/type 一层一层递进
- Activity保持关闭不销毁
activity按back键 消失但是不销毁的实现 重新定义finish()方法: @Override public void finish() { // TODO Auto-ge ...
- Linux 命令 - killall: 通过进程名向进程发送信号
命令格式 killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME... killall -l, --list killall -V, ...
- 160多个android开源代码汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- [转]SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候, ...
- 合理使用mysql中的load data infile导入数据
基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name ...