В моем Java-приложении я обрабатываю сообщения request
и confirmed
очереди.Поля, которые я сопоставляю с моей объектной моделью Java, идентичны в обоих сообщениях.Например:
Запрос:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<request>
<trade id = "XXX">
<tradeHeader>
...
<tradeDate>2019-09-20</tradeDate>
</tradeHeader>
<repo>
...
<bond id="ISIN">
<instrumentId>
GB00BXXX
</instrumentId>
</bond>
</repo>
</trade>
</request>
Подтверждено:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<confirmed>
<trade id = "XXX">
<tradeHeader>
...
<tradeDate>2019-09-20</tradeDate>
</tradeHeader>
<repo>
...
<bond id="ISIN">
<instrumentId>
GB00BXXX
</instrumentId>
</bond>
</repo>
</trade>
</confirmed>
Для каждого интересующего меня поля у меня есть реализации, предоставляющие выражение XPath
извлечь данные из XML.Например:
public class InstrumentIdParser extends SomeMessageMapper {
private static final String ID_XPATH = ""; // This is where I need some help with :)
//Constructor
@Override
public JavaObjectModel parse(final String payload,
final JavaObjectModel model) {
final String id = parse(payload);
return JavaObjectModel(model)
.build();
}
@Override
protected String getExpression() {
return ID_XPATH;
}
}
Я хочу использовать тот же самый маппер, что и для обработки сообщений request
, а также confirmed
.Что бы было выражением XPath
, которое мне нужно было бы использовать, чтобы пропустить корни request
и confirmed
, поэтому для получения значения <instrumentId>
?