自定义简单类型:
通过对一个已有简单类型进行约束派生出来的。
格式:
<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文档中出现其中一个。
通过对一个已有简单类型进行约束派生出来的。
格式:
<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文档中出现其中一个。