XSDジェネレーター(XMLからXMLスキーマへ)
1つ以上のXMLサンプルからXMLスキーマ(XSD)を生成します。要素の構造、minOccurs/maxOccurs、必須属性、推定した単純型までまとめて出力します。
サンプルから推定したスキーマは、サンプルに現れた内容しか分かりません。minOccurs・必須属性・型を確認し、データに決まりがある場合は列挙・パターン・範囲を追加してください。
XMLスキーマ(XSD)は、XML文書にどの要素・属性を、何回、どんな順序と型で書けるかを定義するものです。検証ツール、コード生成ツール、連携先がXSDを求めることは多いのですが、ゼロから書くのは手間がかかります。サンプル文書を1つ以上貼り付けるだけで、要素と入れ子、順序、サンプルから読み取ったminOccurs・maxOccurs、必須・任意の属性、値から推定した単純型を含むXSDのたたき台を作成します。入れ子型(ロシアンドール)と名前付き型(ベネチアンブラインド)から選べます。
使い方
- サンプル文書を貼り付けます。任意の要素や繰り返しの要素を反映するには、--- だけの行で区切って複数貼り付けます。
- ロシアンドール(入れ子の宣言1つ)かベネチアンブラインド(再利用できる名前付き複合型)を選びます。
- 単純型を推定するか、xs:stringのままにするかを決めます。
- XSDをコピーし、列挙・パターン・長さ・範囲などを手作業で追加して仕上げます。
計算式
すべての親に要素がある → minOccurs 1 · どこかで欠けている → minOccurs="0" · 1つの親に2回以上 → maxOccurs="unbounded" · すべての要素に属性がある → use="required"
単純型は、true/falseならxs:boolean、整数ならxs:integer、小数ならxs:decimal、実在する日付のISO 8601形式ならxs:dateまたはxs:dateTime、それ以外はxs:stringです(値が空のこともある場合もxs:string)。属性とテキストを併せ持つ要素にはsimpleContentを使い、常に空の要素には空のcomplexTypeを付けます。子要素の出現順が異なる場合はxs:all、繰り返しが混在する場合はunbounded xs:choiceを使います。ルートの名前空間はtargetNamespaceになります。
計算例
サンプルのcatalogからは、<xs:element name="catalog">の中にmaxOccurs="unbounded"のbookが作られます。各bookには必須のidと任意のlang属性があり、titleはxs:string、priceはbaseがxs:decimalで必須のcurrency属性を持つsimpleContent、publishedは最初のbookにしかないためminOccurs="0"のxs:dateです。tagはminOccurs="0"、maxOccurs="unbounded"のxs:stringです。
よくある質問
生成されたスキーマはそのまま使えますか?
いいえ。スキーマはルールではなくサンプルを説明したものです。たまたまサンプルのすべてにあった項目は必須になり、値の型もサンプルが許す範囲でごく一般的になります。連携先に渡す前に必ず確認してください。
ロシアンドールとベネチアンブラインドはどちらがよいですか?
ロシアンドールはすべての宣言を親の中に入れ子にするため、簡潔で読みやすい形式です。ベネチアンブラインドは複合型ごとに名前を付けるので再利用・拡張ができ、大きなスキーマやコード生成ツールに向いています。
ここでXMLをXSDで検証できますか?
まだできません。このサイトでは、XML検証ツールで整形式かどうかを確認できます。XSDによる検証には、xmllint --schema、IDE、お使いのプラットフォームの検証機能を使ってください。
XMLはアップロードされますか?
いいえ。スキーマはブラウザ内で生成されます。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/xsd-generator/
このツールを引用する
kakaoCalc. (2026, November 8). XSDジェネレーター(XMLからXMLスキーマへ). https://kakao.mobile/ja/tools/xsd-generator/
“XSDジェネレーター(XMLからXMLスキーマへ).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/xsd-generator/.