XSLT(スタイルシート)にHTMLネームスペース指定/未指定の表示例【初期状態】
XSLT(スタイルシート)はXML文書をHTML表示する際の指示書のようなもので、
サイトマップやサイトマップインデックスの作成においては必須ではありません。
ここではXSLT(スタイルシート)の<html>タグ部分の
ネームスペース指定有無の違いについてご紹介します。サイトマップ作成において必須ではないXSLT(スタイルシート)ですが、
自身で作成したサイトマップやサイトマップインデックス(XML文書)を
確認したり、URLからリンクを開いたりする場合には、
やはりスタイルが割り当てられている方が、遥かに利便性が向上します。
尚、本記事は以下の1コンテンツです。
概要
XSLT(スタイルシート)にHTMLネームスペース指定/未指定の表示例
XML文書に対してXSLT(スタイルシート)の指定を行う前に、
まずXSLT(スタイルシート)がどのようなものかという点からご紹介します。
以下がまず「XSLT(スタイルシート)にHTMLネームスペース未指定の例」になります。
XSLT(スタイルシート)にHTMLネームスペース未指定の例
XSLT(スタイルシート)にHTMLネームスペース未指定の例とは、
スタイルシートの中の「<html>」開始タグ部分の違いだけを示しています。
<html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head><title>sitemap_index_xml</title> </head> <body> <h1>HTMLのネームスペース指定がない場合</h1> <table border="1"> <thead> <tr> <th>サイトマップURL</th> <th>最終更新</th> </tr> </thead> <tbody> <xsl:for-each select="sitemapindex/sitemap"> <tr> <td><a target="_blank"><xsl:attribute name="href"><xsl:value-of select="loc" /></xsl:attribute><xsl:value-of select="loc" /></a></td> <td><xsl:value-of select="lastmod" /></td> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
このスタイルシートを直に開いてみると、
ブラウザではどのように表示されるでしょうか。
以下で確認できます。
どうでしょう?
XSLT(スタイルシート)のタグがそのまま表示され、メッセージが表示されています。
ドキュメントツリーをそのまま表示しています。と。
This XML file does not appear to have any style information associated with it. The document tree is shown below.
(G訳)このXMLファイルには、スタイル情報は関連付けられていません。 ドキュメントツリーを以下に示します。
XSLT(スタイルシート)にHTMLネームスペース指定された例
では次にXSLT(スタイルシート)にHTMLネームスペースを指定した場合の例です。
スタイルシートの中の「<html>」開始タグ部分の違いだけですが、
以下の属性がタグの中に書かれています。
<html xmlns="http://www.w3.org/1999/xhtml">
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>sitemap_index_xml</title> </head> <body> <h1>HTMLのネームスペース指定がある場合</h1> <table border="1"> <thead> <tr> <th>サイトマップURL</th> <th>最終更新</th> </tr> </thead> <tbody> <xsl:for-each select="sitemapindex/sitemap"> <tr> <td><a target="_blank"><xsl:attribute name="href"><xsl:value-of select="loc" /></xsl:attribute><xsl:value-of select="loc" /></a></td> <td><xsl:value-of select="lastmod" /></td> </tr> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
このスタイルシートを直に開いてみると、
ブラウザではどのように表示されるでしょうか。
以下で確認できます。
どうでしょうか、
今度はタイトルと中身が空のテーブルが表示されましたか?
XML文書に対してXSLT(スタイルシート)を割当てて表示する際に、
どのようなHTMLに整形し表示するのかを指定するXSLT(スタイルシート)です。
スタイルシートを直に表示してみて、
XMLに割り当てる前の段階ではちゃんと表示されている事が確認できなければ、
XML側から指定したところで到底表示されません。
必ずしも「<html xmlns="http://www.w3.org/1999/xhtml">
」しなければ、
表示されないという訳でもありませんが、
無用な困惑を防ぐ為にも、
HTMLに対してもネームスペース指定をしておいた方が、
「XMLにスタイルが反映されない!」という時により安心かと思います。
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: