为什么minOccurs =“0”会导致空值

时间:2018-03-12 07:09:46

标签: java web-services soap xsd

我的xsd中有一个复杂的类型如下:

            var httpClient = new ServiceReference1DemoServiceClient();
            var reqAddUser = new ServiceReference1.AddUserRequestType()
            {
                Header = new ServiceReference1.HeaderType {},
                Body = new ServiceReference1.AddUserRequestTypeBody()
                {
                    Login = "TestLogin",
                    CompanyId = 19,
                    Name = "TestName",
                    Surname = "TestSurname",

                }

            };

            ServiceReference1.AddUserResponseType resp = httpClient.AddUser(reqAddUser);
            Console.WriteLine(resp.Result.Error.Exists.ToString());
            Console.ReadLine(); 

问题是每当我将 CompanyId minOccurs 属性设置为零时,从客户端到 CompanyId 的Web服务的任何传入值都是被视为无效。当我将 minOccurs 更改为1时,客户端发送的任何值都可以在服务器端接收。所以我的问题是如何在不将 minOccurs 设置为1的情况下解决此问题,因为我想表示客户端此元素可能为空。

仅供参考,我的Web服务是用Java 1.6编写的,调用它的客户端是在C#

更新 这是客户端代码:

$in

0 个答案:

没有答案