XML スキーマ定義ツール (Xsd.exe)

XML スキーマ定義ツールは、XDR、XML、XSD の各ファイル、またはランタイム アセンブリ内のクラスから XML スキーマ クラスまたは共通言語ランタイム クラスを生成します。

xsd file.xdr [/outputdir:directory]
xsd file.xml [/outputdir:directory]
xsd file.xsd {/classes | /dataset} [/element:element]
             [/language:language] [/namespace:namespace]
             [/outputdir:directory] [URI:uri]
xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]]
引数 説明
file.extension 変換元の入力ファイル。extension として、.xdr、.xml、.xsd、.dll、または .exe のいずれかを指定する必要があります。

XDR スキーマ ファイル (拡張子 .xdr) を指定すると、XDR スキーマが XSD スキーマに変換されます。出力ファイルの名前は XDR スキーマと同じですが、拡張子は .xsd となります。

XML ファイル (拡張子 .xml) を指定すると、そのファイル内のデータからスキーマを推測して XSD スキーマを生成します。出力ファイルの名前は XML ファイルと同じですが、拡張子は .xsd となります。

XML スキーマ ファイル (拡張子 .xsd) を指定すると、XML スキーマと対応するランタイム オブジェクト用のソース コードが生成されます。

ランタイム アセンブリ ファイル (拡張子 .exe または .dll) を指定すると、そのアセンブリに含まれる 1 つ以上の型用のスキーマが生成されます。/type オプションを使用して、スキーマを生成する対象の型を指定できます。出力スキーマには、schema0.xsd、schema1.xsd などの名前が付けられます。Xsd.exe が複数のスキーマを生成するのは、指定した型によって、カスタム属性 XMLRoot を使用した名前空間が特定される場合に限られます。

一般オプション

オプション 説明
/h[elp] このツールのコマンド構文とオプションを表示します。
/o[utputdir]:directory 出力ファイル用のディレクトリを指定します。この引数は 1 回だけ指定できます。既定値は、現在のディレクトリです。
/? このツールのコマンド構文とオプションを表示します。

XSD ファイルのオプション

.xsd ファイルについては、次のオプションのうち 1 つだけを指定する必要があります。

オプション 説明
/c[lasses] 指定したスキーマと対応するクラスを生成します。XML データをオブジェクトに読み込むには、System.XML.Serialization.XMLSerializer.Deserializer メソッドを使用します。
/d[ataset] 指定したスキーマと対応する DataSet から派生したクラスを生成します。XML データを派生クラスに読み込むには、メソッド System.Data.DataSet.ReadXml を使用します。

.xsd ファイルについては、次のオプションのうち任意のオプションを指定できます。

オプション 説明
/e[lement]:element コードを生成する対象とする、スキーマ内の要素を指定します。既定では、すべての要素が指定されます。この引数は 1 回以上指定できます。
/l[anguage]:language 使用するプログラミング言語を指定します。CS (C#、既定値)、VB (Visual Basic)、JS (JScript)、または VJS (Visual J#) から選択します。System.CodeDom.Compiler.CodeDomProvider を実装するクラスの完全限定名も指定できます。
/n[amespace]:namespace 生成する型のランタイム名前空間を指定します。既定の名前空間は Schemas です。
/u[ri]:uri コードを生成する対象とする、スキーマ内の要素の URI を指定します。指定した場合、この URI は /element オプションに指定したすべての要素に適用されます。

DLL ファイルと EXE ファイルのオプション

オプション 説明
/t[ype]:typename スキーマの作成対象とする型の名前を指定します。複数の引数 type を指定できます。typename によって名前空間が特定されない場合、指定された型を持つアセンブリに含まれるすべての型が対象となります。typename によって名前空間が特定される場合は、その型だけが対象になります。typename の末尾がアスタリスク文字 (*) の場合は、* の前にある文字列で始まる型のすべてが対象となります。/type オプションを省略すると、アセンブリに含まれるすべての型についてスキーマが生成されます。

解説

Xsd.exe は次の処理を実行します。

  • XDR から XSD へ
    XML-Data-Reduced スキーマ ファイルから XML スキーマを生成します。XDR は初期の XML ベースのスキーマ形式です。
  • XML から XSD へ
    XML ファイルから XML スキーマを生成します。
  • XSD から DataSet へ
    XSD スキーマ ファイルから共通言語ランタイムの DataSet クラスを生成します。生成されるクラスは、標準の XML データ用のリッチ オブジェクト モデルを提供します。
  • XSD からクラスへ
    XSD スキーマ ファイルからランタイム クラスを生成します。生成されたクラスを System.XML.Serialization.XMLSerializer と組み合わせて使用すると、このスキーマに従う XML コードの読み書きを実行できます。
  • クラスから XSD へ
    ランタイム アセンブリ ファイルに含まれる 1 つ以上の型から XML スキーマを生成します。生成されるスキーマは、System.XML.Serialization.XMLSerializer によって使用される XML 形式を定義します。

Xsd.exe によって操作できるのは、W3C (World Wide Web Consortium) が提唱する XSD (XML スキーマ定義) に準拠した XML スキーマだけです。XML スキーマ定義の提唱または XML 標準の詳細については、http://w3.org を参照してください。

myFile.xdr から XML スキーマを生成し、現在のディレクトリに保存するコマンドを次に示します。

xsd myFile.xdr 

myFile.xml から XML スキーマを生成し、指定したディレクトリに保存するコマンドを次に示します。

xsd myFile.xml/outputdir:myOutputDir

指定したスキーマと対応する DataSet を C# 言語で生成し、現在のディレクトリ内に XSDSchemaFile.cs として保存するコマンドを次に示します。

xsd /dataset /language:CS XSDSchemaFile.xsd

アセンブリ myAssembly.dll 内のすべての型について XML スキーマを生成し、それらを現在のディレクトリ内に schema0.xsd として保存するコマンドを次に示します。

xsd myAssembly.dll

参照

.NET Framework ツール | DataSet クラス | System.XML.Serialization.XMLSerializer.Deserializer | System.XML.Serialization.XMLSerializer