ホームページ製作、システム開発、腕時計の販売はMSweb - 大阪|XHTML - 用語説明

 
 
 
 






MSweb システム開発 雑記帳

腕時計 メンズ(男性)専門販売のmens-watch.biz リーズナブルな価格帯のブランドをご用意しています
腕時計総合専門販売サイト

カシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイト my-gshock
G-SHOCK、Baby-G販売サイト


HTMLちょっと辞典

<WBR>・・・<NOBR>内で改行しても良い位置を指定する(NN独自の仕様)

<WBR>はNetscape Navigatorが独自に追加したタグで、<NOBR>〜</NOBR>で自動改行をさせないようにした箇所の中で、改行しても良い位置を指定します。

ただし、<WBR>タグは改行位置の候補を指定するだけなので、必ずその位置で改行されるわけではありません。

実際に改行するかどうかはブラウザやテーブルの横幅に応じて調整されます。

■使用例
HTMLソース
<nobr>
空の9割以上が雲に覆われた時は「曇り」、<wbr>9割に満たなければ「晴れ」です。<wbr>曇の量が1割以下の場合は「快晴」です。
</nobr>





● システム開発 XHTML

 HTMLとXHTMLの両者が混同され、区別がつき難くなっているのでこの両者の仕様の要点を示します。システム開発者はPHP、データベースに注意が行きがちですが。

 HTML非常に原始的な言語ですが今日はそれを拡張して携帯などにも利用されてきました。このままのHTMLの仕様ですと柔軟性に問題が出てきた為、XMLの概念を取り入れたXHTMLが利用されることになりました。

 HTMLで目的を達すれば、特にXHTMLで記載しなければならない、とは個人としては思っていません。コンテンツがそこまで必要としているか、でしょう。

・整形式XML
 XHTMLは、開始タグと終了タグがきちんとバランスし、要素が正しいツリーを形成する整形式であることが一番の基本です。

 タグを省略せず、大小文字を統一して記述したHTMLは、少しの修正だけで整形式XMLとすることができます。

 空要素タグを />で閉じる
 属性値を全て引用符で囲み、属性名を省略した最小化を行わない基本的には、もとのHTMLが適切に書かれていればこれだけで整形式XMLとなるはずで、XSLTなどのツールを利用できるようになります。

 これがXHTMLの第一歩です(HTML4などのDTDには適合しなくなるので、この場合は文書型宣言は書きません)。

・XML名前空間を宣言
 もっとも、整形式XMLにしただけでは、厳密にはHTMLともXHTMLとも言えない、自己流のXMLということになってしまいます。

 利用しているタグセットがXHTMLのものであることを示すためには、ルート要素(html要素)でXHTMLのXML名前空間を宣言しておきます。

(例) <html xmlns="http://www.w3.org/1999/xhtml">

 XML対応ツールやブラウザは、これによって文書で用いられているタグセットがXHTMLのものであることを認識できます。多くの場合、文書をXHTMLとして標準的に表示してくれます。

 適切な名前空間を宣言すれば、他のXML言語の語彙を組み込んでXHTML文書内で利用することも可能です。当サイトの「XHTMLを拡張し、メタデータを直接記述する」を参照してください(ただしこの場合、一般には次の厳密適合にはなりません)。

・厳密適合のXHTML

 XHTML文書をスキーマ(DTDなど)に対して検証したり、仕様書に厳密適合させる必要がある場合は、昔ながらの文書型宣言を置きます。また、一般にXML文書はXML宣言で始めることが推奨され、特に文字コードの扱いによってはこの宣言が必須になることがあります。これらを加えたXHTML1.0適合文書は、次のようなものです。

(例)

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
<title>XHTMLの書き方と留意点</title>
</head>
<body>
<p>XHTMLについて説明しましょう。</p>
</body>
</html>
上の例は、次の「妥当な(Valid)XHTML文書」の要件に従って書かれています。

 適切なDTDに従っていること
 文書はhtmlをルート要素(root element=一番の親要素)として記述されていること

 このルート要素において、xmlns属性でXHTMLのXML名前空間を指定すること

 ルート要素の前に有効な文書型宣言を行っていること

 スキーマに対して検証を行ったり厳密適合を求めたりする必要がなければ、4.の文書型宣言は特になくても構いません。

 単純に整形式にしてツールを利用するだけならば3.の名前空間も省略可能ですが、これでは広く認識されているX/HTMLを使うメリットもなくなってしまうので、これは記述しておく方が賢明です。

 
XML宣言は文字コードがUTF-8もしくはUTF-16以外の(かつサーバーからの応答ヘッダなどで文字コードを示していない)場合は先頭に記述しなければなりません。

・HTMLとの互換性について
 重要なのは、どんなタグの記法を用いれば、HTMLとの互換性を保ちつつXML(XHTML)としての機能を加えることができるのかということです。いくつかポイントを列挙します。

 
全てのタグ(要素タイプ名、属性名)は小文字で記述する

 
HTMLでは大文字と小文字は区別されませんでしたが、XMLではこれを区別するため、IMGとimgは別の要素タイプになってしまいます。

 XHTMLでは全ての要素タイプと属性は小文字で定義されたので、タグの記述にあたっても小文字を用いなければなりません(これまで書いたHTMLを書き直すのは大変…)。

 
また、属性名だけでなく、method="post"等のように、属性値がDTDで選択肢が定義されているものは、その通り記述する必要があります。これらもみな小文字で定義されているので、「タグは小文字で書く」と考えておくのがよいでしょう。

 属性の値は必ず引用符で囲む

 HTML(SGML)においては、値が数字など特定の値のみの場合は引用符を省略して width=100 のような記述が認められていましたが、XHTMLでは全ての属性値を引用符で囲んで width="100" のようにしなければなりません。

 終了タグを省略しない

 HTML(SGML)ではDTDの定義によっては終了タグを省略することができました。たとえば、リスト項目要素のLIの場合、

(誤りの例)

<ul>
<li>ある項目
</ul>
という具合に終了タグを省略することが認められ、それが一般的な書法となっていましたが、XMLではこれが認められません。必ず

(正しい例)

<ul>
<li>ある項目</li>
</ul>
のように終了タグを加えなければなりません。内容モデルを持たない空要素を除いて、全ての要素は開始タグと終了タグのペアで記述します。

 空要素のタグは />で閉じる

また、HTMLのimg要素やbr要素のように、内容モデルを持たない空要素(HTMLでは開始タグしか使わないもの)は、XMLにおいては<br/>という具合に、タグを閉じるときに /> を使わなければなりません(空要素タグと呼ばれています)。ただし、この書式ではHTMLブラウザがタグを正しく認識できない可能性があるので、/ の前にスペースを置いて、 <br /> のように記述します。

ファイル内の位置を示すにはid属性を併記する

HTMLではファイル内の特定の位置へのリンクのためにname属性を使って

(誤りの例)

<a href="#foo">アンカーをクリックすると</a>
....
<a name="foo">ここにジャンプする</a>
という記述をしていましたが、XHTMLではファイル内部の位置を示す属性は id属性 になりました。従って、ジャンプ先は <a id="foo"> となるわけですが、このid属性をサポートしないブラウザもあるため、

(正しい例)

<a href="#foo">アンカーをクリックすると</a>
....
<a name="foo" id="foo">ここにジャンプする</a>
という具合に、name属性とid属性を同じ値で併記することが推奨されています(id属性そのものは、HTML 4.0から導入されています)。なお、XHTML1.1ではname属性は廃止され、id属性のみでフラグメントを示します。

&はあらゆるところで&amp;と記述する

HTMLでも普通&は&amp;と記述することになっていますが、XHTMLの場合、その用法が徹底していて、たとえばCGIを呼び出すためのURLでも

(誤りの例)
<a href="/cgi-bin/myscript?name=kanzaki&score=100">

ではなく

(正しい例)
<a href="/cgi-bin/myscript?name=kanzaki&amp;score=100">

 と記述する必要があります(本当はHTML 2.0の時からこの点も明記されていたが、ブラウザは&のままでもきちんと処理するように求められていたこともあり、これでも機能していた。cf. [RFC1866] 8.2.1. The form-urlencoded Media Type)。

属性の省略書式は使わない

HTMLでは、属性の名前と値が同じ場合に、属性名を記述せずに

(誤りの例) <input type="radio" name="bar" checked>

としていましたが、XHTMLではこれは認められず

(正しい例) <input type="radio" name="bar" checked="checked" />

と書かなければなりません。こうすると古い(新しいものでも一部)ブラウザでは正しく働かないことがありますが、それに対する解決策は示されていないようです。

head要素内のスクリプトやスタイルシートの注意

 HTMLとは異なり、XHTMLにおいてはスタイルやスクリプトも#PCDATA(字句解析を受けるデータ)として定義されたため、< はタグの開始と見なされ、コメントした内容は無視されることになります。

 たとえばJavascriptで数値の比較をするような式を記述していると、XHTMLではエラーになり、スタイルシートを古いブラウザから隠すために

(誤りの例)

<style type="text/css">
<!--
p {color:red}
-->
</style>
 のように記述していると、その定義は無視されてしまう可能性が高いとされています。解決策としては、外部ファイルにスタイルシートやスクリプトを記述することが推奨されています。

 XHTMLファイル内にスクリプト要素を記述するときは、不等号などが問題を生じないように、その内部をCDATAセクションとして宣言しておきます。ただし、CDATAの宣言をそのまま書くとスクリプトのエラーになるので、宣言を//でスクリプトのコメントにしておきます。

(例)
<script type="text/javascript">
//<![CDATA[
function dmmy(){
//some script code
}
//]]>
</script>

 このCDATAセクションの中に「HTMLのコメント宣言」に相当するものを書けば、XMLの処理には影響を与えませんが、古いブラウザがスクリプトのコードを表示しないようにする効果はあります。

 ちなみに本サイトはXHTMLではなく、HTMLです。特に問題が無いからですが。

 製作業者ではW3Cの仕様を天からの声のように作っているところもありますが。

 私はシステム開発の処理、実行、表示のスタンスからいくと、なんでもHTMLをXHTMLに・・・までは思いませんが。

 XMLで記載する必要があるものに関してはその仕様に従います。

腕時計のご紹介
R.KIKUCHI
SEIKOFIVE


■PHP関数一覧
 配列関数(array)

natsort()
"自然順"アルゴリズムで配列をソートする


next()
内部配列ポインタを進める


pos()
current() のエイリアス


prev()
内部の配列ポインタをひとつ前に戻す


range()
ある範囲の整数を有する配列を作成する


reset()
配列の内部ポインタを先頭の要素にセットする


rsort()
配列を逆順にソートする


shuffle()
配列をシャッフルする


sizeof()
count() のエイリアス


sort()
配列をソートする


uasort()
ユーザー定義の比較関数で配列をソートし、連想インデックスを保持する


uksort()
ユーザー定義の比較関数を用いて、キーで配列をソートする


usort()
ユーザー定義の比較関数を使用して、配列を値でソートする


 Bzip2 圧縮関数

bzclose()
bzip2 ファイルを閉じる


bzcompress()
文字列をbzip2形式のデータに圧縮する


bzdecompress()
bzip2 形式のデータを解凍する


bzerrno()
bzip2 エラー番号を返す


bzerror()
bzip2 エラー番号とエラー文字列を配列で返す


bzerrstr()
bzip2 エラー文字列を返す


bzflush()
全てのバッファリングされたデータを強制的に書き込む


bzopen()
bzip2 圧縮されたファイルをオープンする


bzread()
バイナリ対応の bzip2 ファイル読み込み


bzwrite()
バイナリ対応の bzip2 ファイルへの書き込み


 カレンダー関数


cal_days_in_month
指定した年とカレンダーについて、月の日数を返す


cal_from_jd()
ユリウス積算日からサポートされるカレンダーに変換する


cal_info()
特定のカレンダーに関する情報を返す


cal_to_jd()
サポートされるカレンダーからユリウス積算日に変換する


easter_date()
指定した年における復活祭の真夜中のUnix時を得る


easter_days()
指定した年において、3 月 21 日から復活祭までの日数を得る


FrenchToJD()
フランス革命暦をユリウス積算日に変換する


GregorianToJD()
グレゴリウス日をユリウス積算日に変換する


JDDayOfWeek()
曜日を返す


JDMonthName()
月の名前を返す


JDToFrench()
ユリウス積算日をフランス革命暦(共和暦)に変換する


JDToGregorian()
ユリウス積算日をグレゴリウス日に変換する


jdtojewish()
ユリウス積算日をユダヤ暦に変換する


JDToJulian()
ユリウス積算日をユリウス暦に変換する


jdtounix()
ユリウス歴を Unix タイムスタンプに変換する


JewishToJD()
ユダヤ暦の日付けをユリウス積算日に変換する


JulianToJD()
ユリウス暦をユリウス積算日に変換する


unixtojd()
Unix タイムスタンプをユリウス歴に変換する


 クラス/オブジェクト関数

call_user_method_array()
パラメータの配列を指定してユーザメソッドをコールする[古い関数]


call_user_method()
指定したオブジェクトのユーザーメソッドをコールする[古い関数]


class_exists()
クラスが定義済か確認する


get_class_methods()
クラスメソッドの名前を取得する


get_class_vars()
クラスのデフォルトプロパティを取得する


get_class()
オブジェクトのクラス名を返す


get_declared_classes()
定義済のクラスの名前を配列として返す


get_declared_interfaces()
宣言されている全てのインターフェースの配列を返す


get_object_vars()
オブジェクトのプロパティを取得する


get_parent_class()
オブジェクトの親クラスの名前を取得する


interface_exists()
インターフェースが宣言されているかどうかを確認する


is_a()
オブジェクトがこのクラスのものであるか、このクラスをその親クラスのひとつとしているかどうかを調べる


is_subclass_of()
あるオブジェクトが指定したクラスのサブクラスに属するかどうかを調べる


method_exists()
クラスメソッドが存在するかどうかを確認する


property_exists()
オブジェクトもしくはクラスにプロパティが存在するかどうかを調べる




     
 
〒547-0034 大阪府大阪市平野区背戸口3-3-15-403号 TEL/FAX 06-6701-2679 携帯電話 090-9615-8045