como analisar a resposta XML usando o retrofit 2.

Eu sou novo na programação do Android. Passei por alguns links sobre como analisar a resposta XML usando o retrofit e tentei o XML abaixo, como mostrad

Existe alguma alteração necessária que tenho que fazer na classe POJO. mas estou recebendo a exceção NullPointer no Logcat. quando estou tentando ler a resposta.

Pode alguém olhar e me ajudar.

sta é a minha resposta XML para a API de logi

[

Aqui está o meu código MainActivity. qualquer um pode sugerir onde estou errado.

RequestBody requestBody = RequestBody.create(MediaType.parse("text/xml"), strRequestBody);

    Call<LoginResponseEnvelope> call = RetrofitGenerator.getProductInterfaceApi().Login(requestBody);
    call.enqueue(new Callback<LoginResponseEnvelope>() {
        @Override
        public void onResponse(Call<LoginResponseEnvelope> call, Response<LoginResponseEnvelope> response) {
            progressbar.setVisibility(View.GONE);

            if (response != null) {
                try {
                    Log.d("LoginResponse", "success response :" + response.body());
                    LoginResponseEnvelope loginResponseEnvelope = response.body();
                } catch (Exception e) {
                    e.printStackTrace();
                }

               /* if (loginResponseEnvelope != null) {
                    Log.d("LoginResponse", "success loginResponseEnvelope :" + loginResponseEnvelope.toString());

                    String status = loginResponseEnvelope.getBody().getLoginResponseData().getLoginResult().getLoginInfo().toString();

                    Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
                    startActivity(intent);
                }*/
            }

            /*if (loginResponseEnvelope!=null){

            }*/
        }

        @Override
        public void onFailure(Call<LoginResponseEnvelope> call, Throwable t) {
            progressbar.setVisibility(View.GONE);
            Log.d("LoginResponse", "failure response :" + t.getMessage());
        }
    });

sta é a minha classe POJO adaptada para resposta XM

public class LoginResponseEnvelope {

@Element(name = "Body", required = false)
private LoginResponseBody body;

public LoginResponseBody getBody() {
    return body;
}

public void setBody(LoginResponseBody body) {
    this.body = body;
}

@Override
public String toString() {
    return "LoginResponseEnvelope{" +
            "body=" + body +
            '}';
}

@Root(name = "Body", strict = false)
public class LoginResponseBody {

    @Element(name = "LoginResponse", required = false)
    private LoginResponseData loginResponseData;

    public LoginResponseData getLoginResponseData() {
        return loginResponseData;
    }

    public void setLoginResponseData(LoginResponseData loginResponseData) {
        this.loginResponseData = loginResponseData;
    }

    @Root(name = "LoginResponse", strict = false)
    @Namespace(reference = "http://tempuri.org/")
    public class LoginResponseData {

        @Element(name = "LoginResult", required = false)
        private LoginResult loginResult;

        public LoginResult getLoginResult() {
            return loginResult;
        }

        public void setLoginResult(LoginResult loginResult) {
            this.loginResult = loginResult;
        }

        @Root(name = "LoginResult", strict = false)
        public class LoginResult {

            @Element(name = "Result", required = false)
            private LoginInfo loginInfo;

            public LoginInfo getLoginInfo() {
                return loginInfo;
            }

            public void setLoginInfo(LoginInfo loginInfo) {
                this.loginInfo = loginInfo;
            }

            @Root(name = "Result", strict = false)
            @Namespace(reference = "")
            public class LoginInfo {

                @Element(name = "Success", required = false)
                private Success success;

                public Success getSuccess() {
                    return success;
                }

                public void setSuccess(Success success) {
                    this.success = success;
                }

                @Root(name = "Success", strict = false)
                public class Success {

                    @ElementList(name = "CompanyDetails", inline = true)
                    private List<Company> companyDetails;

                    public List<Company> getCompanyDetails() {
                        return companyDetails;
                    }

                    public void setCompanyDetails(List<Company> companyDetails) {
                        this.companyDetails = companyDetails;
                    }

                    @Root(name = "CompanyDetails", strict = false)
                    public class Company {

                        @Element(name = "Id", required = false)
                        private String id;

                        @Element(name = "Name", required = false)
                        private String Name;

                        public String getId() {
                            return id;
                        }

                        public void setId(String id) {
                            this.id = id;
                        }

                        public String getName() {
                            return Name;
                        }

                        public void setName(String name) {
                            Name = name;
                        }
                    }
                }
            }
        }
    }
}

}

questionAnswers(0)

yourAnswerToTheQuestion