こんにちは、XML 入力ファイルの構造を知らずに XML 入力ファイルを解析し、コンマ区切り値で値を出力する一般的なコードを Java で作成しました。したがって、XML ドキュメントに次のようなものがあるとしましょう。
<Employee>
<Name>XYZ</Name>
<Id>123</Id>
<Address>
<Office_Address>office address here</Office_Address>
</Address>
</Employee>
したがって、私のJavaコードは上記のxmlファイルを次のようにコンマ区切りの値に解析します。
Employee (File 1): Name , ID
Address (File 2): Office_Address
つまり、ネストされた要素ごとに、子ノードに等しい列を持つ新しい csv ファイルが出力されます。
したがって、これは正常に機能していますが、問題は次のとおりです。上記のXMLファイルを次のように使用できます。
<Employee>
<Name>XYZ</Name>
<Id>123</Id>
<Address/>
</Employee>
したがって、この場合、私の汎用 Java コードがこのファイルを処理すると、次のように出力されます。
Employee (File 1) : Name, Id, Address
そのため、2 つの出力ファイルの代わりに 1 つを取得し、ファイル 1 には 2 つではなく 3 つのエントリが含まれることがあります。したがって、ネストされている場合、Java コードはそれに対応する新しいコンマ区切りを作成しますが、ネストされていない場合は、1 つのファイルのみを出力します。
この要素のロジックをハードコーディングすることで、この問題を解決できます。しかし、私の Java 汎用 XML 構文解析コードには意味がないので、そうしたくありません。
だから私の質問は、同じソースから生成された XML ファイル内の要素がネストされ、時にはフラットとして存在する可能性があることを理解できる方法です。XSD またはその他の方法の使用。いろいろ調べてみましたが、さっぱりわかりません。
事前に感謝し、解決策またはいくつかの良い提案を得ることを望んでいます.