以前にも同様の状況がありましたが、xml パーサーにはいくつかの構成が必要でした。私のアプローチは、a) 解析エンジン、b) 構成でした。
構成部分は、プロパティを介して渡される XPath 式を中心に構築されます。これらは静的な XPath 式であり、入力 xml メッセージが変更された場合は更新が必要です。
解析エンジン部分は、これらの式を実行して、xml 要素、属性などをクエリし、java オブジェクトに入力します。
編集:
たとえば、特定の xml (簡略化された名前空間なし):
<msg>
<something>
<somenode>
<version>1.0.0</version>
</somenode>
</something>
</msg>
コード例: (簡略化)
String myXpExpr = "//version/text()"; // make it .properties
Document xmlDocument = DocumentBulderFactory.newInstance().newDocumentBuilder().parse(xmlInputStream);
XPath xpXPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpXPath.compile(myXpExpr);
resultObject = expr.evaluate(xmlDocument, returnTypeQName);
これにより、resultObject として「1.0.0」が得られます。