2012-04-17 4 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

+1

解決策を投稿して回答としてマークしてください。誰でもこの質問に終わるのに役立ちます – MiMo

答えて

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> 
関連する問題