XML学习之Xml Schema:五、复杂类型--Attribute

        一个元素如有属性或者包含子元素,那么这个元素就是复杂类型。复杂类型使用xs:complexType定义。复杂类型要么具有简单内容,要么具有复杂内容。内容是指在开始标签和结束标签之间的字符数据和子元素。简单内容是指内容只具有字符数据没有子元素,简单内容是用xs:simpleContent元素来定义(简单内容要有属性,否则等同于简单类型)。除此之外的就是复杂内容,使用xs:complexContent来定义。

      xs:attribute元素的use、default、fixed属性

     use属性指示xs:attribute元素是否需要出现,其有效值为:optional(表明xs:attribute元素是可选的,use属性的默认值)、prohibited(禁止使用属性)、required(属性是必须的)。对全局声明的属性不能使用use属性。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Book">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="isbn" use="required"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
</xs:schema>

局部元素isbn可以使用use属性

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Book">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute ref="isbn"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:attribute name="isbn"/>
</xs:schema>

全局元素isbn中不能使用use属性

           default属性指示默认值。属性默认值是有在属性本身为optional时才有意义。如果没有指定该属性的值,那么该值为默认值。如果指定了,则是指定值。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="document">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="Format" default="PDF"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
</xs:schema>

         Fixed属性指示固定值。不管该属性出现不出现,该属性的值都是PDF。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="document">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="Format" fixed="PDF"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值