2004年05月09日(日)更新 |
■ CSVファイルをXMLファイルに変換
たけち: これまでは、【kajin.xml】ファイルをExcelで読み込んで【kajin.csv】に変換してみたね。 さらら: えぇ。できたkajin.csvは次のようなものだったわね。 |
CSVファイル【kajin.csv】 |
---|
id,name,age,address |
たけち: そうだったね。で、今回は、その逆にExcelを使って、CSVからXMLへ変換する方法を勉強しようね。 さらら: は〜い。ということは、【kajin.csv】から【kajin.xml】へ変換するということね。 たけち: そうだね。そこでまず基本的な考え方を見ておこう。まず、CSVも含めて、表の形式をとるデータでは、どういうフィールドがどういう順番で並んでいるのか、といった情報が基本になっているよね。 さらら: えぇ。 たけち: XMLの場合は、フィールドにあたるのが要素と属性だね。要素の順番という情報だけではなくて、ある情報を属性にするとか、要素や属性のツリー上の位置はどうするのか、といったスキーマ情報が必要になるよね。 さらら: それはそうよね。属性にしたいものが要素になってしまったら困るわけだし。そうね、XMLの場合は、CSVよりも複雑なスキーマが要るのね。 |
|
■変換時のXMLスキーマ
たけち: ということは、CSVからXMLへ変換する際には、変換したいXMLのスキーマ情報が必要になってくるよね。 さらら: えぇ。。。でも、具体的にはどうしたらいいの? たけち: XMLのスキーマ情報が必要なときには、何があればいい? さらら: XMLのスキーマ情報が必要なときには。。。あっ、XML Schema!! (^ ^; たけち: そうだね。前回書いた【kajin.xml】に対応するXML Schemaファイル【kajin.xsd】をここでも用意しておこうね。 |
|
XMLスキーマサンプル【kajin.xsd】 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
■【kajin.csv】をExcelで開く
たけち: XML Schemaファイルの用意ができたところで、【kajin.csv】を開けてみようね。 さらら: そういえば【kajin.csv】って、テキストエディタで読み書きできるのに、アイコンの形がExcel風なのね たけち: そうだね。WindowsでExcel 2003がインストールされている状態では、特に「フォルダオプション」の「ファイルタイプ」をいじらなければ、CSVのアイコンはこんな形になるんだ。そしてこれをダブルクリックするとExcelが立ち上がって、このデータが読み込まれるんだよ。 さらら: じゃあ、そうしてみるわね。これをダブルクリックと…あ、ちゃんと立ち上がって表示されたわ。 |
■【kajin.xsd】を読み込む
たけち: ここまでできたら、次はXML Schemaを読み込むことにしよう。まず「データ」メニューの「XML」→「XMLソース」を選んでね。 さらら: はい。あっ、右側に「XMLソース」というコーナーが出てきたわ。 |
たけち: その右下の[XMLの対応付け]ボタンを押して。 さらら: はい。[XMLの対応付け]押してっと。。。。何かダイアログが出てきたわね。 |
たけち: そのダイアログの下にある[追加]ボタンを押して。 さらら: はい。[追加]ボタンを押してっと・・・・・普通のファイルダイアログが出てきたわ。 |
たけち: そこで、【kajin.xsd 】のあるフォルダまで行って、【kajin.xsd】を選んでから「開く」のボタンを押してね。 さらら: はい。[開く]を押したら…「指定したXMLスキーマには複数のルートノード※注-1が含まれています」と出てきたわ。 |
たけち: そうだね。【kajin.xsd】の書き方だと、meiboでもpersonでもルート要素になってよい書き方だったからね。ここでのルート要素はmeibo要素だから、meiboを選んで、[OK]ボタンを押そうね。 さらら: はい。 |
たけち: これで「追加」ができたから、後はこの「XMLの対応付け」というダイアログの「OK」というボタンを押そう。すると「miebo_対応付け」という名前のグラフィカルなスキーマツリーが表示されたよね。 さらら: あ、本当だわ。 |
■csvデータとXMLスキーマを対応させる
たけち: じゃあ、次の操作をしてみよう。このツリーのpersonアイコンの上をクリックして、指を離さずにそのまま押し続ける。 さらら: 押したまま? たけち: そう押したまま。そしてそのままズリズリと左へマウスを動かしてね。 さらら: 押したまま、ズリズリ!? きゃっ、アイコンの影みたいなものが、マウスカーソルになってついてくるわ〜。いつまでどこまでズリズリすればいいの!? たけち: ここでは、この表の一番左上であるidと書かれているセルまでズリズリと動かして・・・・・その上まで来たら、マウスボタンから指を放す。 さらら: ズリズリと動かして・・・・・指を放して…、あら1行目の文字の感じが変わって、表自体も強調されたわ。こういうふうにズリズリしていけばいいのね。 たけち: まあ「ズリズリ」というのは、あまり良い言葉じゃないからDrag and Dropという言い方が正しいんだけどね(^ ^; さらら: あ、そうなの(^ ^; |
■XMLファイルとして保存する
たけち: さて、これで対応付けが終わったから、今度は「ファイル」メニューから「名前を付けて保存」を選ぼうね。 さらら: は〜い。 たけち: ここでファイルダイアログの一番下に「ファイルの種類」という欄が出てくるので、▼の印をクリックして、「XMLデータ (*.xml)」を選ぶんだ。 さらら: あら、「XMLスプレッドシート (*.xml)」というのもあるわ。これもXMLなの? たけち: そうだよ。XMLとして保存する際に、「XMLデータ (*.xml)」と「XMLスプレッドシート (*.xml)」の2種類があるんだけれど、ここでは「XMLデータ (*.xml)」を使うんだよ。 さらら: じゃあ、「XMLスプレッドシート」って何なの? たけち: う〜ん・・・そうだね、「XMLスプレッドシート」については、あとで解説することにして、ここではXMLファイルだけ作っておこうね。まず、「XMLデータ (*.xml)」を選んで、ファイルの名前を【kajin2.xml】として、「保存」ボタンを押そうね。 さらら: はい。あら「ファイルをXMLデータとして保存すると、書式、画像、およびオブジェクトなどのワークシート形式が失われます…」って、出てきたわ。これでいいの? |
|
たけち: うん、これでいいんだよ。エクセルの書式などをここで保存しようとはしておらず、あくまでkajin.xmlのようなXMLを保存したいだけだからね。だから「継続」のボタンを押してね。 さらら: 「継続」のボタンを押して… これで保存できたのね。 たけち: そうだね。それから今回は説明しないけれど、次回のために「XMLスプレッドシート」での保存もしておこう。やっぱり「ファイル」メニューから「名前を付けて保存」を選んで… そして今度はファイルダイアログの一番下の「ファイルの種類」という欄で「XMLスプレッドシート (*.xml)」を選んで、ファイルの名前はkajin2_XMLSS.xmlとしておこうか、それで保存しておこうね。 さらら: そうして、保存っと…、あら、今度は「ファイルをXMLデータとして保存すると…」なんてダイアログは出てこなかったわ。 たけち: そうだね。そのことを次回まで覚えておいてね(^ ^; さらら: えっ(^ ^; たけち: さて、今作ったkajin2_XMLSS.xmlのことは次回に回すとして、先に保存したkajin2.xmlの方を見てみようか。Excelはいったん「ファイル」メニューから「終了」を選んで終わろうか。 さらら: あら〜、kajin2.xmlとkajin2_XMLSS.xmlで、アイコンのデザインが違うわ!? どちらもXMLファイルなのに? |
|
たけち: だからぁ、kajin_XMLSS.xmlのことは次回に回すとして(^ ^; まず、テキストエディタでkajin2.xmlを開いてみようね。 |
XMLファイルサンプル【kajin2.xml】 |
---|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
さらら: あ、ちゃんと綺麗に作られているわ(^ ^* たけち: タブできちんとインデントされたXMLファイルができあがったよね。これで成功(^ ^*) さらら: うまくできちゃった!! (^ ^*・・・ たけち: じゃあ、次回は、今回作っておきながら何も解説しなかった「「XMLスプレッドシート」形式のファイルについて勉強しようね。 さらら: あっ、はい。 (^ ^* →次はXMLスプレッドシート(XMLSS)形式(1)です。 (^ ^; |
|
※注-1 Excelの表記は「ルートノード」となっていますが、これは「ルート要素」の意味の間違いである可能性があります |
■このコーナーは、TAKABEさま(XSLT登竜門)の全面的なご協力をいただいて作成しています。 |