我已经使用 WSClient++ 来生成我的源代码。当我将空值传递给对象时,我希望在生成请求 XML 时,它应该在请求 XML 中包含空标记。但似乎在传递空值时它不会生成任何标签。例如:
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>
我不知道这种行为。有什么我做错了吗?有人可以帮我解决这个问题吗?