Функция LoadXMLString в коде людей не работает должным образом

Я работаю с внешней службой, которая возвращает XML, который точно соответствует XML, сгенерированному в результате операции службы в PeopleSoft. Поэтому я использовал функцию loadXMLStrin, как указано ниже. Но в набор строк копируется только одно поле. Я не знаю, что случилось.

Вот код.

&msgAddrResp = CreateMessage(Operation.FG_ADDR_RESP);
  &msgAddrResp.LoadXMLString(&sXML);

  &rsFgAddrStndRespWr = &msgAddrResp.GetRowset();

Вот XML

<?xml version="1.0"?>
<FG_ADDR_RESP2>
<FieldTypes>
<FG_ADDR_RESP_WR class="R">
<cmid type="NUMBER"/>
<AddressLine1 type="CHAR"/>
<City type="CHAR"/>
<State type="CHAR"/>
<PostalCode type="CHAR"/>
<TimeZone type="CHAR"/>
<InCityLimit type="CHAR"/>
</FG_ADDR_RESP_WR>
<PSCAMA class="R">
<LANGUAGE_CD type="CHAR"/>
<AUDIT_ACTN type="CHAR"/>
<BASE_LANGUAGE_CD type="CHAR"/>
<MSG_SEQ_FLG type="CHAR"/>
<PROCESS_INSTANCE type="NUMBER"/>
<PUBLISH_RULE_ID type="CHAR"/>
<MSGNODENAME type="CHAR"/>
</PSCAMA>
</FieldTypes>
<MsgData>
<Transaction>
<FG_ADDR_RESP_WR class="R">
<cmid IsChanged="Y">0</cmid>
<AddressLine1 IsChanged="Y">xxxxx<AddressLine1/>
<City IsChanged="Y">xxxxxxxxx<City/>
<State IsChanged="Y">xx<State/>
<PostalCode IsChanged="Y">xxxxxxx<PostalCode/>
<TimeZone IsChanged="Y">xxx<TimeZone/>
<InCityLimit IsChanged="Y">x<InCityLimit/>
</FG_ADDR_RESP_WR>
<PSCAMA class="R">
<LANGUAGE_CD>ENG<LANGUAGE_CD/>
<AUDIT_ACTN><AUDIT_ACTN/>
<BASE_LANGUAGE_CD>ENG<BASE_LANGUAGE_CD/>
<MSG_SEQ_FLG><MSG_SEQ_FLG/>
<PROCESS_INSTANCE>0</PROCESS_INSTANCE/>
<PUBLISH_RULE_ID><PUBLISH_RULE_ID/>
<MSGNODENAME><MSGNODENAME/>
</PSCAMA>
</Transaction>
</MsgData>
</FG_ADDR_RESP2>

person Sat    schedule 19.02.2014    source источник


Ответы (1)


Проблема была в XML. Он не был должным образом структурирован. Я изменил структуру, и теперь она работает.

Благодарю вас.

person Sat    schedule 26.02.2014