将限制和属性添加到complexType

时间:2011-04-04 08:24:08

标签: xml xsd structure

使用type="xs:int"的简单元素我想添加限制和许多属性。但是,我看到它完成的唯一方法是采用两步法:

  1. 声明一个命名(全局)类型并将所有限制放在命名类型中

  2. 请参阅base的{​​{1}}中的命名类型,并将属性添加到扩展节点。

  3. 如果我可以避免声明全局命名类型,因为动态生成模式并且在本地指定所有限制会更加清晰,这可能会很好。例如。像这样:

    <xs:extension>

    或者在字符串类型的情况下:

    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:int">
          <xs:minInclusive>2</xs:minInclusive>
          <xs:attribute name="myAttribute" type="xs:boolean" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
    

    不幸的是,似乎不允许这样的“组合”声明。

2 个答案:

答案 0 :(得分:2)

这是不可能的,请查看:Having both an attribute and a restriction on an element in xml schema回答你。

答案 1 :(得分:1)

不幸的是,这是不可能的。你现在的方式(使用单独的类型)是要走的路。这些请求被提出before(虽然可能不是在SO中)。