一个XML Schema及XML文档(联系人)

XMl Schema

使用了先定义类型和约束,后结合起来的方法

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/ContactSchema" 
xmlns:tns="http://www.example.org/ContactSchema" 
elementFormDefault="qualified">

<!-- 人名 -->
<xs:simpleType name="personName">
 	<xs:restriction base="xs:string">
  		<xs:whiteSpace value="preserve"></xs:whiteSpace>
  		<xs:maxLength value="20"></xs:maxLength>
	 </xs:restriction>
</xs:simpleType>

<!-- 手机号 -->
<xs:simpleType name="phoneNumberType">
 	<xs:restriction base="xs:nonNegativeInteger">
  		<xs:pattern value="1[358]{1}[0-9]{9}"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- QQ号 -->
<xs:simpleType name="qqNumberType">
 	<xs:restriction base="xs:nonNegativeInteger">
  		<xs:pattern value="[1-9][0-9]{4,9}"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- 微信号 -->
<xs:simpleType name="weiXinType">
 	<xs:restriction base="xs:token">
  		<xs:pattern value="[a-z0-9_]*"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- 地址 -->
<xs:simpleType name="addressType">
 	<xs:restriction base="xs:normalizedString">
  		<xs:pattern value="[a-zA-Z0-9 ]*"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- QQ邮箱 -->
<xs:simpleType name="QQmailbox">
 	<xs:restriction base="xs:token">
  		<xs:pattern value="[1-9][0-9]{4,10}@qq.com"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- QQ邮箱 -->
<xs:simpleType name="NetEasemaibox">
 	<xs:restriction base="xs:token">
  		<xs:pattern value="[1-9a-zA-Z]{6,16}@163.com"></xs:pattern>
 	</xs:restriction>
</xs:simpleType>

<!-- 邮箱 -->
<xs:complexType name="eMailtype">
 	<xs:sequence>
  		<xs:element name="QQmailbox" type="tns:QQmailbox" minOccurs="0"></xs:element> 
  		<xs:element name="NetEasemailbox" type="tns:NetEasemaibox" minOccurs="0"></xs:element>
 	</xs:sequence>
</xs:complexType>

<!-- 联系人 -->
<xs:element name="Linkman">
 	<xs:complexType>
  		<xs:sequence>
   			<xs:element name="name" type="tns:personName"></xs:element>
   			<xs:element name="phoneNumber" type="tns:phoneNumberType" maxOccurs="unbounded"></xs:element>
   			<xs:element name="QQ" type="tns:qqNumberType"></xs:element>
   			<xs:element name="weiXin" type="tns:weiXinType"></xs:element>
   			<xs:element name="address" type="tns:addressType"></xs:element>
  			<xs:element name="EMail" type="tns:eMailtype"></xs:element>
  		</xs:sequence>
    		<!-- ID标识 -->
  		<xs:attribute name="Id" type="xs:positiveInteger"></xs:attribute>
	</xs:complexType>
</xs:element>

<!-- 联系单 -->
<xs:element name="contacts">
 	<xs:complexType>
  		<xs:sequence>
   		<xs:element ref="tns:Linkman" maxOccurs="unbounded"></xs:element>
  		</xs:sequence>
 	</xs:complexType>
</xs:element>

</xs:schema>

XML

遵循上面XML Schema的约束

<?xml version="1.0" encoding="UTF-8"?>
<contacts xmlns="http://www.example.org/ContactSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.example.org/ContactSchema ContactSchema.xsd">
 
 	<Linkman Id="1">
  		<name>Bob</name>
 	 	<phoneNumber>18571622568</phoneNumber>
  		<phoneNumber>15396564858</phoneNumber>
  		<QQ>888888</QQ>
  		<weiXin>sfafwerg1_dsd</weiXin>
  		<EMail>
   			<QQmailbox>[email protected]</QQmailbox>
  		</EMail>
  		<address>China Beijing</address>
 	</Linkman>
 
 	<Linkman Id="2">
	  	<name>Jane</name>
	  	<phoneNumber>15646516586</phoneNumber>
  		<QQ>99999</QQ>
  		<weiXin>fgegsgg165s4s_sd</weiXin>
  		<EMail>
   			<NetEasemailbox>[email protected]</NetEasemailbox>
  		</EMail>
  		<address>China Hong Kong</address>
 	</Linkman> 
 
</contacts>
发布了82 篇原创文章 · 获赞 1 · 访问量 1465

猜你喜欢

转载自blog.csdn.net/qq_41891805/article/details/104924566
今日推荐