XMLサイトマップファイルからスキーマを推論する
URLエントリ、更新頻度、優先度、サイトマップインデックス構造を持つXMLサイトマップファイルからJSON Schemaを生成します。
Real-World XML
詳細な説明
XMLサイトマップからJSON Schemaへ
XMLサイトマップは検索エンジンがWebサイトのページを発見しインデックスするために使用されます。明確に定義された構造に従いますが、オプションフィールドにはいくつかのバリエーションがあります。
サイトマップの例
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2024-01-15</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2024-01-10</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://example.com/blog</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
</urlset>
生成されるスキーマ
{
"type": "object",
"properties": {
"urlset": {
"type": "object",
"properties": {
"url": {
"type": "array",
"items": {
"type": "object",
"properties": {
"loc": { "type": "string" },
"lastmod": { "type": "string" },
"changefreq": { "type": "string" },
"priority": { "type": "number" }
}
}
}
}
}
}
}
スキーマの洞察
- URL配列: 複数の
<url>要素が正しく配列になる - 数値としての優先度:
1.0、0.8、0.9のような値がnumberとして検出される - オプションフィールド: 一部のエントリに
lastmodがない場合(上記の3番目のURL)、required検出はそれを含めない - 文字列としての日付:
lastmod値はJSON Schemaにネイティブの日付型がないためstringのまま
サイトマップインデックス
同じアプローチはサイトマップインデックスファイルにも機能します:
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-posts.xml</loc>
<lastmod>2024-01-15</lastmod>
</sitemap>
</sitemapindex>
スキーマの拡張
本番使用では以下を追加します:
locにformat: "uri"changefreqにenum: ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]priorityにminimum: 0.0, maximum: 1.0lastmodにformat: "date"
ユースケース
サイトマップジェネレーター、バリデーター、サイトマップの構造を検証する必要があるSEOツールを構築する場合。スキーマにより、検索エンジンへの提出前に生成されたサイトマップが期待される形式に準拠していることをバリデーションできます。