我正在开发一个由SAP安装调用的WCF Web服务,并且遇到与负数序列化相关的问题。它们传递的值如“123.45-”而不是“-123.45”,这导致反序列化窒息。我想我可以通过在XML中将所有内容定义为字符串然后手动查找尾随符号来解决它。
我的问题是这是一个有效的XML数字表示吗?我发现this page,似乎表明该符号(如果存在)必须在数字之前。在一天结束时,我将不得不添加处理他们发送的内容所需的一切。我想这只是自我想知道从规格的角度来看这实际上是错误的;)
答案 0 :(得分:1)
在严格意义上的 XML架构中,这不是有效的数字表示。如果您正在讨论SOAP端点,则可以浏览到服务WSDL文件,然后按照指向请求和响应中预期的模式的链接 - WCF通常使用xs:int,xs:decimal,xs:double等。表示数字类型。
下一步做什么取决于您可以影响客户为您发送“有效”号码的程度。如果你不能,并且你必须支持现有的请求,那么它对你的场景变得“有效”,你需要以某种方式处理那些。也许不是一个理想的世界,但有时互操作会导致这类问题。