<?xml version="1.0" encoding="utf-8"?> <xs:schema id="XMLSchemaLettle" targetNamespace="http://www.pukuimin.com/XMLSchemaLettle.xsd" elementFormDefault="qualified" xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd" xmlns:mstns="http://www.pukuimin.com/XMLSchemaLettle.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="heading" type="xs:string" minOccurs="0" maxOccurs="1" default="headstring"> </xs:element> <xs:element name="body" type="xs:string" minOccurs="0" maxOccurs="1" default="content"/> <xs:element name="aletter" minOccurs="0" maxOccurs="1" default="a"> <!--只能输入一个字符,且是大小写字母中的一个--> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="age" minOccurs="0" maxOccurs="1"> <!--只能指定一个范围内的值--> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="gender" minOccurs="0" maxOccurs="1" default="male"> <!--正则表达示限制输入规则,这样能验证,但不自动提示--> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> <!--移除所有空白字符(换行、回车、空格以及制表符)--> <xs:pattern value="male|female"/> <xs:minLength value="4"/> <!--最小字符数--> <xs:maxLength value="6"/> <!--最大字符数--> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="password" minOccurs="0" maxOccurs="1" default="12345678"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> <!--固定长度--> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="from" type="xs:string" minOccurs="0" maxOccurs="1" default="pukuimin"/> <xs:element name="to" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="1"> <!--一个元素下的子元素--> <xs:element name="full_name" minOccurs="1" maxOccurs="1"> <!--只能指定一个固定的值,vs里按Ctrl+J 就能显示可以指定的值--> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="pu"/> <xs:enumeration value="shu"/> <xs:enumeration value="liu"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="child_name" type="xs:string" minOccurs="1" maxOccurs="1"/> </xs:sequence> <xs:anyAttribute /> <!--允许指定自定义属性--> </xs:complexType> </xs:element> <xs:element name="to2"> <xs:complexType> <xs:attributeGroup ref="persongroup"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="persongroup"> <!--一个元素中的很多属性--> <xs:attribute name="firstname" default="pu"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="pu"/> <xs:enumeration value="shu"/> <xs:enumeration value="liu"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="lastname" type="xs:string" default="km"/> <xs:attribute name="birthday" type="xs:date" default="2012-08-27"/> </xs:attributeGroup> </xs:schema>
在vs2010中:
生成的示例xml文件内容:
<?xml version="1.0" encoding="utf-8"?> <note xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd"> <heading>headstring</heading> <body>content</body> <aletter>a</aletter> <age>1</age> <gender>male</gender> <password>12345678</password> <from>pukuimin</from> <to> <!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>pu</full_name> <child_name>child_name1</child_name> </to> <to> <!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>shu</full_name> <child_name>child_name2</child_name> </to> <to> <!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>liu</full_name> <child_name>child_name3</child_name> </to> <to2 firstname="pu" lastname="km" birthday="2012-08-27" /> </note>
如果不符合约束要求,文档就会 显示警告。