XMLをOfficeで扱う: XMLファイルをExcelで読む(2)

2004年05月02日(日)更新


■【kajin.xml】に対応するXMLスキーマ

たけち: 前回、Excelで読み込んだ【kajin.xml】に対応するXMLスキーマを考えてみようね。

さらら: えぇ。

たけち: ちょっと考えてみて。

さらら: えっ!! えっ、え〜と…(^_^;) こんなだったかしら。。。

XMLスキーマサンプル【kajin.xsd】

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

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="meibo" type="MeiboType">
    <xsd:key name="person-id">
        <xsd:selector xpath="person" />
        <xsd:field xpath="@id" />
    </xsd:key>
</xsd:element>

<xsd:complexType name="MeiboType">
    <xsd:sequence>
        <xsd:element ref="person" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:element name="person" type="PersonType" />

<xsd:complexType name="PersonType">
    <xsd:sequence>
        <xsd:element name="name" type="xsd:string" />
        <xsd:element name="age" type="xsd:positiveInteger" />
        <xsd:element name="address" type="xsd:string" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:positiveInteger" use="required" />
</xsd:complexType>

</xsd:schema>

たけち: そうだね。よさそうだね。

さらら: あっ、ありがと・・・

たけち: 図にするとこんな感じだね。

歌人データのXMLスキーマ


■【kajin.xsd】を指定したXMLデータ

たけち: じゃあ、前回使った【kajin.xml】ファイルを、このXMLスキーマを指定した【kajin_locSchema.xml】ファイルにしてみよう。

さらら: はい。え〜っと・・・・どうするんだったっけ? (^ ^;

たけち: xsi:noNamespaceSchemaLocationで【kajin.xsd】を指定してみようね。

さらら: あ、そんなのがあったわね。 (^ ^;

XMLファイルサンプル【kajin_locSchema.xml】

<?xml version="1.0" encoding="Shift_JIS"?>
<meibo
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="kajin.xsd">

<person id="1">
    <name>大伴家持</name>
    <age>36</age>
    <address>yakamochi@example.com</address>
</person>

<person id="2">
    <name>額田王</name>
    <age>28</age>
    <address>nukata@example.com</address>
</person>

<person id="3">
    <name>柿本人麻呂</name>
    <age>45</age>
    <address>hitomaro@example.com</address>
</person>

</meibo>


■【kajin_locSchema.xml】をExcelで開く

さらら: この【kajin_locSchema.xml】をExcelで開いてみればいいのね。

たけち: そうそう。Excelの「ファイル」メニューから「開く」を選んで、開けてみようね。

さらら: は〜い。えっ〜と、やっぱり「XMLリストとして開く」のままで「OK」ボタンを押して・・・
あら、今度は「指定したXMLソースは…」のダイアログは出てこないで、そのまま取り込まれたわ。

たけち: そうだね。実際にXML Schemaが取り込まれたことを見るためには、「データ」→「XML」→「XMLソース」を選択すると、スキーマ構造がツリー状にグラフィカルに表示されるよ。

【kajin_locSchema.xml】をExcelで開く

さらら: あ、本当だわ。すごいすごい。。。でも、「OK」のボタンを押すためだけのダイアログを回避するために、XML Schemaを書くのは大変だわねぇ〜。

たけち: ExcelにおけるXML Schemaの役割はそれだけじゃないんだよ(^_^;)

さらら: えっ、そうなの。

たけち: それじゃあ、次回はXML SchemaをExcelで取り込んで、それを使ってCSVからXMLへ変換する方法を勉強することにしようか。

さらら: あっ、はい。 (^ ^* (やぶへびだったかしら・・・)

→次はCSVファイルをExcelでXMLファイルに変換です。 (^ ^;


このコーナーは、TAKABEさま(XSLT登竜門)の全面的なご協力をいただいて作成しています。