项目工作总结--XML Schema(标准解读)

        最近在做NetConf相关开发工作,其中很重要的一块是XML解析,项目也需要支持Schema,因此前段时间整理了Schema的两部分标准,只不过整理文档是无法带出来的,所以就在此把Schema相关的内容简单介绍其标准之后,以如何应用的方式记录下来,以供以后使用时参考。在后续的部分,我还将整理NetConf相关标准,作为总结。

 

一、总体概述

     XML Schema的标准分为两部分Part 1: Structure 和Part 2:Data Type. Part 2部分描述了Schema中的数据类型定义、Schema支持的内置数据类型和数据类型相关的Facets;Part 1则描述了一组用于定义xml文档结构的Schema组件、使用组件的语法、组件的校验方法。

     Part 2 中对Schema数据类型的定义是一个三元组(Value space、Lexical space、Facets),在这里不对这些名字进行翻译,使用原称为。

     Value space就是该数据类型所能取值的集合;

     Lexical space是该数据类型的字面表示形式的集合;例如对于Float类型,它可能写作25.2的形式,也可以写作2.52E1,这就是该float值的两种lexical value。

     Facet是数据类型的方面,用于刻画数据类型特征。在标准中,主要分为两类,一类facets用于定义数据类型,称为fundamental facets,一类用于描述数据类型的取值范围,称为constraining facets。facets都是对数据类型value space的约束。

 

二、Schema支持的内置数据类型

Schema支持的内置数据类型参见http://www.w3.org/TR/xmlschema11-2/#built-in-datatypes     。

   

三、Schema中的Facets

1. fundamental facets:

这一类facets只出现在simpleType的定义中,且只出现一次。有四类:

  ordered:描述值的顺序关系(全序、偏序、无序)

  bounded:描述值的界限

  cardinality:描述valuespace的规模

  numeric:描述value的可数性,即是否数值

 

 

2. constraining facets

这一类facets在进行类型派生的时候值可以改变。对于每一个facet并不是可以用于任何一种数据类型,具体可以参见schema实现文档。

length,maxLength,minLength:用于约束字符串类型的长度

pattern:指定一个正则表达式,描述值应该具有的lexical value

maxInclusive,minInclusive,maxExclusive,minExclusive:用于约束整型的取值范围

totalDigits:用于约束数值类型的有效数位数

fractionDigits:用于约束数值类型的精度

enumration:用于描述类型能取的一组枚举值

whiteSpace:用于描述该类型的lexical值中出现空白时的处理方式,可以取preserve、replace和collapse,分别代表保留、替换成空格、去除首尾空白并把中间连续的空白替换成一个空格。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值