Я создал подкласс RestDatasource для создания собственного источника данных.Это конструктор моего источника данных
public CustomDS (){
setDataProtocol(DSProtocol.POSTMESSAGE);
setDataFormat(DSDataFormat.XML);
DataSourceTextField firstNameField = new DataSourceTextField("firstName", "First Name");
DataSourceTextField lastNameField = new DataSourceTextField("lastName", "Last Name");
DataSourceTextField userIDField = new DataSourceTextField("id", "User ID");
setFields(firstNameField, lastNameField, userIDField);
setXmlRecordXPath("/qm:GetResultsResponse/*");
XmlNamespaces ns = new XmlNamespaces();
ns.addNamespace("qm", "someurl");
setXmlNamespaces(ns);
}
Это ответ xml
<?xml version="1.0" encoding="UTF-8"?>
<qm:GetResultsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:qm="someurl" xmlns:warehouse="someurl">
<records xsi:type="warehouse:User" id="id1" firstName="fname1" lastName="Reddy">
<voiceUserProperties languageId="en-US"/>
</records>
<records xsi:type="warehouse:User" id="id2" firstName="fname3" lastName="Reddy">
<voiceUserProperties languageId="en-US"/>
</records>
<records xsi:type="warehouse:User" id="id3" firstName="fnam4" lastName="Reddy">
<voiceUserProperties languageId="en-US"/>
</records>
</qm:GetResultsResponse>
ВОПРОС
В методе transformResponse () response.getDataAsRecordList (). GetLength () возвращает 3, но я не могу заполнить записи необходимыми атрибутами (то есть firstName, id, lastName).Кто-нибудь видит здесь что-то не так?
РЕДАКТИРОВАТЬ: Как и предполагалось, я изменил источник данных для расширения из DataSource, а не RestDataSource.У меня все еще есть эта проблема.Если я удалю xsi: type = "warehouse: User" из XML, это работает нормально.Есть идеи по этому поводу?