xsd中标签作用

该文章详细介绍了XSD文件中的命名空间使用,包括default和qualified的区别,以及如何通过import引入其他XSD文件中的元素。文中还提到了complexType的mixed属性,允许混合内容,并讨论了元素的使用,允许文档包含未声明的其他元素。
摘要由CSDN通过智能技术生成

一个xsd文件格式

<xs:schema elementFormDefault="qualified" 
xmlns="cbp:camt.029:std:urn:swift:saa:xsd:saa.2.0" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:ct="cbp:std:urn:iso:std:iso:20022:tech:xsd:camt.029.001.09" 
xmlns:hd="cbp:camt.029:std:urn:iso:std:iso:20022:tech:xsd:head.001.001.02" 
targetNamespace="cbp:camt.029:std:urn:swift:saa:xsd:saa.2.0" version="2.0.11">

    <xs:import namespace="cbp:std:urn:iso:std:iso:20022:tech:xsd:camt.029.001.09"         
    schemaLocation="ResolutionOfInvestigation_CBPR.xsd"/>
    <xs:import namespace="cbp:camt.029:std:urn:iso:std:iso:20022:tech:xsd:head.001.001.02"                 
    schemaLocation="bah_CBPRPlus_ResolutionOfInvestigation.xsd"/>

	<xs:complexType name="BodyMsg">
		<xs:sequence>
		  <xs:element name="AppHdr" type="hd:BusinessApplicationHeaderV02"/>
		  <xs:element name="Document" type="ct:Document"/>
		</xs:sequence>
	</xs:complexType>

</xs:schema>

 xs : 命名空间

schema:根节点名

elementFormDefault:值可设置为qualified或unqualified

xmlns:XML Namespaces的缩写,引入一个约束,值是一个xsd文件的namespace

targetNamespace:指定schema文件的namespace的值

version:版本号

xmlns

xmlns="cbp:camt.029:std:urn:swift:saa:xsd:saa.2.0"  表示当前xsd文件的默认命名空间。

xmlns:xs="http://www.w3.org/2001/XMLSchema" 规定了所有以 xs: 标记的元素,必须是http://www.w3.org/2001/XMLSchema中定义的元素。

同理,xmlns:ct="cbp:std:urn:iso:std:iso:20022:tech:xsd:camt.029.001.09" 表示 ct:标记的元素必须是这个命名空间下的定义的元素。hd同理。

不同的是,xs使用url来找到相应的xsd文件,而ct和hd是用<import>元素来找到本地的xsd文件,schemaLocation属性就是xsd文件的物理地址,这里查找同目录。

所以<xs:element name="Document" type="ct:Document"/>就是引入ResolutionOfInvestigation_CBPR.xsd文件中的Document元素。

elementFormDefault

在xml中,所有引用xsd的全局的元素都必须加上命名空间的前缀,也就是 xs:

对于局部元素而言:

qualified 时必须添加命名空间的前缀。

unqualified 时不必添加前缀。

attributeFormDefault

qualified 表示来自目标命名空间下的属性必须要用命名空间前缀修饰

unqualified 不需要

import和include

<include id=”ID” schemaLocation=”filename”/>

<import id=”ID” namespace=”namespace” schemaLocation=”filename”/>
 

都是引入外部的一个明确的模式,不同的是import能引入不同命名空间的xsd文件,可以自己指定namespace,而include不行。

complexType的一些属性

<xs:complexType name="SwAny" mixed="true">
	
</xs:complexType>

mixed="true"

表示混合内容,即与子元素混合的字符数据,比如可能出现如下的数据结构

<user>

        xxx<name>李四</name>

</user>

ANY元素

<any> 元素利用模式未指定的元素扩展 XML 文档。<any/> 标记允许复杂类型为其设置一个全局元素。<any> 元素生成可扩展文档并且允许文档包含主 XML 模式中未声明的其他元素。

processContents="skip":XML 处理器不尝试验证来自指定命名空间的所有元素

<xs:complexType name="SwAny" mixed="true">
		<xs:sequence>
			<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
</xs:complexType>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值