参照
メディア:文字列エンコーディングによる非JSONデータ
JSON スキーマは、JSON 文字列内に格納された非JSON データを記述し、オプションで検証するためのキーワードのセットを持っています。多くのメディアタイプに対してバリデータを作成するのは困難であるため、JSON スキーマバリデータは、これらのキーワードに基づいてJSON文字列の内容を検証する必要はありません。しかし、これらのキーワードは、検証済みのJSONを消費するアプリケーションにとって依然として役立ちます。
contentMediaType
contentMediaType
キーワードは、RFC 2046で説明されているように、文字列の内容のMIMEタイプを指定します。IANAによって正式に登録されたMIMEタイプの一覧がありますが、サポートされるタイプのセットはアプリケーションとオペレーティングシステムによって異なります。Mozilla Developer Networkは、ウェブにとって重要なMIMEタイプの短いリストも提供しています。
contentEncoding
contentEncoding
キーワードは、RFC 2054、6.1節およびRFC 4648で指定されているように、使用されるエンコーディングを指定します。
許容される値はquoted-printable
、base16
、base32
、およびbase64
です。指定されていない場合、エンコーディングは包含するJSONドキュメントと同じです。
これらのエンコーディングの低レベルの詳細には立ち入らずに、現代的な使用方法で役立つのは実際には2つのオプションだけです。
- コンテンツが包含するJSONドキュメントと同じエンコーディング(実際上はほぼ常にUTF-8)でエンコードされている場合は、
contentEncoding
を指定せずに、コンテンツをそのまま文字列に含めます。これには、text/html
やapplication/xml
などのテキストベースのコンテンツタイプが含まれます。 - コンテンツがバイナリデータの場合は、
contentEncoding
をbase64
に設定し、Base64を使用してコンテンツをエンコードします。これには、image/png
などの多くのイメージタイプや、audio/mpeg
などのオーディオタイプが含まれます。
contentSchema
ドキュメントは近日公開
例
次のスキーマは、文字列が周囲のドキュメントと同じエンコーディングを使用してエンコードされたHTMLドキュメントを含んでいることを示しています。
次のスキーマは、Base64 でエンコードされた PNG 画像を含む文字列を示しています。