首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >simpleType +限制+ anyAttribute的XSD定义

simpleType +限制+ anyAttribute的XSD定义
EN

Stack Overflow用户
提问于 2014-10-07 12:34:33
回答 1查看 406关注 0票数 1

对于一个简单类型,我有一个简单的模式定义:

代码语言:javascript
复制
<xs:simpleType name="std_types-bit-type">
  <xs:restriction base="xs:int">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="1"/>
   </xs:restriction>
</xs:simpleType>

在其他地方有:

代码语言:javascript
复制
<xs:element name="comp" type="std_types-bit-type"/>

然后我们就可以创建这样的XML元素:

代码语言:javascript
复制
<comp>1</comp>

我希望允许文档创建者添加任意属性(对我而言,但对他们有意义),例如:

代码语言:javascript
复制
<comp index="2">1</comp>

因为我不能预先知道所有可能的属性,所以xs:anyAttribute就是针对这种情况的。事实上,为complexTypes定义它是很简单的。问题是,我还没有找到模式元素的神奇组合,它允许我将xs:anyAttribute与simpleType/simpleContent限制关联起来。

我无法想象这是不可能的,但到目前为止,它正在击败我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-07 14:46:26

当类型是通过扩展派生时,可以添加属性;可以添加facet,类型是通过限制派生的。

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26236139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档