简单编写xsd的用法

xiaoxiao2021-02-28  27

例:note.XSD <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  //显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs: targetNamespace="http://www.w3school.com.cn"  //显示被此 schema 定义的元素来自命名空间: "http://www.w3school.com.cn"。 xmlns="http://www.w3school.com.cn"   //指出默认的命名空间是 "http://www.w3school.com.cn"。 elementFormDefault="qualified">    //指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。 <xs:element name="note">    <xs:complexType>   复合型 <xs:sequence>   指示器   <xs:element name="to" type="xs:string"/>   <xs:element name="from" type="xs:string"/>   <xs:element name="heading" type="xs:string"/>   <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 例:note.XML <?xml version="1.0"?> <note xmlns="http://www.w3school.com.cn"   //规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   // XML Schema 实例命名空间 xsi:schemaLocation="http://www.w3school.com.cn note.xsd">  //schemaLocation 属性,此属性有两个值:第一个值是需要使用的命名空间,第二个值是供命名空间使用的 XML schema 的位置。 <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 一、定义元素 name为元素名,type为元素类型 <color>red</color>    xml元素 <xs:element name="color" type="xs:string" default="red"/>  default为默认值 <xs:element name="color" type="xs:string" fixed="red"/>    fixed为固定值 二、定义属性 <lastname lang="EN">Smith</lastname>   xml元素属性 <xs:attribute name="lang" type="xs:string"/>   name定义属性名,type定义属性类型 <xs:attribute name="lang" type="xs:string" default="EN"/>  default为默认属性值 <xs:attribute name="lang" type="xs:string" fixed="EN"/>    fixed为固定属性值 <xs:attribute name="lang" type="xs:string" use="required"/>  use设置属性为必选属性 三、对值的限定 1.对一个值的限定 下面的例子定义了带有一个限定且名为 "age" 的元素。age 的值不能低于 0 或者高于 120: <age>110</age>    xml元素 <xs:element name="age">   定义了名为age的元素 <xs:simpleType> <xs:restriction base="xs:integer">   定义了类型为integer <xs:minInclusive value="0"/>    定义了最小值为0 <xs:maxInclusive value="120"/>   定义了最大值为120 </xs:restriction> </xs:simpleType> </xs:element>  2.对一组固定值的限定 下面的例子定义了带有一个限定的名为 "car" 的元素。可接受的值只有:Audi, Golf, BMW <car>BMW</car>  xml元素 注释:在这种情况下,类型 "carType" 可被其他元素使用,因为它不是 "car" 元素的组成部分。 <xs:element name="car">  定义了一个名为car的元素                               <xs:element name="car" type="carType"/>   定义type为carType <xs:simpleType> <xs:simpleType name="carType">           定义name与上面type做联系     <xs:restriction base="xs:string">   定义了类型为String <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/>   定义了car元素的值可以为 Audi <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> 或 Golf <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> 或 BMW <xs:enumeration value="BMW"/>     </xs:restriction> </xs:restriction> </xs:simpleType> </xs:simpleType> </xs:element> 3.对一系列值的限定   注:外层语法不变,只修改内层语法(<xs:restriction base="xs:string">这里就是内层</xs:restriction>) a.下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值只有小写字母 a - z 其中的一个: <xs:pattern value="[a-z]"/>   b.下一个例子定义了带有一个限定的名为 "initials" 的元素。可接受的值是大写字母 A - Z 其中的三个: <xs:pattern value="[A-Z][A-Z][A-Z]"/> c.下一个例子也定义了带有一个限定的名为 "initials" 的元素。可接受的值是大写或小写字母 a - z 其中的三个: <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>      d.下面的例子定义了带有一个限定的名为 "gender" 的元素。可接受的值是 male 或者 female: <xs:pattern value="male|female"/> 4.对空白字符限定   注:外层语法不变,只修改内层语法(<xs:restriction base="xs:string">这里就是内层</xs:restriction>) a.这个 whiteSpace 限定被设置为 "preserve",XML 处理器不会移除任何空白字符: <xs:whiteSpace value="preserve"/> b.这个 whiteSpace 限定被设置为 "replace",XML 处理器将移除所有空白字符(换行、回车、空格以及制表符) <xs:whiteSpace value="replace"/> 5.长度限定 <xs:length value="8"/>  最多8字符
转载请注明原文地址: https://www.6miu.com/read-2632689.html

最新回复(0)