---
title: "XMLからXSDへ：複数のXMLデータからスキーマを生成する"
date: "2021-08-25"
categories: 
  - "development"
  - "tools"
  - "xml"
tags: 
  - "xml-editor"
  - "xml-schema"
  - "xmlspy"
  - "xsd"
description: XMLSpyは、強力なXMLエディタであり、関連する複数のXMLファイルを対象に、XSD（XMLスキーマ定義）を簡単に作成できます。このツールを使って、複数のXMLインスタンスからXSDを生成する方法を学びましょう。
---
Status: #blog

Tags:  #xml-editor #xml-schema #xmlspy #xsd

Categories: [development](/blog/ja/category/development.md) | [xml](/blog/ja/category/xml.md)
# XMLからXSDへ：複数のXMLデータからスキーマを生成する

先日、弊社のサポートエンジニアの一人と話す機会があり、顧客からよく寄せられる質問について教えていただきました。その中で、特に頻繁に聞かれるのは、スキーマ生成に関する質問で、具体的には「XMLからXSDをどのように生成すればよいのか？」というものです。その答えは、お好みのXMLエディタを使用することです。XMLSpyは、DTD、リレーショナルデータベースの構造、JSONスキーマ、そしてもちろんXMLインスタンスから、有効なXSDを生成することができます。

しかし、多くの顧客が驚くことに、このXMLエディタは、特定の条件に基づいてXMLスキーマも作成します _グループ_ 関連するXMLファイル群を処理する必要がある場合が多く、これは一般的な要件です。それでは、その仕組みについて見ていきましょう。

![](/blog/images/PR112123_700x335.jpg)

<!--more-->

## XSDファイルを生成します

もし、私がウェブ開発プロジェクトを引き継ぎ、その出発点として一連のXMLファイルを受け取ったとします。しかし、[XMLスキーマ](https://www.w3.org/XML/Schema)は提供されていません。これらのファイルに対してXSDを生成するためには、まずそれらをXMLSpyプロジェクトに追加する必要があります。これは後々非常に役立ちます。なぜなら、プロジェクトは関連するすべてのファイルを、特定のファイルを検索したり、XSLT変換を適用したり、プロジェクト全体での検証やファイル内検索などの一括操作を実行したりできる、整理されたフォルダグループにまとめるからです。

XMLSpyプロジェクトについて少し詳しく説明しましょう。フォルダは、ファイルシステム上の実際のディレクトリに対応している場合もありますが、各フォルダに対してファイルの種類に応じた拡張子を設定することも可能です。これにより、よく使うファイルをまとめて、便利な場所に整理できます。プロジェクトのフォルダは仮想的なものであり、サーバー上のファイルの階層構造と必ずしも一致する必要はありません。

また、各フォルダに対して異なるXSL変換パラメータを設定することも可能です。これにより、同じ物理ファイルが複数のプロジェクトフォルダに格納されるようになります。これは、データを1つのXMLファイルに保持し、異なるXSLスタイルシートを使用して異なる出力結果を得たい場合に特に役立ちます。そして、XMLSpyのプロジェクト管理機能は、ほとんどのソースコード管理システムと連携しています。

はい、それでは[XSDファイルの生成](https://www.altova.com/ja/xmlspy-xml-editor/xsd-to-xml)に戻ります。まず、プロジェクトメニューから「新規プロジェクト」を選択します。XMLSpyは、さまざまなファイルタイプに対応したフォルダを含む、基本的なプロジェクトを作成します。必要に応じて、カスタムフォルダを簡単に追加できます。受信したファイルをこの新しいプロジェクトに追加するには、XMLファイルフォルダを右クリックし、「ファイルの追加...」を選択します

![XMLプロジェクトの作成](https://lh3.ggpht.com/-CU_6VD_ekWM/UP6ivUhf0nI/AAAAAAAAATE/NjKHHB7Ms7Q/clip_image001_thumb.png?imgmax=800 "Creating an XML Project")

...そして、ウェブサイトで使用するXMLファイルを検索して選択します。この段階で、プロジェクトに分かりやすい名前を付けて保存することをお勧めします。また、この操作によって、新たにプロジェクトに追加されたファイルとの関連付けも保存されます。

![XMLプロジェクト](https://lh5.ggpht.com/-V3GvW60FxRw/UP6iwRG9DuI/AAAAAAAAATU/nm9geL3zWhA/clip_image002_thumb.png?imgmax=800 "XML Project")

さて、あとはXMLファイルフォルダを右クリックし、「DTD/スキーマの生成...」を選択するだけです。その後、設定可能なオプションを確認したり、必要に応じて更新してください。

![XMLSpyにおけるXSDからXMLへの変換機能](https://lh3.ggpht.com/-tqOErpnsdVo/UP6ixFWQwAI/AAAAAAAAATk/1TCQL6s_ubM/clip_image003_thumb.png?imgmax=800 "Generate XSD Dialog")

この操作を行うと、フォルダに含まれるすべてのXMLファイルに基づいてXSD（XMLスキーマ定義）が生成されます。OKをクリックすると、自動生成されたXMLスキーマを保存するかどうかを尋ねるプロンプトが表示され、[グラフィカルなXMLスキーマ表示画面](https://www.altova.com/ja/xml-schema-editor.html)が開きます。以下に、XMLインスタンスファイルに基づいて生成されたグローバル要素を示します

![複数のXMLデータに基づいて生成されたXSDスキーマ](https://lh6.ggpht.com/-5xXyRqVd_jo/UP6ixwkADUI/AAAAAAAAAT0/UQ5bJfBpFaY/clip_image004_thumb.png?imgmax=800 "Schema Globals")

要素の横にある木のアイコンをクリックすると、詳細なコンテンツモデルが表示されます。

![編集可能なXSDコンテンツモデル](https://lh4.ggpht.com/-V7dptViaW9w/UP6iypwrRqI/AAAAAAAAAUE/RI7IL9P1Ojg/clip_image005_thumb.png?imgmax=800 "XSD Content Model")

[XSDエディタ](https://www.altova.com/ja/xmlspy/xsd-editor.html)のグラフィカルなデザインにより、必要に応じてこのスキーマを容易に調整および編集することができます。

それだけです。数回の簡単な手順で、一連のデータファイルに基づいて、有効なスキーマが生成されます。

XMLSpyのどのような機能が、日々の業務をより効率的にしてくれるでしょうか？あるいは、もし追加してほしい機能があれば、ぜひ教えてください。皆様からのご意見をお待ちしております。ぜひ、以下にコメントを残してください！
