如果null传递给android,则创建空标记

时间:2015-01-13 06:09:58

标签: android xml soap ws-client

我使用WSClient ++生成源代码。当我将null值传递给object时,我希望在生成请求XML时,它应该在请求XML中包含空标记。但似乎当null值通过时它不生成任何标记。例如:

SchoolRequest req = new SchoolRequest();
req.setName("Xyz");
req.setRoll(1);
req.setSub("CS");
req.setPunctual(null);

我希望请求xml是

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://blah.blah.blah/" xmlns:ns4="http://abc.xyz/xml" xmlns:ns5="http://blah.blah.blah" xmlns:ns6="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Header />
   <soap:Body>
      <ns4:GetSchoolInfo>
         <ns4:request>
            <ns4:Name>1021</ns4:Name>
            <ns4:Roll>1.0.2.1</ns4:Roll>
            <ns4:Sub>CS</ns4:Sub>
            <ns4:Punctual/>  <----Notice this tag
         </ns4:request>
      </ns4:GetSchoolInfo>
   </soap:Body>
</soap:Envelope>

我得到了什么

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://blah.blah.blah/" xmlns:ns4="http://abc.xyz/xml" xmlns:ns5="http://blah.blah.blah" xmlns:ns6="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Header />
   <soap:Body>
      <ns4:GetSchoolInfo>
         <ns4:request>
            <ns4:Name>1021</ns4:Name>
            <ns4:Roll>1.0.2.1</ns4:Roll>
            <ns4:Sub>CS</ns4:Sub>  <--Notice NO PUNCTUAL TAG
         </ns4:request>
      </ns4:GetSchoolInfo>
   </soap:Body>
</soap:Envelope>

我不知道这种行为。有什么我做错了吗?有人可以帮我解决这个问题。?

1 个答案:

答案 0 :(得分:2)

SchoolRequest req = new SchoolRequest();
req.setName("Xyz");
req.setRoll(1);
req.setSub("CS");
req.setPunctual(null);

尝试""而不是null

req.setPunctual("");

" "

req.setPunctual(" ");

你可以在阅读时修剪这个空间。