This page is also available in English.
スキーマ織りバリデーション (SWV) は Contact Form 7 が採用する次世代のウェブフォームバリデーション機構です。
それはどんな問題を解決するの ?
ワールドワイドウェブ (WWW) の初期の頃、ウェブフォームを作る役割とフォーム送信を受け取る役割の両方が同一のエンティティ (ウェブサーバー) によって担われるのが当たり前でした。サーバー自身が作ったフォームなので、フォームの入力をどのように扱うべきかサーバーは当然ながらよくわかっていました。
クライアントサイドでのフォームバリデーションを HTML5 が導入するまで、特に留意すべき問題はありませんでした。クライアントサイドバリデーションにより、ユーザーが入力すると即座にバリデーションが実行されるようになります。クライアントサイドバリデーションは優れたユーザー体験をもたらしますが、サーバーサイドのバリデーションを置き換えるものではありません。今後もサーバーサイドでのバリデーションは必要ですが、さてこれにより二つの異なるエンティティがフォームバリデーションに関与するようになりました。ウェブサーバーとクライアント (ブラウザー) です。
ヘッドレス CMS やその他の分離アーキテクチャの普及がこの状況をさらに複雑なものにします。そのようなアーキテクチャにおいては複数のエンティティがウェブフォームに関与することがもはや珍しいものではなくなります。そして、フォームバリデーションの標準化された方法が存在しないため、それらのエンティティにはフォーム入力の正しいバリデーション方法がわからないのです。スキーマ織りバリデーション (SWV) はまさにこの問題を解決するために開発されました。
SWV はユーザー入力の期待される形式を定義する JSON フォーマットのスキーマ言語を提供します。SWV を利用することで、モダンなウェブアーキテクチャの恩恵を犠牲にすることなく、ウェブフォームを安全に実装することが可能になります。
Example
This is an example SWV schema created for the default contact form.
{
"version": "Contact Form 7 SWV Schema 2022-03",
"locale": "en_US",
"rules": [
{
"rule": "required",
"field": "your-name",
"error": "Please fill out this field."
},
{
"rule": "required",
"field": "your-email",
"error": "Please fill out this field."
},
{
"rule": "email",
"field": "your-email",
"error": "Please enter an email address."
},
{
"rule": "required",
"field": "your-subject",
"error": "Please fill out this field."
}
]
}
Supported rule types
Schema’s schema
See Meta schema.