当前位置: 代码迷 >> Web前端 >> 【WebServices前传二部曲】下部_DTD参数实体和Schema数据类型
  详细解决方案

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

热度:293   发布时间:2013-03-21 10:08:17.0
【WebServices前传二部曲】上部_DTD参数实体和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 实体类型
NMTOKEN NMTOKEN类型
NMTOKENS NMTOKEN类型集
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)