なぜ XSD を DTD に変換するのですか?
DTD は XML 用の古いスキーマ形式で、1986 年に SGML と共に導入され、1998 年に XML に採用されました。XSD から .dtd への変換は、XSD 以前のレガシーシステムで DTD によるバリデーションしか受け付けない場合にのみ価値があります。それ以外のケースでは、XSD の方が圧倒的に高機能です。
XSD から DTD への変換方法
Oxygen XML Editor APP
.xsd を開き、「ツール」>「スキーマの生成/変換」に移動し、出力形式として DTD を選択、出力先の場所を指定して OK をクリックします。変換レポートを確認し、変換できなかった機能を確認してください。
Saxon FREE
xs:element 宣言をターゲットとするカスタム XSLT スタイルシートを Saxon で .xsd に対して実行します。この方法では XSD の一部の機能しかカバーできず、出力には手動でのクリーンアップが必要です。
これらの形式について
XSD ファイルは XML Schema Definition(XML スキーマ定義)であり、特定の XML ドキュメントに含めることができる内容のルールを設定するテキストファイルです。任意のテキストエディタで開くことができますが、構文のハイライトや検証を行うには、XML 拡張機能を備えた Visual Studio Code で開くのが最適です。XSD…
.XSD の詳細を開く →DTD ファイルは Document Type Definition(文書型定義)の略で、XML または SGML ドキュメントで許可される要素、属性、および入れ子のルールを指定するプレーンテキストのスキーマです。Notepad++、VS Code などのテキストエディタ、または Oxygen XML Editor のような専用の XML エディタで開くことができます。新しい…
.DTD の詳細を開く →品質と注意点
- DTD にはデータ型がありません。すべての
xs:string、xs:integer、パターン制限、値の制約は、出力では単純な#PCDATAまたはCDATAになります。 - 名前空間は破棄されます。XSD が
targetNamespaceを使用していたり、複数の名前空間をインポートしていたりしても、DTD の出力にはそれらは残りません。 - 現在、信頼性の高い XSD から DTD への変換を行える無料のスタンドアロンツールはメンテナンスされていません。Oxygen XML Editor(有料、試用版あり)が現実的な選択肢です。