0

外部Webサービスから返されたXMLをアンマーシャリングするためのXSDファイルが提供されました。

受け取ったXMLをJAXBクラスにアンマーシャリングすることができます。しかし、生成されたJAXBクラスの構造の深さのために、値を取得するときにコードをnullチェックする方法がわかりません。

学生の名前を取得する例、コードは次のとおりです-

jaxbResponse.getStudentDetails().get(0).getStudent().get(0).getName().get(0).getGivenName();

このコードが返すリストをnullチェックしてインデックスチェックする必要がある場合は、非常に面倒になります。

これは単なる例です。上記のコードと同様のコードで約50個のパラメーターを取得する必要があります。NullPointerExceptionまたはIndexOutofBoundsExceptionがいつ発生するかわかりません。

JaxBクラスを使用するのは初めてですが、助けが必要です。

前もって感謝します。

4

1 に答える 1

0

例のパターンは、単純なものから生成されたリストのように見えます。<xs:element minOccurs="{something}" maxOccurs="unbounded">この場合、リストを取得することはできません(ただし、が0nullの場合は空のリストを取得する可能性があります) 。また、リストから値を取得することもありません。nullについて心配する必要があるのは、またはスキーマが要素をnillableとして宣言している場合のみです。minOccursnull@XmlElementWrapper

スキーマや生成されたクラス(少なくともそこからの抜粋)を確認せずに、より具体的にすることはできません。

于 2012-10-01T07:27:02.770 に答える