使用 XSD 模式验证在 XML 中传递空值
Passing an empty value in XML with XSD pattern validation
我正在尝试发送以下带有空 InvestorID
字段的 XML 请求,但在响应中返回错误:
"module does not conform to the activity output schema. The initial value ' ' is not valid with respect to the simple type definition 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>
是的,模式值允许空字段。
原始文档成功验证了此架构(假设 tns
绑定到名称 space 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>
但是,错误消息提到 ' '
,它不是空的:它是一个包含一个 space 字符的字符串。也许错误可能来自文件中的其他地方,例如:
<tns:InvestorId> </tns:InvestorId>
我正在尝试发送以下带有空 InvestorID
字段的 XML 请求,但在响应中返回错误:
"module does not conform to the activity output schema. The initial value ' ' is not valid with respect to the simple type definition 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>
是的,模式值允许空字段。
原始文档成功验证了此架构(假设 tns
绑定到名称 space 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>
但是,错误消息提到 ' '
,它不是空的:它是一个包含一个 space 字符的字符串。也许错误可能来自文件中的其他地方,例如:
<tns:InvestorId> </tns:InvestorId>