書籍情報 : XML コンプリートガイド
 

XML コンプリートガイド (ISBN4-7980-0015-9)
(株) 秀和システム \2,100- (税別) 2000/7/25 発売
プラットフォームに依存しないデータ既述言語として、あるいは次世代 Web ページ既述言語である XHTML 1.0 のベース言語として注目を浴びている XML について、基本的な概念から応用事例までを、最新情報を元にしてまとめた一冊。これがあれば、XML の基本に関する理解はバッチリ。

また、次世代 Web ページ記述言語として注目されている XHTML 1.0 についても、章をひとつ割いてまとまった記述を行った上で、HTML 4.0 からの移行について詳述したので、きっとお役に立ちます。

単色刷、338 ページ。


刊行後の追加情報

名前空間などの記述に関する訂正 (2001/2/5 追加、2001/2/14 修正)
名前空間などに関する記述に関して、読者の方からご指摘をいただきました。お詫びとともに訂正します。

  1. xml:namespace 属性はドラフト段階の仕様のため、現在の仕様では利用できません。文書全体に名前空間プレフィックスを持たないデフォルトの名前空間を規定する場合は、ルート要素で <root_element xmlns="名前空間 URI "> 〜</root_element > という記述をします (いうまでもなく、他の子要素はこの中にネストされる)
  2. 処理命令などの名前文字は、コロン (:) を含むことができません

これに合わせて、ダウンロード用のサンプル ファイルも修正しました。具体的には、上記の内容に該当する ns1.xml ファイルを削除しました。
また、名前空間の指定を部分的に解除するサンプルである ns5.xml についても、引用符の間にスペースを含んで xmlns:=" " となっていたのを、xmlns:="" と修正しました。

改訂・XSLT の名前空間について (2001/1/22 追加)
XSLT を使用する際の名前空間 URI には以下の 2 種類があり、上が最終的に決定したものです。

  • http://www.w3.org/1999/XSL/Transform
  • http://www.w3.org/TR/WD-xsl

最新版の MSXML 3.0 は両方ともサポートしていますが、一部のタグと属性については、使用する名前空間 URI によって、使用できたりできなかったりすることがあります。たとえば、<xsl:for-each> タグの order-by 属性は、下の、古い名前空間を使わないとエラーになります。逆に、上の新しい名前空間を使わないと利用できないタグもあります。

両者を混用したいという場合、それぞれの名前空間に異なるプレフィックスを割り当てれば解決できるかもしれませんが、なるべく最新仕様に揃えて開発した方が、後で困らないでしょう。

MSXML.DLL のバージョン情報 (2001/1/19 追加)
マイクロソフトの XML プロセッサ・MSXML.DLL には多様なバージョンがありますが、何をセットアップすると、どのバージョンの MSXML がインストールされるのかの情報が、こちら に掲載されています。どうぞ御参照ください。また、ここでは最新版の MSXML3.DLL もダウンロードできます。

XSLT に関する訂正 (2000/12/18 追加)
XSLT のタグの紹介のうち、<xsl:element> と <xsl:attribute> の説明で「選択する」となっているのは、それぞれ「要素ノードを新規に追加する (<xsl:element>)」「属性ノードを新規に追加する (<xsl:attribute>)」の間違いです。

パラメータ実体参照の使い方について (2000/8/29 追加)
DTD 中におけるパラメータ実体参照の使い方ですが、以下のように訂正します。

  1. パラメータ実体参照は、DTD 中でのみ使用できる。
  2. パラメータ実体参照は、宣言の一部、あるいは宣言文全体に対して使用できる。
  3. ただし、宣言の一部だけをパラメータ実体参照で置き換える場合は、その DTD は外部 DTD でなければならない
  4. 宣言文全体をパラメータ実体で置き換える場合は、内部実体でもパラメータ実体参照が利用できる。

最後の 2 つのケースについて説明します。たとえば、

<!ENTITY % para_ent "(name, age)" >
<!ELEMENT xdoc %para_ent;>

というように、宣言の一部だけをパラメータ実体にする使い方は外部 DTD でないとできませんが、

<!ENTITY % para_ent "<!ELEMENT xdoc (name, age)>" >
%para_ent;

というように、宣言をまるごとパラメータ実体にする使い方は内部 DTD でも OK というわけです。
このとき、ENTITY 宣言中で実体文字列として使用する宣言文両端の < と > は、そのまま書きます。エスケープして「&lt;」「&gt;」と書くと、エラーになります。

なお、2000/8/29 にサンプル ファイルを更新し、宣言文全体をパラメータ実体参照の対象にしたファイル (pc1d2.xml) を追加しました。

XHTML 1.0 文書の文字コード宣言について (2000/7/24 追加, 2000/8/29 修正)
XHTML 1.0 文書は「HTML 文書でもあり、XML 文書でもある」という、いわば両棲類のようなものです。そのため、文字コードの宣言は、冒頭の XML 宣言

<?xml version="1.0" encoding="xxx" ?>

と、HTML の

<meta http-equiv="content-type"
content="text/html; charset="xxx">

タグによる宣言の両方を、文書中に記入する方が間違いがありません。もちろん、文字コードを示す "xxx" の内容は、両者で揃える必要があります。
XML 文書として考えると UTF-8 を使用するのがベストでしょうが、XML プロセッサが正しく処理してくれることが分かっていれば、シフト JIS でもかまいません。

なお、2000/8/29 にサンプル ファイルを更新し、XHTML 文書のテンプレートのファイル 3 つに上記の記述を追加し、文字コードをシフト JIS に変更しました。

XHTML 1.0 文書の拡張子について (2000/7/24 追加)
XHTML 1.0 文書を作成した際、ファイルの拡張子を ".htm" にしておくと、Web ブラウザで開いた場合は通常の HTML 4.0 文書と同様に扱えます。このとき、XML 関係のタグは HTML 文書としてみると「知らないタグ」なのでブラウザは無視し、単に HTML 4.0 互換の文書として処理されます。
しかも、それでいながら内容はウェルフォームド XML 文書なので、同じ文書を XML プロセッサでも処理できます。

ところが、もし拡張子を ".xml" にしてしまうと、Web ブラウザが自動的に XML 文書として処理してしまい、HTML 4.0 文書として表示できなくなってしまうので、XHTML 文書の拡張子には ".htm"、あるいは ".html" を使う方が良いでしょう。

Office 2000 の VBA から DOM インターフェイスを使う方法 (2000/7/20 追加)
Visual Basic だけでなく、Office 2000 の VBA からも、DOM インターフェイスの呼び出しが可能です。
それには、まず Visual Basic Editor を起動し、[ツール]-[参照設定]を選択します。ここで、[Microsoft XML, version 2.0] のチェックをオンにします。

これで、MSXML.DLL が提供する DOM インターフェイスを VBA で使用可能になります。オブジェクト ブラウザを起動すると、このとおり。

Contents
HOME
Works
Diary
PC Diary
Defence News
Opinion
Ski
About


| 記事一覧に戻る |