2012-04-17 39 views
2

我正在將舊數據集轉換爲schema/xml。它包含一些具有默認值的數組。我接近xs:list的解決方案;是否可以指定匿名類型的列表長度?

<xs:element name="pressure" 
      default="0.22 0.33 0.44 0.55 0.66 0.77 0.88 0.88 0.88 0.88"> 
    <xs:simpleType> 
    <xs:list> 
     <xs:simpleType> 
     <xs:restriction base="xs:float"> 
      <xs:minInclusive value="0.0" /> 
      <xs:maxInclusive value="2.0" /> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:list> 
    </xs:simpleType> 
</xs:element> 

如何限制列表的長度爲10?也就是說,我將

<xs:length value="10">? 
+0

實際上解決了這個問題,它解構了我對簡單類型和重新嵌套匿名類型所進行的操作。爲什麼使用匿名類型?這是對我的要求。 – CAB 2012-04-17 16:12:25

+1

您能否請您發佈解決方案並將其標記爲答案?這對誰最終會有所幫助 – MiMo 2012-04-19 10:32:27

回答

6

基本類型是對xs:float的xs:restriction。

<xs:simpleType name="ptype"> 
    <xs:restriction base="xs:float"> 
    <xs:minInclusive value="0.0" /> 
    <xs:maxInclusive value="2.0" /> 
    </xs:restriction> 
</xs:simpleType> 

這是包裝在xs:列表中。

<xs:simpleType name="ltype"> 
    <xs:list itemType="ptype"/> 
</xs:simpleType> 

接下來,將長度限制放在列表上。

<xs:simpleType name="rtype"> 
    <xs:restriction base="ltype"> 
    <xs:length value="10"/> 
    </xs:restriction> 
</xs:simpleType> 

最後,元素,默認值

<xs:element name="pressure" 
    default="0.22 0.33 0.44 0.55 0.66 0.77 0.88 0.88 0.88 0.88"> 
    <xs:simpleType> 
    <xs:restriction base="rtype"/> 
    </xs:simpleType> 
</xs:element> 

,以獲得完全匿名的元素,在頂部開始,鳥巢每個建設成爲下一個更低的結構,它引用它。最後,以此結束;

<xs:element name="pressure" 
     default="0.22 0.33 0.44 0.55 0.66 0.77 0.88 0.88 0.88 0.88"> 
    <xs:simpleType> 
    <xs:restriction> 
     <xs:simpleType> 
     <xs:list> 
      <xs:simpleType> 
      <xs:restriction base="xs:float"> 
       <xs:minInclusive value="0.0" /> 
       <xs:maxInclusive value="2.0" /> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:list> 
     </xs:simpleType> 
     <xs:length value="10"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 
相關問題