내 데이터 소스를 만들려면 RestDatasource의 하위 클래스를 만들었습니다. 이것은 이것은 transformResponse() 메소드 XML 응답데이터 레코드에 대한 XML 응답 매핑 (Smartgwt)
<?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>
질문
가
내 데이터 소스
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);
} 생성자이다 response.getDataAsRecordList() .getLength() 3 반환하지만 레코드가 필요한 특성 (예 : firstName, id, lastName 채워진 것 같습니다.). 아무도 여기에 뭐가 잘못 보이니?
EDIT : 데이터 소스가 RestDataSource가 아닌 DataSource에서 확장되도록 변경된 것이 좋습니다. 나는 아직도이 문제가있다. XML에서 xsi : type = "warehouse : User"를 제거하면 정상적으로 작동합니다. 이것에 대한 아이디어가 있습니까?