# TOMLバリデーター

TOMLファイル（Cargo.toml、pyproject.toml、Hugo、Netlifyの設定など）を検証し、ビルド時にエラーが発生するのを防ぎます。バリデーターは入力をTOML仕様に照らして解析し、最初のエラーについて、行、列、パーサーによる説明を報告します。重複キー、テーブルの再定義、無効な日付などが含まれます。有効なファイルではテーブル数とキー数、トップレベルのキーが表示されるため、構造をひと目で確認できます。

## よくある質問

### TOMLバリデーターは何をチェックしますか？

キー、文字列、数値、ブール値、日付と時刻、配列、インラインテーブル、テーブル、テーブルの配列を、TOML仕様の定義どおりに解析します。値の欠落、引用符で囲まれていない文字列、不正なエスケープなどの逸脱はエラーとして報告されます。有効なファイルには構造の概要が表示されます。

### エラーにはどのような情報が含まれますか？

各エラーには、解析が停止した行と列、およびパーサーによる詳細が表示されます。たとえば、日付が無効である場合や、定義済みのテーブルまたは値を再定義しようとした場合などです。行番号と列番号は1から始まります。後続のエラーは最初のエラーに起因することが多いため、最初のエラーのみ表示されます。

### キーやテーブルが再定義されたと報告されるのはなぜですか？

TOMLでは、同じテーブル内で同じキーを二度使用できず、[server]のようなテーブルヘッダーも一度しか記述できません。portがすでに設定された[server]テーブルの後にserver.portのようなドット区切りキーを定義することも、再定義とみなされます。修正するには、項目を一箇所にまとめてください。

### テーブルとキーはどのように数えますか？

「テーブル数」は、インラインテーブルやテーブルの配列の各項目を含め、ルートより下にあるすべてのテーブルを数えます。「キー数」は、テーブルまたはテーブルの配列以外の値を持つキーをすべて数えます。そのため、文字列のリストは1つのキーとして数えられます。「トップレベルのキー」には、ルートにある名前が最大50件まで表示されます。

### 日付と時刻もチェックされますか？

はい。オフセット付き日時、ローカル日時、ローカル日付、ローカル時刻をすべて検証します。月が13、時刻が25など、あり得ない値も対象です。たとえば05/27/1979のような別形式の日付はTOMLの日付ではないため、文字列として引用符で囲む必要があります。

### どのような文字列とエスケープが使えますか？

二重引用符で囲む基本文字列では、\n、\t、\"、\uXXXXなどのエスケープを使えます。一重引用符で囲むリテラル文字列では、すべての文字が記述どおりに扱われます。どちらにも三重引用符を使った複数行形式があります。未知のエスケープや閉じられていない文字列は、位置とともに報告されます。

### 非常に大きな整数も受け付けられますか？

はい。TOML仕様で定められた64ビットの上限までの整数（9223372036854775807など）は受け付けられます。その範囲を超える整数、先頭のゼロ、数字の間にないアンダースコアはエラーになります。

### バイトオーダーマークやWindowsの改行コードは問題になりますか？

いいえ。先頭のUTF-8バイトオーダーマークは無視され、LFとCRLFのどちらの改行コードも受け付けられます。エスケープされていない文字列内の制御文字はエラーとして報告されます。

### CargoやPoetryのように、キーの意味もチェックしますか？

いいえ。バリデーターがチェックするのはTOMLの構文と構造のみです。ファイルが有効なTOMLであっても、CargoやPythonのビルドバックエンドが認識しないキーを含むことがあります。ツール固有の設定を確認する前に、このツールで構文上の問題を除外してください。

### 入力のサイズ上限はどれくらいですか？また、変換できますか？

入力は最大5 MiB、入れ子になった配列とインラインテーブルは最大64階層まで対応しています。有効なTOMLをJSONやYAMLなどの形式に変換するには、Data Format Converterをお使いください。

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
