2017-05-05 26 views
1

私は現在、jsonリクエストスキーマを構築中です。スキーマの私の制約の1つは、firstLetterの値に1文字、小文字または大文字のみを含めることです。私は以下を試しました(スキーマのスニペット):Jsonスキーマの正規表現

"firstLetter": { 
     "id": "/properties/firstLetter", 
     "maxLength": 1, 
     "minLength": 1, 
     "pattern": "[a-z][A-Z]", 
     "type": "string" 
    } 

しかし、それは動作していないようです。私は正規表現が1文字だけでなければならないという規則を持たせたい。

+1

てみ ' "^ [a-zA-Z]の$"'か(それが中で使用されている場合にコードを縮小化するようmaxLengthminLengthは、この正規表現の検証と冗長になることに注意してくださいXSDスキーマ) '' [a-zA-Z] '' –

+1

または' [a-zA-Z] {1} 'を使用して、1文字にマッチさせます。 –

+0

@lualover、私の答えはあなたのために働いたのですか?はいの場合は、受け入れを検討してください。それ以外の場合は結果をお知らせください。 –

答えて

2

Acc。 〜6.8. pattern section of JSON Schema Validation: A Vocabulary for Structural Validation of JSON

このキーワードの値は文字列でなければなりません。この文字列は、ECMA 262正規表現の方言に従って、正当な正規表現でなければならない(SHOULD)。

正規表現がインスタンスと正常に一致する場合、文字列インスタンスは有効と見なされます。リコール:正規表現は暗黙的にアンカーされません。

あなたはそれが唯一のASCII文字からなる、正確に1文字の文字列にマッチします

"pattern": "^[a-zA-Z]$" 

使用することができます。

あなたは

"firstLetter": { 
    "id": "/properties/firstLetter", 
    "pattern": "^[a-zA-Z]$", 
    "type": "string" 
} 
+0

たとえば、誰かが '' firstLetter ''のようなリクエストを送信した場合、スキーマは検証エラーを投げます: – lualover2017

+0

[this JSON Schema 1.0 documentation](https://spacetelescope.github.io)に従ってパターンを更新しました。 /understanding-json-schema/reference/regular_expressions.html)と[JSON Schema](http://json-schema.org/example2.html)を参照してください。 –

+0

今、私はそれが完了したと思います。申し訳ありませんが、最初はJSONスキーマをXMLスキーマと間違えました。 –