スキップしてメイン コンテンツに移動

些細な日常

BloggerのテンプレートのXMLからブログのHTMLに出て来る不要な名前空間を消す

HTMLはバージョン5からそれまでのXML宣言や名前空間の記述が完全に不要になっている。しかもマークアップにはXML、またはXHTML(HTMLに適合するXML)とHTMLの両方が使える仕様なので、以前よりも便利になったと思う。

Bloggerのテンプレートはブログの実際のソースコードを確認する(専用の閲覧アプリか、ChromeブラウザなどではURLの最初に「view-source:」を付けてアクセスすると表示できる)とHTML5の設定になっている。

HTML5のサイトの三つの条件

  • <!DOCTYPE html>
  • <html></html>
  • <meta charset="utf-8">/<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

ところがテンプレート自体のソースコードは違う。独自タグが使われれるし、一旦、コンピューターで処理されてからブログの実際のソースコードに成形されるようになっている。

これ自体は自動化されたサイト作成で珍しくないけど、Bloggerで特徴的なのは主体の構文がXML、またはXHTMLしか受け付けないんだ。

HTMLとは微妙に違っていて例えば全てのタグに開始と終了の二つが必要――空の要素の終了タグは開始タグの最後に半角スラッシュ(/)を入れて代用できる/HTMLならば半角スラッシュは要らなくて終了タグを省略して開始タグだけで通用する――だったりする。

因みにBloggerでは独自タグの要素の値を示すために一重引用符('')しか使えないのも注意しなくてはならない。独自タグに囲まれた内容には二重引用符("")を使ったマークアップを入れられる場合もあるけれども外側の独自タグと同様の位置付けでは受け付けられないんだ。HTML編集の保存やテーマのアップロードでエラーになってしまうのも特徴的で、他ではないかも知れない。

Bloggerのテンプレート自体はXML、またはXHTMLのマークアップが必要で、そのためか、ソースコードの最初にXML宣言(ファイルの種別)や名前空間(語句の定義付け)が記載されているんだ。

Bloggerの公式テーマ:Contempoのテンプレートの開始部分

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:css='false' b:defaultwidgetversion='2' b:layoutsVersion='3' b:responsive='true' b:templateUrl='indie.xml' b:templateVersion='1.3.0' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
  中略
</html>

※帯文字の一つ目がxml宣言、二つ目の四つが名前空間だ。

一見してDOCTYPE宣言がHTML5用(文書型の参照/バージョン情報を持たず、HTMLの一言によるブラウザ任せの標準)だから何となく矛盾している。ブログのマークアップの設定がHTML5ならばXML宣言も名前空間も基本的に要らないだろう。しかし考えるとBloggerはテンプレート自体のソースコードをコンピューターで処理するのがXML、またはXHTMLだから付いている――サーバーのファイルもXMLだ――と理解するしかない。HTMLのマークアップが主体ではHTML編集やテーマのアップロードでエラーになってしまうのも明らかになっているのは助かる。

<!DOCTYPE html>
<html dir='ltr'>
  中略
</html>

実際のブログのソースコードはHTML5の設定で、テンプレート自体の不要なXML宣言や名前空間のマークアップは削除されて出て来ない。つまりHTML5のサイトとしてBloggerブログはインターネットで動作しているわけだ。繰り返すとHTML5はXML、またはXHTMLとも十分に扱われるからテンプレート自体の他の部分のマークアップがBloggerならではのHTMLではない状態でも支障を来しはしない。

だから別に構わないと感じて何もせずに使っていたら問題を見付けたんだ。というのはHTML5におよそ無意味な名前空間がブログの実際のソースコードに記載される場合がある。調べるとHTML編集やテーマのアップロードでテンプレート自体のマークアップを書き換えると追加されるようなんだ。

Bloggerの公式テーマ:Contempoのマークアップの名前空間

<!DOCTYPE html>
<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
  中略
</html>

元々はHTML5に相応しく削除されるはずのXML宣言と名前空間の後者だけが出て来るのはBloggerのコンピューターのバグかも知れない。必要ならば前者も付けなくては不味いはずだし――挙げるとXHTML1との互換性を図るときはXML宣言と名前空間のxmlns="http://www.w3.org/1999/xhtml"を記述したりする――片方だけブログの実際のソースコードに出て来る状態はサイト作成の常識からしてあり得ない。況してやHTML5にとって両方とも基本的に不要なので、何とかならないかと考える。

Bloggerの四つの名前空間の役割

デフォルト/XHTMLの定義
xmlns='http://www.w3.org/1999/xhtml'
独自タグのbの定義
xmlns:b='http://www.google.com/2005/gml/b'
独自タグのdataの定義
xmlns:data='http://www.google.com/2005/gml/data'
独自タグのexprの定義
xmlns:expr='http://www.google.com/2005/gml/expr'

テンプレート自体の書式はXMLだけど、その中で、XHTMLや三つの独自タグが定義付けられて(同一の要素名でも区別されて)使える。

因みに取り上げられたURLを確認すると「w3.org」は良いけど、他の「google.com」の三つはエラーページでしかない。名前空間はXMLファイルの書式を諸々の仕方――デフォルトは何もない状態、その他は接頭辞(Bloggerではbとdataとexprの三つ)がそれぞれのURLで別物として割り振られる――で正確に捉えるための形式だから内容は強いて求められないせいだろう。名前空間のURLは厳密にいうとURIとしてウェブでの純然な識別子だからサイトアドレスを示すとはかぎらない。URLを使わなくてはならないわけでもないけど、複数の接頭辞の条件を世界で僅かでも重複させないために向いている。

HTML5のサイトには名前空間は基本的に不要だし、ブログの実際のソースコードもBloggerのテンプレート自体から削除されて成形されるようになっているので、最初から消しておいても構わないのではないかとやってみると大丈夫だと気付いた。

テンプレート自体に名前空間か、またはXML宣言も含めて二つともなくてもブログの実際のソースコードは以前と変わらずに記載されるし、正常に動作する。

どうしてかは不明だけれどもBloggerのサーバーの当該のXMLファイルからは完全に削除されないみたいだ。

HTML編集ではXML宣言や名前空間を削除して保存すると戻る際には「保存されていない内容は失われます」と表示されてしまってブラウザのバックなどから閉じて再び開くと削除したXML宣言や名前空間が復活している。

バックアップ/復元からテンプレートをダウンロードしてXML宣言や名前空間を削除してアップロードすると次のダウンロードでは削除したXML宣言や名前空間が復活している。

どちらにしてもXML宣言や名前空間を削除して保存できるけど、テンプレート自体を後から確認し直すと両方とも記載されたままになっているので、サーバーでは自動的に追加されていると推測されるんだ。

ブログの実際のソースコードに不要な名前空間が付いてしまったらテンプレート自体から名前空間を削除して保存/アップロードすれば消せるようになる。動作上、何も問題はなさそうだし、当初からHTML編集やテーマのアップロードで一度もカスタマイズせずに使うのと同様にHTML5に相応しいマークアップを無駄なく得られるから修正するのに役立つ。

コメント

最近の投稿

日付: 

目眩の薬から黒い虫が歩いているなどの幻覚を起こす場合がある

イメージ

人気の投稿

宜保愛子は本物の霊能力者だと考えられる三つの真実

イメージ

昭和から平成にかけてテレビや雑誌で何度も大きく取り上げられて物凄く活躍した霊能力者の 宜保愛子 がいた。何気なく昔のテレビ番組を観ていたら霊視は嘘だったと思えない内容で、本当にびっくりした。昔、そんなに引き付けられて観ていたわけではないし、改めて霊能力が本当かどうかを確かめようと...

平田監督の白井球審の誤審への抗議はパワハラへの強力な対処法に他ならない

イメージ

日本プロ野球で 佐々木朗希が完全試合を実現して 次の試合も八回まで無安打と無失点の状況で、次の試合はどうかと注目した4月24日の対オリックスバファローズ戦は初回の先頭打者の初球にヒットを打たれて五回に二失点を喫して連続の無安打と無失点が両方とも途絶えてしまった。 しかし予想外...

伊良部秀輝が自殺した原因はミッドライフクライシスによる鬱と飲酒だと考える

イメージ

プロ野球選手の 伊良部秀輝 が自殺したと知ってショックを受けたことがあった。もう十年以上前になる。2011年の夏、享年四十二と早過ぎたのに加えて大好きな投手の一人だったので、とても残念に感じた。 目次 伊良部秀輝が大好きだった記憶 負けても自分のスタイルを貫き通した 野球への...

後藤浩輝と抑鬱傾向による突発的な自殺

イメージ

中央競馬でトップ騎手の一人だった 後藤浩輝 が亡くなっていると気付いた。二千十五年だからまだ二年前の死だった。競馬ファンならば誰でも知っているくらい有名なはずだけれどもテレビのバラエティー番組でも見かけていたと思う。個人的には ダービースタリオン (ゲーム)に熱中していて後藤浩輝...