schema校验文件编写,常用元素使用

  作为开发者,应该接触过很多的xml文件,如果你有注意你会发现这些配置文件并不是随意编写的,都是有要求的、有规则。这些要求和规则都是可以用schema文件去约束。

下面2段代码作为自己笔记保存着。


  看下面的代码,前面的文件是普通的xml文件,后面的文件是格式校验的schema文件。

<?xml version="1.0" encoding="UTF-8"?> 
<business xmlns="http://www.w3schools.com"  
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
	xsi:schemaLocation="http://www.w3schools.com tpl-schema.xsd">  
	
	<!-- 业务Z0007的导出模板配置 -->
   <busi id="Z0007" cols="3" show_type="view">  
		<param key="CUST_NAME" text="客户名称" />
		<param key="SEX" text="性别" dict='SEX_TYPE' />
		<param key="KEY1|KEY2|KEY3" text="地址(省市区)" dict='dict1|dict2|dict3' />
   </busi> 
   
   <busi id="z008" cols="4" show_type="table">
		<param key="CUST_NAME" text="客户名称" />
   </busi>
</business>

注意下面这个行代码

xsi:schemaLocation="http://www.w3schools.com tpl-schema.xsd"

tpl-schema.xsd为格式校验的文件,并且与xml文件放在同一个目录下。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
	targetNamespace="http://www.w3schools.com"  
	xmlns="http://www.w3schools.com"  
	elementFormDefault="qualified"> 
	<!-- elementFormDefault="qualified" 指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。 -->

	<xsd:element name="business">
        <xsd:complexType>
		    <xsd:sequence>
		        <!-- maxOccurs="unbounded" 设定次元素可以出现任意次 -->
		        <xsd:element name="busi" maxOccurs="unbounded">
		        	<xsd:complexType>
		        		<xsd:sequence>
		        			<xsd:element name="param" maxOccurs="unbounded">
			        			<xsd:complexType>
			        				<!-- use="required" 限定属性必填 -->
			        				<xsd:attribute name="key" type="xsd:string" use="required"/>
			        				<xsd:attribute name="text" type="xsd:string" use="required"/>
			        				<xsd:attribute name="dict" type="xsd:string" use="optional"/>
			        			</xsd:complexType>
		        			</xsd:element>
		        		</xsd:sequence>
		        		
		        		<!-- 定义busi拥有的属性,以及属性的类型 -->
					    <xsd:attribute name="id" type="xsd:string" use="required" />
					    <!-- 限定这个属性的属性值只能是table或者view -->
					    <xsd:attribute name="show_type" use="required">
					    	<xsd:simpleType>
					    		<xsd:restriction base="xsd:string">
					    			<xsd:enumeration value="table" />
					    			<xsd:enumeration value="view" />
					    		</xsd:restriction>
					    	</xsd:simpleType>
					    </xsd:attribute>
					    <xsd:attribute name="cols" type="xsd:integer" use="required" />
		        	</xsd:complexType>
		        </xsd:element>
		    </xsd:sequence>
		</xsd:complexType>
    </xsd:element>
</xsd:schema>

关于文件内容解释清看注释信息。


参考网址:

http://www.w3chtml.com/schema/xml-schema-root.html

http://www.cnblogs.com/caoxch/archive/2006/11/17/563856.html

https://www.ibm.com/developerworks/cn/xml/x-cert/part6/


转载于:https://my.oschina.net/ubuntuvim/blog/598353

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值