自定义简单类型

自定义简单类型:
  通过对一个已有简单类型进行约束派生出来的。

格式:
  <xs:simpleType>
   <!--自定义简单类型-->
  </xs:simpleType>

例:
XML文件:
  <?xml version="1.0"?>
  <medal>sliver</medal>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="medal">  /声明元素
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:enumeration value="gold"/>  /声明自定义枚举型
      <xs:enumeration value="sliver"/>
      <xs:enumeration value="copper"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>

说明:
  该段代码创建了一个新的类型,该类型是枚举型。其中包含了三个选项(gold、sliver、copper)。
  在XML文档中,只能在三个选项中出现其中一个。
自定义简单类型:
enumeration(枚举型):<xs:enumeration value="值"/>
注:值:是基本于<xs:restriction base="Schema内置类型">Schema内置类型的约束
例:
XML文件:
  <?xml version="1.0"?>
  <medal>sliver</medal>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="medal">  /声明元素奖章
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:enumeration value="gold"/>  /声明自定义枚举型——金牌
      <xs:enumeration value="sliver"/> /银牌
      <xs:enumeration value="copper"/> /铜牌
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>

minLength(最小长度值):<xs:minLength value="值"/>
maxLength(最大长度值):<xs:maxLength value="值"/>
例:
XML文件:
  <?xml version="1.0"?>
  <name>张晓艳</name>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="name">  /声明元素姓名
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:minLength value="2"/>  /声明名字最少2个字
      <xs:maxLength value="4"/>  /声明名字最多4个字
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>

注:在字符串,无论是中文字符,还是英文字符,都被当做是一个字符来看待。

minInclusive(最小取值范围):<xs:minInclusive value="值"/>
注:值:包括边界值 n>=0
maxInclusive(最大取值范围):<xs:maxInuclusive value="值"/>
注:值:包括边界值 n<=100
例:
XML文件:
  <?xml version="1.0"?>
  <ChengJi>128</ChengJi>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="ChengJi">  /声明元素成绩
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:integer">  /声明新类型是基于整数类型的约束
      <xs:minInclusive value="0"/>  /声明成绩最少得0分
      <xs:maxInuclusive value="150"/>  /声明成绩最高得150分
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>


minExclusive(最小取值范围):<xs:minExclusive value="值"/>
注:值:不包括边界值 n>0
maxExclusive(最大取值范围): <xs:maxExclusive value="值"/>
注:值:不包括边界值 n<100
例:
XML文件:
  <?xml version="1.0"?>
  <JiGe>61</JiGe>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="JiGe">  /声明元素及格
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:integer">  /声明新类型是基于整数类型的约束
      <xs:minExclusive value="59"/>  /声明成绩最少得60分才及格
      <xs:maxExclusive value="101"/>  /声明成绩最高分为100分
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>


totalDigits(数字的总位数): <xs:totalDigits value="值"/>
fractionDigits(数字的小数总分位数):<xs:fractionDigits value="值"/>
注:这其中不包括小数点,位数仅指有效位数,即会去除前导"0"和后继"0"。
例:
  001234.56700先会被转换为1234.567再进行比对。

XML文件:
  <?xml version="1.0"?>
  <price>1123.44</price>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="price">  /声明元素价格
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:decimal">  /声明新类型是基于小数类型的约束
      <xs:totalDigits value="6"/>  /声明价格的总位数是6位
      <xs:fractionDigits value="2"/>  /声明保留2位小数
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>

pattern(模式匹配):<xs:pattern value="正则表达式"/> 
注:正则表达式在文章分类中的xml学习里有介绍。
例:
XML文件:
  <?xml version="1.0"?>
  <tel>010-12345678</tel>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="tel">  /声明元素电话号码
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:pattern value="\d{3,4}-\d{8}"/>  /声明三或四位的区号-后八位的号码
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>

list(列表类型):<xs:list itemType="simpleType"/>
注:itemType属性用于指定列表类型中元素的数据类型。
例:
XML文件:
  <?xml version="1.0"?>
  <abc>c b a</abc>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <xs:element name="abc"> /声明元素"abc"
    <xs:simpleType> /声明简单类型
     <xs:list itemType="123"/> /声明自定义列表类型,定义列表项名称为"123"
    </xs:simpleType>
   </xs:element>

   <xs:simpleType name="123"> /声明简单类型,名称为列表项名称
    <xs:restriction base="xs:string"> /声明新类型是基于字符类型的约束
     <xs:enumeration value="a"/> /声明自定义枚举型
     <xs:enumeration value="b"/>
     <xs:enumeration value="c"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:schema>
说明:
  其中包含了三个选项(a、b、c),在book元素里,它们出现的顺序可以不限。

union(联合类型):<xs:union memberTypes="simpleType1 simpleType2 ..." />
注:memberTypes属性为联合类型指定成员类型。
例:
XML文件:
  <?xml version="1.0"?>
  <abc123>c</abc123>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <xs:element name="abc123"> /声明元素"abc123"
    <xs:simpleType> /声明简单类型
     <xs:union memberType="abc 123"/> /声明自定义联合类型,定义列表项名称为"abc"和"123"
    </xs:simpleType>
   </xs:element>

    <xs:simpleType name="abc">   /声明简单类型,名称为"abc"
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:enumeration value="a"/>  /声明自定义枚举型
      <xs:enumeration value="b"/>
      <xs:enumeration value="c"/>
     </xs:restriction>
    </xs:simpleType>
   
   <xs:simpleType name="123"> /声明简单类型,名称为"123"
    <xs:restriction base="xs:integer"> /声明新类型是基于数字类型的约束
     <xs:enumeration value="1"/> /声明自定义枚举型
     <xs:enumeration value="2"/>
     <xs:enumeration value="3"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:schema>
说明:
  其中包含了六个选项(a、b、c、1、2、3),只能在XML文档中出现其中一个。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值