XSD 限制 - 空白 "replace",但不允许使用空格
XSD restrictions - whiteSpace "replace", but spaces not allowed
将空格放入遵循以下 XML 模式的消息中会发生什么情况?
<xs:whiteSpace value="replace"/>
<xs:pattern value="[\-\*0-9A-Z]{12}"/>
会不会空格被替换成空格,然后验证失败?还是会发生其他事情?
您的 xs:pattern
正则表达式不允许 spaces,并且 xs:whiteSpace
facet 不会改变这一点。
完整 XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
<xs:pattern value="[\-\*0-9A-Z]{12}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
XML
这个XML将有效:
<root>123456789012</root>
这个 XML 将 无效 因为 space:
<root>1234567890 2</root>
如果 XSD 被更改为允许 spaces,
<xs:pattern value="[ \-\*0-9A-Z]{12}"/>
并且 XML 有一个选项卡:
<root>1234567890 2</root>
然后 xs:whiteSpace
值将替换为 space,并且 现在 XSD 将找到 XML 有效.
将空格放入遵循以下 XML 模式的消息中会发生什么情况?
<xs:whiteSpace value="replace"/>
<xs:pattern value="[\-\*0-9A-Z]{12}"/>
会不会空格被替换成空格,然后验证失败?还是会发生其他事情?
您的 xs:pattern
正则表达式不允许 spaces,并且 xs:whiteSpace
facet 不会改变这一点。
完整 XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
<xs:pattern value="[\-\*0-9A-Z]{12}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
XML
这个XML将有效:
<root>123456789012</root>
这个 XML 将 无效 因为 space:
<root>1234567890 2</root>
如果 XSD 被更改为允许 spaces,
<xs:pattern value="[ \-\*0-9A-Z]{12}"/>
并且 XML 有一个选项卡:
<root>1234567890 2</root>
然后 xs:whiteSpace
值将替换为 space,并且 现在 XSD 将找到 XML 有效.