2012-04-05 35 views
0

私の英語は申し訳ありません。XSD +正規表現。ルールが正しくありませんか?

私は私のXSDファイル内のXML型を書いた:

<xs:simpleType name="refId"> 
    <xs:restriction base="xs:ID"> 
     <xs:maxLength value="30"/> 
     <xs:minLength value="5"/> 
     <xs:pattern value="^ref-"/> 
    </xs:restriction> 
    </xs:simpleType> 

すべての値は、 "リファ" テキストで始まる必要があります。しかし、私は文字列のための不正確な結果を得る: "ref-title"。それはなぜ起こるのですか?

よろしく

+0

正規表現は何ですか?それは正規表現に関連していますか? –

+0

>正規表現は何ですか?それは正規表現に関連していますか? はい、正規表現です。私は理解していない、なぜそれが正しく動作しません。 –

答えて

0

パターン文字列全体ではなく、単なる文字列内の一致を見つけるに適用され、あなたはおそらく

<xs:pattern value="ref-.*" /> 

が動作することを見つけることができます。

0

サーカフレックス^は、XSD正規表現の中で "文字列の開始"を表すものではなく、それ自身を表します。したがって、あなたのパターンはIDの値が "^"で始まらなければならないと言っていますが、もちろん無効なIDになります。 XSDパターンは暗黙的にアンカーされているので、value = "ref - 。*"は必要なものです。

+0

ありがとうございました! –

関連する問題