XMLスキーマは、ExcelやAccess、Word、あるいは他の業務ソフトの間でデータのやり取りをするときに出てきます。
たとえば、Wordのフォームに入力してもらったアンケート結果をExcelで集計する場合、XMLがないと一つ一つ手入力やコピー・ペーストが必要になります。
XMLスキーマを仲立ちとして、WordのフォームとExcelの列をマップ(結びつける)することで、まとめて読み込むことができるようにします。
定義XMLによるスキーマ確認が失敗
ほかに「XMLスキーマ」というキーワードに遭遇するのは、AccessにExcelデータをインポートした場合のエラー表示があります。
「定義XMLによるスキーマ確認が失敗しました。XMLドキュメントの行*にエラーがあります」
これは、Excelのテーブルの中にデータがおかしいセルがある、ということを意味します。
Accessはデータベースの各項目の型が厳密に指定することで効率化しているので、インポートされるExcelデータが整合しているか、XMLスキーマを自動生成して判定しています。
このエラーは、表データの中に重複している項目があるケースが多いです。
そもそもExcel で XML を使用するのはなぜ?
XML とは構造化データを管理するためのテキストファイルの形式です。
テキストファイルなので、メモ帳のようなテキストエディタで開いて、中のコードを確認することができます。
通常、業務ソフトのデータはほかのソフトからは利用できないバイナリファイルの形式であることが多いですが、XML は業界標準の規格なので、さまざまなデータベースやアプリケーションをまたいで利用することができます。
逆にいうと、それぞれのアプリケーション固有のデータ構造に対応するXMLを作って、アプリケーション間のデータのやりとりができるようにします。
たとえば
• 既存の Excel テンプレートのセルに XML 要素をマッピングして見やすく分析する。
• 既存のワークシート(計算モデル)に XML 要素をマッピングして計算・集計する。
• 新しいブックに XML データ ファイルをインポートする。
• Web サービスから Excel ワークシートに XML データをインポートする。
• マップされたセル内のデータだけを XML データ ファイルとしてエクスポートする。
XML データとXML スキーマ
Excel では、主にスキーマとデータの 2 種類の XML ファイルを使います。
• XML スキーマ ファイル (.xsd)。データベースの形式がかかれているテキストファイルです。データ型や検証などのルールを強制する スキーマ タグが含まれます。
• XML データ ファイル (.XML)。データベースの内容がかかれているテキストファイルです。カスタム タグ(フィールド名)とデータが含まれます。
フォルダー内の XML ファイルを参照するには、[開く] をクリックする前にファイルの種類として [XML ファイル (*.XML)] を選びます。
Excel で XML データを使うには?
Excel で XML を使うプロセスには5つのステップがあり、さまざまなファイルを連携して操作します。
- ブックに XML スキーマ ファイル (.xsd) を追加する
- 個々のセルまたは XML テーブルに XML スキーマ要素をマップする
- XML データ ファイル (.XML) をインポートし、XML 要素をマップされたセルにバインドする
- Excel の機能を活用して、マップされたセルを移動したり、データを入力する
- マップされたセルのデータをXML データ ファイルとしてエクスポートする
XMLスキーマの推測(自動生成)
XMLスキーマがない場合でも、Excel はXMLデータをインポートすることができます。
その場合、XMLスキーマを推測して作られ、次回のインポートにも利用できるようにブックとともに保存されます。
ただし、推測されたスキーマは単体の XML スキーマ データ ファイル (.xsd) としてエクスポートすることはできません。
推測されたスキーマをカスタマイズしたいときは、[オプション] から [作業ウィンドウでのデータのプレビュー] オプションを選び、要素リストのサンプル データとして 1 行目のデータを表示します。
XML データをインポートする
ブック内の既存の XML マップにXML データをインポートするとバインドされます。
[XML の対応付けのプロパティ] ダイアログ ボックスには、XML データ バインドのしかたについての3 つのオプションがあります。
- インポートまたはエクスポート時にスキーマに対してデータを検証する
- 既存のデータを新規データで上書きする。
- 既存の XML テーブルに新規データを追加する(Accessの「追加クエリ」に似ている)
XML データをエクスポートする
ワークシート上のマップされたセルの内容をエクスポートすることで、XML データをエクスポートします。
もし、エクスポートされる XML データが XML スキーマに準拠していることを確認したい場合は、[開発] タブ [XML] グループの [対応付けのプロパティ] をクリックして、[XML の対応付けのプロパティ] ダイアログ ボックスを表示します。そこで、[インポートまたはエクスポート時にスキーマに対してデータを検証する] オプションを使います。