XML スキーマ (XSD) が事前に定義されていない XML ファイルが何百もあります。これらのファイルの 1 つからツール (IntelliJ Idea) を使用して XSD を生成することができましたが、どの要素と属性がオプションでどれが必須であるかを認識するほどスマートではありません。
これを自動化する 1 つの方法は、次のヒューリスティックを使用して、複数の XML ファイルから XSD をリバース エンジニアリングすることです。
属性/要素は、発生する場合と発生しない場合がある場合、オプション(
use="optional"
/ ) です。minOccurs=0
それ以外の場合は必須です(use="required"
/minOccurs=1
)。
明らかに、このヒューリスティックは、単一の XML ファイルに対しても機能します (この XML が十分に代表的である場合)。
たとえばflightNumber
、次の入力が与えられた場合、 a はオプションと見なされます。
<list>
<carrier name="BA" flightNumber="213" />
<carrier name="CY" />
</list>
XSD を生成し、属性/要素がオプションかどうかを認識するツールを知っていますか?