【WebServices前传二部曲】上部_DTD参数实体和Schema数据类型

完整版见https://jadyer.github.io/2013/03/19/what-is-dtd-and-schema/


上部_DTD参数实体和Schema数据类型——圣思园张龙   编辑:玄玉


DTD参数实体数据类型
实体引用基本数据类型
为何要Schema扩展数据类型
文档结构数据类型的特性

DTD参数实体
该实体不在具体实例化文档中使用,而是在DTD文档内部被使用
比如我们定义这样的一个实体:<!ENTITY %地址 "街道,城市,邮编,国家">
然后可以在DTD内部通过"%地址;"来引用它:<!ELEMENT 联系(人名,电话,%地址;)>
这就是参数实体的概念

类型普通实体参数实体
使用场合用在XML文档中只用在DTD中元素和属性的声明中
声明
方式
内部<!ENTITY 实体名 "文本内容"><!ENTITY %实体名 "文本内容">
外部<!ENTITY 实体名 SYSTEM "外部文件URL地址"><!ENTITY %实体名 SYSTEM "外部文件URL地址">
引用方式&实体名;%实体名;

 

 

实体引用
实际上XML已经内置了5个实体,也就是我们常说的实体引用
这是为了避免把字符数据和标签中需要用到的一些特殊符号相混淆,于是XML提供了实体引用

字符
实体引用
&
&amp;
>
&gt;
<
&lt;
&quot;
&apos;

 

 

为何要Schema
DTD的局限性
    1)DTD不遵守XML语法(写XML文档实例时用一种语法,写DTD时用另外一种语法)
    2)DTD数据类型有限(与数据库数据类型不一致)
    3)DTD不可扩展
Schema的新特性
    1)Schema基于XML语法
    2)Schema可以用能处理XML闻到那股的工具处理
    3)Schema大大扩充了数据类型,可以自定义数据类型
    4)Schema支持元素的继承——Object-Oriented
    5)Schema支持属性组

 

 

Schema的文档结构

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
		targetNamespace="http://mynamespace/mychema">
<!-- 放入实际内容 -->
</xs:schema>
1)<xs:schema:表示所有Schema文档使用schema作为其根元素
2)xmlns:xs:表示用于构造schema的元素和数据类型来自http://www.w3.org/2001/XMLSchema命名空间
3)targetNamespace:表示本schema定义的元素和数据类型属于http://mynamespace/mychema命名空间

 

 

Schema的数据类型
简单类型
    1、内置的数据类型(built-in data types)
        1)基本的数据类型
        2)扩展的数据类型
    2、用户自定义数据类型(通过simpleType定义)
复杂类型(通过complexType定义,在WebServices中经常会用到它,属于必用)

 

 

基本数据类型

基本数据类型描述
string表示字符串
boolean布尔型
decimal代表特定精度的数字
float表示单精度32位浮点数
double表示双精度64位浮点数
duration表示持续时间
dateTime代表特定的时间
time代表特定的时间,但是是每天重复的
date代表日期
hexBinary表示十六进制数
anyURI表示一个URI,用来定位文件
NOTATION代表NOTATION类型

 

 

扩展数据类型

扩展数据类型描述
ID用于唯一标识元素
IDREF参考ID类型的元素或属性
ENTITY实体类型
NMTOKENNMTOKEN类型
NMTOKENSNMTOKEN类型集
long表示整型数,大小介于-9223372036854775808和9223372036854775807之间
int表示整型数,大小介于-2147483648和2147483647之间
short表示整型数,大小介于-32768和32767之间
byte表示整型数,大小介于-128和127之间

 

 

数据类型的特性

数据类型的特性描述
enumeration在指定的数据集中选择,限定用户的选值
totalDigits精确指定数字个数
fractionDigits限定最大的小数位,用于控制精度(必须大于或等于零)
length指定数据的长度,即精确指定允许的最大字符长度
maxLength指定允许的最大字符长度
minLength指定允许的最小字符长度
maxExclusive指定数据的最大值(小于)
maxInclusive指定数据的最大值(小于等于)
minExclusive指定最小值(大于)
minInclusive指定最小值(大于等于)
Pattern指定数据的显示规范,即指定允许值的模式,类似正则表达式
whiteSpace处理空白(保留:preserve,替换:replace,合并:collapse)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值