2011-04-04 44 views
2

對於包含type="xs:int"的簡單元素,我想添加一個限制和一些屬性。不過,我已經看到它做的唯一方法是在兩步走的方法:將限制和屬性添加到複雜類型

  1. 聲明名爲(全球)型,並把所有的限制,將在指定類型

  2. 參考命名鍵入<xs:extension>base,然後將這些屬性添加到擴展節點。

這可能是很好,如果我能避免聲明爲架構是動態生成一個全局命名類型,這將是一個更加簡潔本地指定的所有限制。例如。像這樣:

<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> 

或字符串型的情況下:

<xs:complexType> 
    <xs:simpleContent> 
    <xs:extension base="xs:string"> 
     <xs:enumeration Value="FOO" /> 
     <xs:enumeration Value="BAR" /> 
     <xs:enumeration Value="BAZ" /> 
     <xs:attribute name="myAttribute" type="xs:boolean" /> 
    </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

不幸的是,它似乎沒有,像這樣的「組合拳」的聲明是允許的。

+0

不得不承認我仍然有點困惑的基礎上回答被接受的SO :( – 2011-04-04 10:58:40

回答

1

不幸的是,這是不可能的。你現在做的方式(使用單獨的類型)是要走的路。這些請求被提出before(儘管可能不在SO)。