要素の値に適切に閉じられていないタグ要素があるため、xml を非整列化しようとすると saxparser 例外が発生しました。それは私が取得し、処理しなければならないものです。
サンプルxmlは次のとおりです-
<GetResultResponse>
<ExecutionID>17716868</ExecutionID>
<Device>STLMJWB</Device>
<Status>Success</Status>
<ResultSet>
<Command>RTRV-ALM-ALL:STLMJWB0201000003FIS:ALL:<ctag=dq>;</Command>
<CommandType>Raw</CommandType>
<commandResult>Success</commandResult>
<ResultSet>
</GetResultResponse>
上記のxmlには、コマンドの値として他の文字列が含まれており、タグが適切に閉じられていないため、次の例外が発生します-
[org.xml.sax.SAXParseException; 行番号: 1; 列番号: 212; 要素タイプ「ctag」の後には、属性指定「>」または「/>」が続く必要があります。]
unmarshall への xml 入力は、文字列リーダーとして供給されます
StringReader sr = new StringReader("ABOVE XML");
unmarshaller.unmarshal(sr);
GetResultResponse 用と ResultSet 用の 2 つのクラスがあります。
私が整理しようとしたこと - 1. CharacterEscapeHandler - マーシャラーのみがこれを受け入れるため、このプロパティをアンマーシャラーに割り当てたときにエラーが発生しました。2. XmlJavaTypeAdapter - アンマーシャリングは、アダプタから値を処理して返す前に発生します。3. BeforeUnmarshall - リスナーを unmarshaller に設定します。コマンドに対して null を返します。4. XmlMixed および XmlAnyElement - 適切な終了タグが必要です。
ご不明な点がございましたら、お知らせください。前もって感謝します