JSON → XSD

JSON から XML Schema (XSD) 定義ジェネレーター 開発者ガイド

サンプルJSONからXMLスキーマ定義(XSD)の型構造、複合要素(complexType)、属性、出現頻度(minOccurs/maxOccurs)を高精度に自動推論。

設計パターン
入力 JSON ドキュメント
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="https://schema.toolsaa.com/v1"
  xmlns="https://schema.toolsaa.com/v1"
  elementFormDefault="qualified">

  <!-- Top-Level Root Element Declaration -->
  <xs:element name="purchaseOrder" type="PurchaseOrderType"/>

  <!-- Reusable Global Complex Types (Venetian Blind Pattern) -->
  <xs:complexType name="PurchaseOrderType">
    <xs:sequence>
      <xs:element name="orderDate" type="xs:dateTime"/>
      <xs:element name="deliveryDate" type="xs:date"/>
      <xs:element name="status" type="xs:string"/>
      <xs:element name="customer" type="CustomerType"/>
      <xs:element name="lineItems" type="LineItemsType" maxOccurs="unbounded"/>
      <xs:element name="paymentSummary" type="PaymentSummaryType"/>
    </xs:sequence>
    <xs:attribute name="orderNumber" type="xs:string" use="required"/>
    <xs:attribute name="currency" type="xs:string" use="required"/>
    <xs:attribute name="version" type="xs:string" use="required"/>
  </xs:complexType>

  <xs:complexType name="CustomerType">
    <xs:sequence>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="email" type="xs:string"/>
      <xs:element name="vatNumber" type="xs:string"/>
      <xs:element name="isTaxExempt" type="xs:boolean"/>
      <xs:element name="addresses" type="AddressesType" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="LineItemsType">
    <xs:sequence>
      <xs:element name="sku" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="quantity" type="xs:int"/>
      <xs:element name="unitPrice" type="xs:decimal"/>
      <xs:element name="taxRate" type="xs:decimal"/>
      <xs:element name="inStock" type="xs:boolean"/>
      <xs:element name="tags" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PaymentSummaryType">
    <xs:sequence>
      <xs:element name="subtotal" type="xs:int"/>
      <xs:element name="taxTotal" type="xs:decimal"/>
      <xs:element name="shippingFee" type="xs:int"/>
      <xs:element name="grandTotal" type="xs:decimal"/>
      <xs:element name="paymentMethod" type="xs:string"/>
      <xs:element name="paid" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AddressesType">
    <xs:sequence>
      <xs:element name="type" type="xs:string"/>
      <xs:element name="street" type="xs:string"/>
      <xs:element name="city" type="xs:string"/>
      <xs:element name="state" type="xs:string"/>
      <xs:element name="postalCode" type="xs:string"/>
      <xs:element name="country" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>
推論された要素数
27 Elements (3 Unbounded)
複合型および単純型
5 Complex, 3 Attributes
W3C XSD 仕様準拠
W3C XML Schema 1.0 (Strict AST)
100% クライアント側プライバシー

JSONの解析、型推論、XSDの生成はすべてブラウザ内部で完結し、外部サーバーへの通信は一切行われません。

マルチデザインパターン対応

Venetian Blind(再利用可能な名前付き型)、Russian Doll(入れ子型)、Salami Slice(グローバル要素参照)を自在に切り替え可能。

高度な W3C 型推論エンジン

xs:dateTime、xs:date、xs:anyURI、xs:decimal、xs:integerを的確に判定し、@接頭辞による属性自動判定も完備。

技術リファレンス&アーキテクチャガイド

JSON から XML Schema (XSD) 定義ジェネレーター 開発者ガイド — リファレンスガイド

サンプルJSONからXMLスキーマ定義(XSD)の型構造、複合要素(complexType)、属性、出現頻度(minOccurs/maxOccurs)を高精度に自動推論。

主要パラメータ&設定項目

designPatternstring

W3C XSD 設計モデリングパターン:'venetian-blind'(名前付き再利用可能型)、'russian-doll'(入れ子型無名複合型)、'salami-slice'(全要素グローバル宣言)。

初期値: venetian-blind
rootElementNamestring

生成されるスキーマにおける最上位XMLルート要素の要素名。

初期値: purchaseOrder
targetNamespacestring

xs:schema に付与されるXML名前空間URI識別子(targetNamespace属性)。

初期値: https://schema.toolsaa.com/v1
cardinalityRulestring

要素の出現頻度ルール:'auto'(配列やnullからminOccurs/maxOccursを自動推論)、'strict'(minOccurs=1を強制)、'flexible'(minOccurs=0を許容)。

初期値: auto
detectAttributesboolean

'@' や '_' で始まるJSONプロパティキーを、子要素ではなく xs:attribute(XML属性)として自動マッピング。

初期値: true
detectDateUriboolean

ISO 8601形式の日時文字列やURLを検知し、汎用xs:stringではなくxs:dateTime、xs:date、xs:anyURIとして型付け。

初期値: true

プロの活用テクニック&推奨設定

コード生成に最適な Venetian Blind パターン

JavaのJAXB(xjc)や.NETのxsd.exeでモデルクラスを自動生成する場合、Venetian Blind パターンを選択してください。無名内部クラスではなく、名前付きの独立したクラスや構造体が生成されるため、保守性が飛躍的に向上します。

@ 接頭辞を活用した XML 属性のスマート設計

ID、通貨コード、バージョン番号などのメタデータには、JSONキーに '@'(例: '@id', '@currency')を付与してください。これにより、業務データは <xs:element>、メタデータは <xs:attribute> として正確に構造化されます。

配列サンプルの網羅性による高精度な maxOccurs 推論

配列フィールドには、すべての想定プロパティを含む代表的な要素をサンプルに含めてください。配列を検知すると自動的に maxOccurs="unbounded" および minOccurs="0" が設定され、空配列や複数要素に対応する安全なスキーマが生成されます。

elementFormDefault="qualified" による名前空間の衝突防止

elementFormDefault を 'qualified' に設定しておくことで、子要素もターゲット名前空間に属することが明示され、エンタープライズESBやSOAPゲートウェイ間での検証エラーを未然に防ぐことができます。

よくあるトラブルと解決策

XMLインスタンスで要素の出現順序によるバリデーションエラーが発生する

W3C XSD の xs:sequence はスキーマで定義された厳格な要素順序を要求します。XMLデータ生成時にキー順序が一致していることを確認するか、順不同を許容する必要がある場合は xs:all への変更を検討してください。

ISO形式の日時文字列が xs:dateTime ではなく xs:string に推論される

日時文字列が ISO 8601 規格(例: '2026-10-16T14:30:00Z' や '2026-10-16')に厳密に準拠しているか確認してください。スラッシュ区切りなどの非標準フォーマットは汎用文字列型へフォールバックします。

空配列 [] や null 値により型が未定義(xs:anyType)になる

空の配列からは内部要素のデータ構造を特定できません。入力JSONの配列内に、すべての必須フィールドと任意フィールドを含むオブジェクトを1つ以上配置してから推論を実行してください。

よくある質問 (FAQ)

Venetian Blind、Russian Doll、Salami Slice 設計パターンの違いは何ですか?▼

Venetian Blind は単一のグローバルルート要素と名前付きグローバル複合型(complexType)を定義し、オブジェクト指向のコード生成に最適です。Russian Doll は要素内部に無名型を入れ子にし、型を外部から隠蔽します。Salami Slice は全要素をグローバル定義して参照(ref)するため、コンポーネントの再利用性が高い反面、すべての要素がルート要素になり得ます。

JSONキーからXML属性(attribute)と子要素(element)をどのように区別しますか?▼

「detectAttributes」が有効な場合、'@'(例: '@orderId')または '_'(例: '_version')で始まるプロパティキーは自動的に親複合型の <xs:attribute> として宣言されます。通常のキーは <xs:element> 子要素として生成されます。

生成された XSD スキーマは JAXB(xjc)や .NET xsd.exe で直接コンパイルできますか?▼

はい。出力は W3C XML Schema 1.0 仕様に100%完全準拠しています。Java の 'xjc -d src schema.xsd' や .NET の 'xsd.exe schema.xsd /classes' にそのまま入力して型安全なクラスコードを生成可能です。

JSON のプリミティブ型は W3C XSD のどの組み込み型に対応しますか?▼

整数値は xs:integer(大きな値は xs:long)、小数値は xs:decimal、真偽値は xs:boolean、ISO形式の日時は xs:dateTime または xs:date、URIは xs:anyURI に自動マッピングされ、通常のテキストは xs:string になります。

入力した JSON ペイロードが外部サーバーや AI API に送信されることはありますか?▼

いいえ。AST構文解析、セマンティック型推論、XSDスキーマ構築の全処理は、ブラウザのローカルJavaScriptエンジン上で100%完結します。データが外部へ送信されることは一切ありません。

関連するおすすめ開発ツール

すべてのツール →
インタラクティブ .gitignore ファイル生成ツール (Node, Python, Go, Rust, Java) 開発者ガイドdeveloper

OS、IDE、および50以上の主要プログラミング言語の除外ルールを組み合わせ、包括的な .gitignore テンプレートを瞬時に生成します。

ツールを開く→
Crontab構文&Quartzスケジュール式 チートシートdeveloper

5フィールドPOSIX規格および6フィールドQuartz形式のcron式完全リファレンス。特殊マクロ、実行周期計算、多重起動防止策を徹底解説。

ツールを開く→
JavaScript正規表現(RegEx)構文仕様・チートシートdeveloper

ECMAScript準拠の正規表現構文、キャプチャグループ(名前付き・非キャプチャ)、置換トークン($1, $&)、先読み・後読みの技術解説。

ツールを開く→
URLエンコード・デコードツールdeveloper

RFC 3986厳格規格、encodeURIComponent、encodeURI、formUrlEncodedに対応した高速・安全な双方向URL変換ツール。

ツールを開く→
HTML実体参照エンコード・デコードツールdeveloper

名前付き実体参照、10進数参照、16進数参照を相互変換し、XSS攻撃を防ぎ特殊記号を正しく表示する高速エスケープツール。

ツールを開く→
Unix時間戳&エポック時刻相互変換 チートシートdeveloper

POSIXエポック秒(1970年1月1日基準)の秒・ミリ秒・マイクロ秒・ナノ秒相互変換、タイムゾーン計算、ISO 8601フォーマット、2038年問題の完全ガイド。

ツールを開く→