Microsoft Excel Version 2002 に XML ファイルをインポートするときに、XSLT を使用して XML ファイルを変換する

サンプル コードのダウンロード サンプル (odc_xlflatnr.exe) のダウンロード

Frank C. Rice
Microsoft Corporation

July 2001
日本語版最終更新日 2001 年 11 月 6 日

対象:
     MicrosoftR Excel Version 2002

MSDN Code Center (英語) で ODC_xlflatnr.exe をダウンロードまたは参照してください。

概要: この記事では、Excel Version 2002 XML スプレッドシート形式について、および Excel にインポートされる XML データを XSLT を使用して別の形式に変換する方法について説明します。例を使用しながら XML ワークシート ファイルを作成し、 XSLT スタイル シートを使用して形式を変更する方法を説明していきます。

目次

はじめに
Excel で XML データを表示する
XML データ ファイルを作成する
XML スプレッドシート形式でデータを表示する
スタイル シートを使用してデータをインポートする
XSLT スタイル シートの例
まとめ
追加情報
用語集

はじめに

MicrosoftR Excel Version 2002 では、 既定の XML スプレッドシート (XMLSS) 形式を使用した XML (eXtensible Markup Language) ファイルの読み込みおよび保存をサポートしています。 XMLSS は Excel Version 2002 と Microsoft Office XP スプレッドシート コンポーネントの両方に共通している形式なので、 XMLSS 形式のファイルはこれらのアプリケーションで共有できます。 また、XMLSS ファイルをほかの多数のアプリケーションで共有できるように、 XMLSS ファイルに対して独自の XSLT (XSL 変換) スタイル シートを作成して、 データを別の形式に変換することもできます。

さらに、Excel はデータのインポート時に XSL (eXtensible Stylesheet Language) と XSLT ファイルの使用して、 XML データを Excel で表示できる別の形式に変換することをサポートしています。

この記事では、XMLSS 形式について説明し、 Microsoft Access Version 2002 からサンプル XML データ ファイルをインポートして、 XMLSS 形式を使用する方法の例を提供します。 この例では、XSL を使用して XML データを書式化する手順、 およびインポート処理中に XSLT を使用して XML データを別の形式に変換する方法も例示します。

この記事は、 XML と XML に関連するファイルを記述するために使用する用語の基礎について理解していることを前提としています。 この記事の最後に、XML、XSL、および XSLTに関連する一般的な用語の解説を用意しておきました。 また、MSDN Online XML Developer Center には XML の情報として優れたリソースが提供されています。

Excel で XML データを表示する

XML は、 さまざまなアプリケーションで読み取ることができるように、 構造化されたデータ (たとえば、ワークシートなどに構造化されたデータ) を記述するために使用するマークアップ言語です。 設計者は、 アプリケーション間や組織間でデータの定義、転送、評価、および解釈を可能にするカスタマイズした XML エレメントを作成できます。 XML の汎用性は、データ交換に多くの機会を提供しますが、 本質的に挑戦していることは 1 つです。 XML ドキュメントのエレメントを操作することによって、 設計者はドキュメント内で任意の数の次元に入れ子になったエレメントの階層を作成できます。 これらのエレメントの親/子関係は、 Excel ワークシートの 2 次元の行/列の理論的枠組みをあいまいにすることがあります。

このあいまいさを扱うために、 Excel では受け取る XML データにある書式を強制的に適用します。 ただし、別の形式をあらかじめ定義しているスタイル シートがデータに添付されている場合は除きます。 この強制適用される書式は、 データをワークシートを構成する行と列の形式に設定するためにフラット化アルゴリズムを使用することによって作成されます。 この書式は、多次元のデータを 2 次元の書式に強制的に変換する場合には効果的ですが、 人間にとって最も読みやすい書式でデータが表示されるとは限りません。

では、Excel はいつフラット化アルゴリズムを使用して、 いつ XSLT スタイル シートを使用するかをどのように判断するのでしょうか ? Excel は XML データ ファイルを開くとき、またはインポートするときに、 そのファイル内で XSLT スタイル シートを指すエレメントを検索します。 そのようなエレメントが存在する場合、 Excel はダイアログ ボックスを表示して、 スタイル シートを適用するか、それともスタイル シートを適用せずにファイルを開くかを問い合わせます。

図 1. [XML ファイルのインポート] ダイアログ ボックス

スタイル シートを適用することを選択すると、 XSLT ファイルはファイルの指示に基づいて、データを書式化して表示します。

スタイル シート エレメントが存在しないか、 または XSLT スタイル シートを適用しないことを選択すると、 Excel はフラット化アルゴリズムを使用してデータを表示します。 では、フラット化アルゴリズムを使用して実際にデータを書式化してみましょう。

XML データ ファイルを作成する

まず、 Access Version 2002 の Northwind サンプル データベースから Employees テーブルをエクスポートし、 Employees.xml データ ファイルを作成します。 以下の手順で、Employees.xml ファイルの作成方法を説明します。 このファイルは、この記事に含まれるダウンロードからも取得できます。

  1. Access Version 2002 を起動して、Northwind サンプル データベースを開きます。 [スタート] ボタンをクリックして、 [検索] をポイントし、[ファイルやフォルダ] をクリックして、Northwind データベースを検索できます。 「Northwind.mdb」と入力して、[検索開始] をクリックします。 コンピュータに Northwind データベースがインストールされていない場合は、 Microsoft Office XP のインストール元と同じ場所からこのデータベースをインストールできます。
  2. データベース ウィンドウで [テーブル] をクリックします。 [Employees] テーブルをクリックして、[ファイル] メニューの [エクスポート] をクリックします。
  3. [ファイルの種類] の一覧で、[XML ドキュメント] をクリックします。
  4. [保存先] の一覧の右にある矢印をクリックして、エクスポート先のドライブを選択します。
  5. [ファイル名] の一覧に「Employees」と入力し (または既定値を受け入れて)、 [エクスポート] をクリックします。
  6. [XML のエクスポート] ダイアログ ボックスで、 [データ (XML)] チェック ボックスがオンになっていることを確認します。 [データ スキーマ] チェック ボックスと [データ (XSL) のプレゼンテーション] チェック ボックスがオンになっている場合は、 オフにします。
  7. [OK] をクリックして、データを XML ドキュメントにエクスポートします。
  8. データを表示するには、メモ帳などのテキスト エディタでファイルを開きます。
<?xml version="1.0" encoding="UTF-8" ?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata">
   <Employees>
     <EmployeeID>1</EmployeeID>
     <LastName>Davolio</LastName>
     <FirstName>Nancy</FirstName>
     <Title>Sales Representative</Title>
     <TitleOfCourtesy>Ms.</TitleOfCourtesy>
     ...
   </Employees>
     ...
</dataroot>

XML データの一部を見てみると、 Northwind Traders employee のグループを記述している HTML (Hyper Markup Language) に似た一連のエレメントがあります。 このコードは、データを囲んでいるエレメントのただの長いリストのように見えるかもしれませんが、 ドキュメントのエレメントには構造があります。 図 2 で示すように、このドキュメントはエレメント (またはノード) の階層を含んでいるツリー構造として見ることができます。

図 2. ツリー構造としての Employee のデータ

EmployeeIDFirstName、および LastName エレメントは、 Employees の子エレメントで、 Employees エレメントは dataroot エレメントの子エレメントです。 言い換えると、EmployeeIDFirstName などの説明的なエレメントは、 dataroot エレメント内にネストされている Employees エレメント内にネストされています。 スタイル シートが存在しない場合、これがエレメントの階層構造になり、 Excel はデータをワークシートに表示するためにこの構造を解釈する必要があります。

では、Excel でフラット化形式のファイルがどのように表示されるかについて見ていきましょう。

XML スプレッドシート形式でデータを表示する

以下の手順に従って、Excel Version 2002 に Employees.xml データ ファイルをインポートします。

  1. Excel Version 2002 を起動して、新しいブックを作成します。
  2. [データ] メニューの [外部データの取り込み] をポイントし、 [データの取り込み] をクリックして、Employees.xml ファイルをインポートします。 [データ ファイルの選択] ダイアログ ボックスの [ファイルの種類] の一覧で [XML ファイル] を選択します。 Employees.xml ファイルを指定して、[開く] をクリックします。
  3. [データのインポート] ダイアログ ボックスで [OK] をクリックします。

図 3. フラット化形式の Employee のデータ

図 3 では、Excel がネストされたデータをどのように解釈して、 2 次元モデルに適用させるのかを示しています。 図からわかるように、すべての情報は表示されていますが、あまり見やすくありませんね。

最初のエレメント (セル A1) /dataroot はドキュメント エレメントで、 文書タイトルのように使用されます。

このセルの下に、 Employees エレメントの子エレメントが /Employees/Address... のように複数の列に渡って表示されています。 最初のエレメントは Address エレメントです。

Excel は、ネストされたエレメントを含むエレメントを複数列に渡って表示します。 同様に、複数のデータのセットを含むエレメントごとに、 データが複数行に渡って表示されます。 また、ネストされたエレメントは、 Employees.xml ファイルに表示される順序ではなく、 アルファベット順に複数列に渡って格納されていることに注意してください。 これ以上ににネストされた層のエレメントやデータがある場合、 今度はこれらのエレメントやデータが複数の列や行に渡って表示されます。

以下の例は Excelが 2 つのネストされた XML データ アイランドを表示する方法を示しています。

<Sauces>
  <Ingredients>
    <Ingredient1>Water</Ingredient1>
    <Ingredient2>Flour</Ingredient2>
  </Ingredients>
</Sauces>

図 4. ネストされたエレメント

<Sauces>
  <Ingredients>
    <Ingredient>Water</Ingredient>
    <Ingredient>Flour</Ingredient>
  </Ingredients>
</Sauces>

図 5. ネストされたデータ

ワークシートを横方向にスクロールしていくと、 #agg 列 /Employees/EmployeeID/#agg があります。

#agg 指示があると、 Excel はその列のデータが一連の数字であるとみなし、 これらの値に対して集計を実行しようとします。 たとえば、オート フィルを適用する行に数字を含めることによって、 Excel は複数行 (複数の販売品目) に規則的に適用する値に対してはデータのオート フィルを実行しようとします。 この例のように Excel が値をどのように適用するかを判断できない場合は、 ただエレメントの値を一覧表示します。

今度は、スタイル シートを使用して XML データのプレゼンテーションを向上させてみましょう。

スタイル シートを使用してデータをインポートする

スタイル シートを使用すると、 Excel での XML データのプレゼンテーションを飛躍的に向上させることができます。 たとえば、データがセルにどのように配置されるかを制御でき、 さらにセルの書式設定も提供できます。 XSLT スタイル シートを使用するには、 XML データ ファイルにスタイル シートの宣言を追加する必要があります。 サンプル XSLT スタイル シート (SortNames.xsl) はこの記事で利用できるダウンロードに含まれています。 スタイル シートのコードについては、この記事の後半で説明します。

日本語編集注: XSLT スタイルシートを適用する Employees.xml は、ダウンロード サンプルに含まれているファイルをご利用ください。

Employees.xml データ ファイルを Excel にインポートするときに SortNames.xsl ファイルを使用するには、 以下の手順に従います。

  1. メモ帳などのテキスト エディタを使用して Employees.xml データ ファイルを開きます。

  2. ドキュメントの最初の行の後に空の行を 1 行作成します。 次の行をコピーして、空の行に貼り付けます。

    <?xml-stylesheet type="text/xsl" href="SortNames.xsl"?>
    

    この行は Employees.xml ファイルをインポートするときに、 SortNames.xsl スタイル シートを適用することを Excel に指示します。

  3. Employees.xml に加えた変更を保存します。

  4. Excel で新しいブックを作成して、 Employees.xml ファイルをインポートします。 データを開くと、ワークシートで従業員情報の一覧は姓に基づいて並べ替えられて表示されます。

図 6. スタイル シートを使用して表示された Employees.xml データ

以前の例よりもずいぶん見やすく、かつ効果的に表示されていることが、 上記の図でおわかりいただけると思います。 このデータ変換がどのように完了したかについて理解するために、 使用した XSLT とスタイル シートを詳しく見ていきましょう。

XSLT スタイル シートの例

XSLT は、HTML エレメントとテンプレート ルールの組み合わせを使用して、 出力ファイルを再構成および再書式化します。入力 XML データ ファイルにあるエレメントのパターンがテンプレート ルールのパターンと一致した場合、 これらのテンプレート ルールが起動されます。 XSLT スタイル シート内のテンプレートには、 XPath (XML Path Language) 式を使用して親エレメントと子エレメントを設定するために使用される指示も含まれています。

XPath は XML ドキュメントのある部分に移動するために使用される言語で、 XSLT が使用するように設計されています。XPath の詳細について説明することはこの記事の目的ではないので、 詳細については MSDN Online XML Developer Center を参照してください。 XPath 式は、主にツリー構造のエレメントや項目を識別したり、 これらの間を移動するために使用されます。 XPath 式を使用すると、 ユーザーは XSLT の指示を使用してツリー構造のエレメントや項目を処理できるようになります。

データ変換について説明するために、 データを表示するために使用した XSLT スタイル シート ファイル (SortNames.xsl) を見ていきましょう。

<?xml version="1.0" encoding="UTF-8" ?>
<!-- このスタイルシートを、Microsoft Access からエクスポートした 
Employees.xml ファイルで使用して、従業員の名前、住所、および 
電話番号の一覧を Microsoft Excel に生成します。


    対象:
        Employees.xml

    出力:
        表
 -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<!-- HTML ファイルとして出力します。 -->
<xsl:output method="html"/>
<xsl:template match="/">
<!-- 見出し付きの表を作成して、Employees エレメントの
     子を検索します。処理が完了すると、LastName フィールド
     に基づいて表が並べ替えられます。
 -->
<TABLE>
    <TR>
        <TH>Name</TH>
        <TH>Address</TH>
        <TH>Home Phone</TH>
    </TR>
        <xsl:apply-templates select="dataroot/Employees">
            <xsl:sort select="LastName" order="ascending"/>
        </xsl:apply-templates>
</TABLE>

</xsl:template>

<!-- Employees エレメントの子エレメントを
     処理および出力します。
 -->
<xsl:template match="dataroot/Employees">
    <TR>
        <TD>
            <xsl:value-of select="FirstName" />
            <xsl:text> </xsl:text>
            <xsl:value-of select="LastName" />
        </TD>
        <TD>
            <xsl:value-of select="Address" />
            <br/>
            <xsl:value-of select="City" />
            <xsl:text>, </xsl:text>
          <xsl:value-of select="Region"/>
            <xsl:text> </xsl:text>
            <xsl:value-of select="PostalCode"/>
        </TD>
        <TD>
            <xsl:value-of select="HomePhone" />

            <!-- 電話番号に内線があるか
           どうかを確認します。ない場合は、
           テンプレートの指示を無視します。
             -->
            <xsl:if test="string-length(Extension)>0">
                <xsl:text> Ext </xsl:text>
                <xsl:value-of select="Extension" />
            </xsl:if>
        </TD>
    </TR>
</xsl:template>
</xsl:stylesheet>

プロローグ

スタイル シートの最初のセクション XML の宣言から最初のテンプレートの指示までは、 プロローグと呼ばれることがあります。 XSL と XSLT は XML ベースの言語なので、 XSL と XSLT のスタイル シート (または変換ファイル) は XML のルールに従う必要があります。 そのため、スタイル シートの導入部の最初のステートメントは、 エンコード形式やバージョン番号などの標準の XML 宣言ステートメントが含まれます。

<?xml version="1.0" encoding="UTF-8" ?>

コメントは、 ドキュメントのどこにでも挿入できれます。 <!-- 文字で開始し、--> 文字で終了します。 次に xsl:stylesheet エレメントが、 このファイルがスタイル シートであることをプロセッサに認識させます。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      version="1.0">

xmlns:xsl 属性は、 スタイル シート内のオブジェクトが使用する名前空間プレフィックスを定義します。 名前空間は、XML ドキュメント内のエレメントのコンテキストを提供します。 たとえば、名前空間を使用することで、 Table エレメントの使用は行と列を使用したデータ構造を表していることを、プロセッサに通知できます。 XML ドキュメントと同様に、 XSL/XSLT スタイル シートは xsl:stylesheet エレメントの属性に含まれているようなバージョン番号を持つ必要があります。

次に、xsl:output エレメントを記述します。 このエレメントは、プロセッサが出力の形式を認識および制御する手助けをします。

<xsl:output method="html"/>

テンプレート ルール

次に記述するのは、一連のテンプレート エレメントの最初の部分です。

<xsl:template match="/">

ソース ドキュメントの特定の部分が検出されると、各テンプレート ルールが実行されます。 この場合、template エレメントは match と呼ばれる属性を 1 つ含んでいます。 この属性の値は、テンプレート ルールを適用する必要がある入力ツリーの特定のノードまたはエレメントと一致するパターンです。 この特定の属性は、値 "/" を含み、 この値は入力ファイルのルート ノードと一致します。 ルート ノードはツリー内の最上位のノードで、 通常ドキュメント エレメントを表す子エレメントを 1 つだけ含みます。 ドキュメント エレメントは、 XML ドキュメントの一番外側にあるエレメントで、 ドキュメント内のその他のエレメントをすべて含んでいます。 Access Version 2002 の XML ファイルでは、 ドキュメント エレメントは dataroot エレメントで、 ファイル内のその他のすべてのエレメントを含みます。 この記事の後半で示すように、 "/" 記号は XPath 式を使用してツリー構造のノード間を移動する手段を提供します。

HTML エレメント

次に、データを格納する表を作成する一連の HTML エレメントについて見ましょう。

<TABLE>
    <TR>
        <TH>Name</TH>
        <TH>Address</TH>
        <TH>Home Phone</TH>
    </TR>
    ....
</TABLE>

スタイル シートで HTML エレメントを使用して、データの表示を書式化できます。

その他のテンプレート ルール

次に記述するのは、入力ドキュメント内の残りのエレメントを識別して処理する XML の指示です。

<xsl:apply-templates select="dataroot/Employees">
    <xsl:sort select="LastName" order="ascending"/>
</xsl:apply-templates>

xsl:apply-templates エレメントは、 一致するテンプレート ルールを選択することによって、 処理する一連のエレメントを定義します。 select 属性は、 入力ツリー構造のエレメント間を移動する XPath 式 "dataroot/Employees" を含んでいます。

ヒント     "dataroot/Employees" 式は、 "//Employees" という省略形式で表現できます。 2 つのスラッシュは XPath の略記で、 ルートとその後続レベル (この場合は、dataroot エレメント) を表しています。

<xsl:apply-templates select="dataroot/Employees"> の正確な意味は何でしょうか ? このコードは、 "現在の場所 (それ以前のエレメント <xsl:template match="/"> に基づいたルート ノード) から、 dataroot/Employees エレメントの子エレメントを選択して、 その各子エレメントに一致するテンプレートのルールを探して、 その子エレメントを処理する" ことを意味します。 特定のテンプレート ルールについては、この後説明します。

    xsl:apply-templates が呼び出され、 一致するテンプレート ルールが存在しない場合、 既定のテンプレート ルールが代わりに使用されます。 どの既定のテンプレート ルールを使用するかは、 処理対象のノードの種類によって異なります。 たとえば、element-type ノードの既定のテンプレート ルールは "現在のノードのすべての子を処理し、 それらのデータの値を出力にコピーする" ということをプロセッサに指示します。 テンプレート ルールが見つからない場合、Employees エレメントの子エレメントはすべて指示 <xsl:apply-templates select="dataroot/Employees"> で処理されます。 つまり、LastNameFirstName、および Address エレメントの指示が処理され、 これらのエレメントが含むすべての情報は出力にコピーされます。

例を引き続き見ていくと、次のステートメントが見つかります。 このステートメントは、並べ替えキー (この場合は、LastName エレメント) を指定するために使用します。

<xsl:sort select="LastName" order="ascending"/>

並べ替え順を明示的に定義するために order="ascending" 属性も含んでいることに注意してください。 これは既定の並べ替え順です。並べ替えの次の指示は HTML TABLE エレメントを閉じています。

次に記述するのは、 上記で説明した <xsl:apply-templates select="dataroot/Employees"> エレメントのパターンと一致するテンプレート ルールです。

<xsl:template match="dataroot/Employees">

繰り返しになりますが、 パターンはテンプレート ルールが入力ツリーのどのノードを処理するかを決定します。 この場合 Employees エレメントのすべての子ノードが処理されます。

    複数のルールがノード パターンに一致する場合、XSLT は競合解決を使用します。 たとえば、ルールには優先順位値が割り当てられています。 この優先順位値は、 ユーザーが xsl:template エレメントに割り当てた priority 属性か、 システムの既定値のいずれかにより決まります。 システム定義の優先順位値については、 パターンが特定する度合いが高いほど、ルールの優先順位値はより高くなります。 この記事の例では、 パターン "dataroot/Employees" は、 現在の場所にあるすべてのエレメントを表す "*" よりも高い優先度値が割り当てられます。

テンプレート ルールは xsl:apply-templates エレメントのパターンに一致するものを探すので、 テンプレート本体を処理することから始めます。 まず、HTML の TABLE エレメントが出力され、以下の指示が処理されます。

<xsl:value-of select="FirstName" />
<xsl:text> </xsl:text>
<xsl:value-of select="LastName" />

最初の指示は、 XPath 式 select="FirstName" を評価し、 xsl:value-of エレメントに基づいて式のデータを出力に記述します。 次の指示 <xsl:text> </xsl:text> は、 結果ツリーにリテラル文字列を出力するために使用されます。 この場合は、FirstName ノードと LastName ノードの間にスペース文字を出力します。

ヒント     リテラル文字列を出力に含めるもう 1 つの方法は、 リテラル文字を指示の行間に含めることです。 たとえば、次のようになります。

<xsl:value-of select="PhoneNumber" />
Ext
<xsl:value-of select="Extension" />

テキスト "Ext" は、PhoneNumber エレメントと Extension エレメントの間にコピーされ、出力されます。xsl:text を使用することで、テキストの周囲にスペースを簡単に含めることが出来ます。

次の XSLT の指示は、本質的に上記の指示と同じ機能を実行します。

<xsl:value-of select="Address" />
<br/>
<xsl:value-of select="City" />
<xsl:text>, </xsl:text>
<xsl:value-of select="Region"/>
<xsl:text> </xsl:text>
<xsl:value-of select="PostalCode"/>

Employees エレメントのさまざまな子エレメントが選択され、それらの値は出力ツリーにコピーされます。Address エレメントでは、 HTML br エレメントを使用して、 スタイル シートでノード間に隙間を作って、出力を再書式化しています。

条件付きループ

次は、社員が内線を持っているかどうかをテストするために、 xsl:if エレメントを使用することについて見ていきましょう。 社員が内線を持っていない場合、 xsl:if エレメントは Extension エレメントを処理する指示を無視します。

<xsl:if test="string-length(Extension)>0">
    <xsl:text> Ext </xsl:text>
    <xsl:value-of select="Extension" />
</xsl:if>

xsl:if エレメントは、 多くのプログラミング言語で使用されている if-end-if 制御ステートメントのように機能します。 このエレメントは、test 属性で指定されている条件が true の場合のみに、 ループ内にカプセル化されてた指示を処理します。 この場合、string-length と呼ばれる組み込みの関数を使用して、 Extension エレメントに文字が含まれているかどうかを判断しました。 関数に渡された式が空だった場合、 関数は 0 を返します。 test が 0 である場合、 test は False であると評価され、ループは無視されます。

変換処理の概要

変換処理のでの XSLT の使用の概要を以下に示します。

  • XSLT は、 HTML エレメントとテンプレート指示の組み合わせを使用して、 出力ファイルを再構成および再書式化します。
  • テンプレート ルールは、 親エレメントや子エレメントに位置付けるために使用する XPath 式を含みます。 テンプレート指示は、入力を処理する方法を指定します。 テンプレート本体の大部分は、 出力用の HTML エレメントで構成されています。
  • 通常、指示は入力 XML データ ファイルのエレメントの順序とは無関係に、 データを出力する順序に並べられます。
  • 条件付きプログラミング指示を使用すると、 データのフィルタ処理をより細かく設定できます。

まとめ

この記事では、 別にスタイル シートが存在しない場合に Excel が XML データを構造化するために使用するフラット化アルゴリズムをご紹介しました。 また、XSLT マークアップ言語について見てきました。 XSLT マークアップ言語のファイル構造といくつかの処理の指示について説明しました。 XML データ ファイルをある形式から別の形式に変換する際に XSLT マークアップ言語を使用することについて説明してきました。 これらの概念が、独自の XSLT ファイルを構築し、そのファイルを Excel で使用する出発点となることを願っています。

追加情報

この記事で提供した概念の詳細については、Microsoft Online XML Developer Center または W3C Extensible Markup Language (XML) Web サイトをご覧ください。

XSL および XSLT に関する詳細については、 MSDN で XSL Developer's Guide をご覧になるか、 W3C Extensible StyleSheet Language (XSL) Web サイトをご覧ください。

用語集

この用語集は、この記事で使われている技術用語の一部を定義しています。 これらの用語の詳細については、 上記の「追加情報」のリンク先をご覧ください。

  • 属性: match="//employees" などのエレメントと関連付けられた名前/値のペア。
  • コメント: XML/XSLT プロセッサが無視する注釈です。 区切り記号 <!----> の間に記述されます。
  • ドキュメント エレメント: ドキュメントの最も外側にあるエレメント。 ドキュメント エレメントは、ほかのエレメントすべてを含みます。 また、ルート エレメントとも呼ばれています。
  • エレメント: <Title>Sales Representative</Title> などの開始タグと終了タグで区切られた XSLT スタイル シート内の個別の単位です。
  • 式: 文字列、数字、ブール値、または一連のエレメントに評価できる XPath 構成体です。 式は xsl:templates エレメントの select 属性などの多くのコンテキストで使用されます。
  • 名前空間: 名前空間はエレメントと属性に対してコンテキストを提供し、一意性を保証します。
  • ノード: ツリー構造のエレメント。
  • Output メソッド: 出力の形式を定義する属性。 XSLT は、XML、HTML、およびテキストという 3 つの output メソッドを定義します。
  • パターン: すべてのノードが満たしているか、満たしていないかという条件を定義する構成体。 xsl:template など XSLTで XPath 式として使用されます。
  • 処理の指示ノード: 処理の指示を含んでいるノード。処理の指示は、XML パーサーに指示を伝えます。たとえば、XML ドキュメントの <?xml version="1.0" encoding="UTF-8" ?> 宣言など、 区切り文字 <??> の間に記述されます。
  • ルート エレメント: ドキュメント エレメント 参照。
  • ルート ノード: ツリー構造内の最上位のノード。 ツリー構造が整形式 (well-formed) の XML ドキュメントを表す場合、 ルート ノードはドキュメント エレメントをエレメント ノードを1 つだけ持ち、 子ノードを持ちません。 コメント ノードや処理の指示ノードを子ノードとして含むことがあります。
  • テンプレート本体: 一連のXSLT の指示、HTML エレメント、および xsl:template エレメントのコンテンツを形成するテキスト。
  • テンプレート ルール: match 属性を持つ xsl:template エレメント。 テンプレート ルールは xsl:apply-templates エレメントを使用して呼び出されることがあります。
  • ツリー構造: XML ドキュメントのコンテンツを表すルート ノードとエレメントの分岐で階層的に表現される抽象的なデータ構造。 ツリー構造は通常単一のルート ノードを持ちます。
  • URI: Uniform Resource Identifier: インターネットでのアドレスなど、 リソースを一意に識別するために使用される URL (Uniform Resource Locator) の一般概念。
  • 有効な XML ドキュメント: ドキュメントは、整形式 (well-formed) の XML ドキュメントの基準を満たしているだけでなく、 ドキュメントの構造を定義するスキーマ (たとえば XSL/XSLT スタイル シート) を指す宣言を含んでいる場合に有効です。 ドキュメントを有効にするには、ドキュメントはスキーマで定義された構造に従う必要があります。
  • 整形式 (well-formed) XML ドキュメント: XML 仕様の構文に従っているドキュメントが整形式 (well-formed) のドキュメントです。 この構文ルールには、ほかのすべてのエレメントを含む最も外側のエレメントが 1 つ存在することや、 すべての開始タグは終了タグを持つことなどがあります。
  • XML スプレッドシート形式: Microsoft Excel が XML として保存されたデータに適用する XML 形式。