2016-04-13 15 views
1

コンマで区切られた2つの正の整数の値を必要とする制限を作成しようとしています。私は他の記事を見ていましたが、私がしようとしているようなものは他の問題より簡単です。これは私がこれまで持っているものです。XSDでコンマ区切りの値を定義する

<xs:element name="cell" maxOccurs="unbounded"> 
     <xs:simpleType> 
       <xs:restriction base="xs:positiveInteger"> 
         <xs:pattern value="[1-1000],[1-1000]"/> 
       </xs:restriction> 
     </xs:simpleType> 
</xs:element> 

私は、結果の値は、この(例)のようになりたい:<cell>4,15</cell>

もう1つの要素が<dimensions>ですが、コンマではなく、文字 'x'で区切られた整数が必要です。したがって、この要素の値の例は<dimensions>20x20</dimensions>です。

まず、正しいベースデータ型を使用していますか?私はまた、運がないxs:stringを使ってたくさんの組み合わせを試しました。次に、どのようにパターンを表現するのですか?

+0

また、注意する必要がありますmaxOccursはxs:要素内では許可されていません。この要素を複合型の親要素のメンバーとして宣言するときに使用します。たとえば、 ''が ''のメンバーとして定義されている場合、gridの定義にあるセルのmaxOccursを設定します。 – bitfiddler

+1

regexをブラシすることができます。文字グループ「[1-1000]」は、(a)範囲「1」から「1」(つまり:「1」)、および(b)「0」、「0」 'または' 0 ' - つまり、' 0 | 1'と等価です。 –

+0

bitfiddler、はい、には親要素があります。それはパターンの質問には関係していないので、ここには含めなかっただけです。 C.M. Sperberg-McQueen、ええ、唯一の有効な値が「1」から始まっていたとき、私はそれを理解しました。 – Misenus

答えて

1

このXSDはcell内カンマで区切られた、負でない整数のペアを許可します:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="cell"> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
     <xs:pattern value="\d+,\d+"/> 
     </xs:restriction> 
    </xs:simpleType> 
    </xs:element> 
</xs:schema> 

同様のxs:patternはもちろんdimensionsのために使用することができます。

 <xs:pattern value="\d+x\d+"/> 
関連する問題