我在处理 Web 服务响应时遇到 Apache CXF 解析错误。归根结底是返回一个空元素:
<myValue />
元素定义如下:
<xsd:element name="myValue" type="xsd:float" minOccurs="0">
现在我在 CXF 邮件列表上读到XSD 规范不允许空值 http://permalink.gmane.org/gmane.comp.apache.cxf.user/7739:
嗯,没有解决方法
这不是一个错误。一个空的
元素对于任何 Decimal 都无效
或日期类型或类似的东西。
因此,它应该抛出异常。
你期待它做什么?
现在问题来了:在 XML Schema 规范中到底在哪里可以找到这个约束?
在 XML Schema 规范中到底在哪里可以找到这个约束?
http://www.w3.org/TR/xmlschema-2/#float-lexical-representation http://www.w3.org/TR/xmlschema-2/#float-lexical-representation
浮点值有一个词法
表示由一个
尾数后面可选地跟随
字符“E”或“e”,后跟
指数。
...
指数和的表示形式
尾数必须遵循词汇规则
对于整数和小数。
...
特殊的价值观积极和
负无穷大和非数字
具有词汇表示形式 INF、-INF
和 NaN,分别。
So xs:float
至少需要一个尾数xs:decimal
...
小数有词法表示
由有限长度序列组成
小数位数 (#x30-#x39)
以句点分隔作为小数
指标。可选的前导标志是
允许。
...空字符串不是有效的xs:decimal
.
如果您没有此元素的值,则应尽可能尝试不包含此元素。您的架构似乎允许省略此元素,因为minOccurs
有价值0
。其他解决方案是插入合适的替换值,例如0
or NaN
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)