我使用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>
我不知道这种行为。有什么我做错了吗?有人可以帮我解决这个问题。?
答案 0 :(得分:2)
SchoolRequest req = new SchoolRequest();
req.setName("Xyz");
req.setRoll(1);
req.setSub("CS");
req.setPunctual(null);
尝试""
而不是null
req.setPunctual("");
或" "
req.setPunctual(" ");
你可以在阅读时修剪这个空间。