レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

ネームスペース未指定表示例(XMLサイトマップ+XSLT)【Googleエラー】

XML文書を使いサイトマップやサイトマップインデックスを
ブラウザ表示(HTML)する際にはXSLT(スタイルシート)を割り当てて表示します。
XML側にネームスペースを指定せずスタイルシートを割り当てることで、
最も簡単なXSLT(スタイルシート)割当例についてご紹介します。

本記事は以下の1コンテンツです。

この方法は最も初歩的な構成でスタイルを割り当てますが、
XML文書のネームスペース指定を省いている為、
Googleのサイトマップ登録ではエラーが表示されます(食べてはくれます)
あくまでも1例、サンプルとしてお考えください。

問題 説明
エラー 誤ったネームスペース サイトマップまたはサイトマップ インデックス ファイルのネームスペース宣言が不適切です。

Googleへの登録が目的であれば、以下の例が一番シンプルかと思います。

ネームスペース未指定表示例(XMLサイトマップ+XSLT)

Googleがエラーを吐くと言っても、
「XMLに対してスタイルが割り当てられない」
「値が表示されない」といったスタイル指定の失敗を解消するには、
まずこういうシンプルな例から作成し、修正していく方が無難です。

サイトマップインデックスの例

まずは、サイトマップインデックスの例です。

通常、3行目の「<sitemapindex>」の部分は、
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">」と書きます。
これはサイトマッププロトコルの仕様です。
(参考)sitemaps.org – プロトコル 

この「xmlns=""」部分が名前空間(ネームスペース)の指定です。
ここではそれを省略しています。

Google先生がエラーを吐いているのは、
ここの部分が指定されていない事に起因しています。

これに以下の様なスタイルシートを割り当てます。

以下URLでXMLを表示するとXMLにスタイルシートが適用された
サイトマップインデックス表示が確認できます。

HTMLタグの途中に<xsl:~>のタグで、
表示するXML文書の何を表示するかを指定しています。

3行目でXMLの開始点である「/」を指定します。

途中はHTMLとして表示したい固定出力部分を記述し、

17行目から各サイトマップのレコードを1行ずつループ処理を開始します。
この時「select="sitemapindex/sitemap"」と要素タグの階層を指定します。

ループ内部では、各要素タグである「select="loc"」「select="lastmod"」で、
ループ処理の子要素を指定して、値を取得しています。

サイトマップの例

次は、サイトマップの例です。

通常、3行目の「<urlset>」の部分は、
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">」と書きます。
これはサイトマッププロトコルの仕様です。
(参考)sitemaps.org – プロトコル 

この「xmlns=""」部分が名前空間(ネームスペース)の指定です。
ここではそれを省略しています。

これに以下の様なスタイルシートを割り当てます。

以下URLでXMLを表示するとXMLにスタイルシートが適用された
サイトマップ表示が確認できます。

HTMLタグの途中に<xsl:~>のタグで、
表示するXML文書の何を表示するかを指定しています。

3行目でXMLの開始点である「/」を指定します。

途中はHTMLとして表示したい固定出力部分を記述し、

19行目から各サイトマップのレコードを1行ずつループ処理を開始します。
この時「select="urlset/url"」と要素タグの階層を指定します。

ループ内部では、各要素タグである
select="loc"」「select="lastmod"」「select="changefreq"」「select="priority“」で、
ループ処理の子要素を指定して、値を取得しています。

 

さらっと読んでいる限りは、
特に躓きそうなポイントもないように感じるかもしれませんが、
意外とXSLTのスタイル指定がうまくいかずに悩むことが多いものです。

まずは一番シンプルな形のスタイル指定の例をご紹介しました。

 


プロモーション

Google or AdMax Promotion (srvpos)

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。