一个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>888888@qq.com</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>gs465sd@163.com</NetEasemailbox>
  		</EMail>
  		<address>China Hong Kong</address>
 	</Linkman> 
 
</contacts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值