完全な文書を追加する
1サンプルにつきXMLのルートは1つです。空の追加欄は無視されます。2つ目の文書があれば、最初の文書では分からない省略可能な子要素や属性を見つけられます。
XMLツール
2つ目のXML文書を加え、省略可能になる項目を比べてください。
サンプルはこのブラウザー内で処理します。ローカルファイルは送信しません。
結果が古いため書き出せません。
連携先からXMLの実例だけが届き、仕様書がない場合にXMLからXSDを生成すると、観測した構造を整理できます。ただし実例にない分岐まで断定することはできません。
XSD自動生成の結果はすべての入力サンプルで検査します。兄弟要素の順序や名前空間を正しく表せない場合は、もっともらしいスキーマを返さずエラーにします。
同じルートの2文書で一方だけに項目があれば、XMLからXSDを生成した草案ではminOccurs=0になります。同じ親の下で繰り返す要素にはmaxOccurs=unboundedを付けます。見ていない分岐は推測しません。
顧客のnameと商品のnameは別の構造を持てます。親の位置ごとに局所宣言を作り、最初の文書だけでなく全入力でスキーマを検査します。
1サンプルにつきXMLのルートは1つです。空の追加欄は無視されます。2つ目の文書があれば、最初の文書では分からない省略可能な子要素や属性を見つけられます。
Smartは真偽値、数値、ISO形式の日付を控えめに推定します。001のようなコードを含め常に文字列にしたければStringに変更します。自動生成は400ms待機し、停止後はCtrl/Cmd+Enterで実行できます。
成功はXSD 1.0としてコンパイルでき、入力した各文書が通ることを意味します。minOccurs、maxOccurs、型、xs:sequenceの順序を業務仕様と照合してください。
XMLスキーマ作成では同じルートの文書を統合します。親が存在しても子が欠ける例は任意となり、同じ親の下で繰り返した子は最大回数を広げます。属性も観測した有無で判断します。
XMLからスキーマ定義を作る際、明らかな真偽値、整数、小数、ISO日付だけを型付けします。空値や形式の衝突、先頭が0の識別子はxs:stringに戻します。
局所宣言で異なる親の同名要素を混同しません。ブラウザーのワーカーがXSDをコンパイルし、すべてのサンプルを通した後に完全な内容をコピーまたは保存できます。
はい。完全なXMLを貼り付けるかローカルファイルを読み込みます。XMLからXSDを生成した後、同じルートの別文書も加えると省略や繰り返しを観測できます。
同じ親の例のうち、その子を持たないものがあればminOccurs=0を付けます。全例で存在していても業務上必須とは限りません。
同じ親の下で同名要素が複数回あればmaxOccurs="unbounded"にします。実例から厳密な上限は分からないので必要なら後で絞ってください。
Smartは分かりやすい値だけ推定します。001など先頭が0のコードは文字列です。識別子を必ず文字列にしたければStringを選びます。
入力した全例は検証しますが、未出現の分岐、列挙値、業務上の範囲は証明できません。別の文書でも試し、契約内容に合わせて編集してください。
推定結果が気になりますか?