我尝试使用空InvestorID
字段发送以下XML请求,但收到错误回复:
"模块不符合活动输出模式。初始值' '对于简单类型定义InvestorIDType"
无效
<tns:Investor>
<tns:InvestorId/>
<tns:firstName>FirstName</tns:firstName>
<tns:lastName>LastName</tns:lastName>
<tns:dateOfBirth>1970-01-01</tns:dateOfBirth>
</tns:Investor>
我的简单类型的模式值([0-9]{10})?
是否允许空字段? (如下图所示)
<simpleType name="InvestorIDType">
<restriction base="string">
<pattern value="([0-9]{10})?" />
</restriction>
</simpleType>
答案 0 :(得分:0)
是的,模式值允许空字段。
原始文档成功验证了此模式(假设tns
绑定到名称空间http://www.example.com
):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.com"
targetNamespace="http://www.example.com"
elementFormDefault="qualified">
<xs:simpleType name="InvestorIDType">
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]{10})?" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Investor">
<xs:complexType>
<xs:sequence>
<xs:element name="InvestorId" type="InvestorIDType"/>
<xs:element name="firstName" type="xs:string"/>
<xs:element name="lastName" type="xs:string"/>
<xs:element name="dateOfBirth" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但是,错误消息提到' '
,它不是空的:它是一个包含一个空格字符的字符串。也许错误可能来自文件中的其他位置,如下所示:
<tns:InvestorId> </tns:InvestorId>