对于一个简单类型,我有一个简单的模式定义:
<xs:simpleType name="std_types-bit-type">
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>在其他地方有:
<xs:element name="comp" type="std_types-bit-type"/>然后我们就可以创建这样的XML元素:
<comp>1</comp>我希望允许文档创建者添加任意属性(对我而言,但对他们有意义),例如:
<comp index="2">1</comp>因为我不能预先知道所有可能的属性,所以xs:anyAttribute就是针对这种情况的。事实上,为complexTypes定义它是很简单的。问题是,我还没有找到模式元素的神奇组合,它允许我将xs:anyAttribute与simpleType/simpleContent限制关联起来。
我无法想象这是不可能的,但到目前为止,它正在击败我。
发布于 2014-10-07 14:46:26
当类型是通过扩展派生时,可以添加属性;可以添加facet,类型是通过限制派生的。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="std_types-bit-base-type">
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="std_types-bit-type">
<xs:simpleContent>
<xs:extension base="std_types-bit-base-type">
<xs:anyAttribute/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>https://stackoverflow.com/questions/26236139
复制相似问题