在自动格式化后,我在验证XML文件时遇到问题。在验证字符串之前,验证不会修剪字符串。这是.NET的XML验证实现中的错误还是这种可接受的行为?如果它是可接受的行为,那么通常如何处理这样的情况,因为在我看来,这两个XML文件是等价的。
我的XSD:
<xs:schema ...>
...
<xs:simpleType name="ItemTypeData">
<xs:restriction base="xs:string">
<xs:enumeration value="ItemA" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
格式化之前的我的XML(验证通过):
...
<ItemType>ItemA</ItemType>
...
格式化后(验证失败):
...
<ItemType>
ItemA
</ItemType>
...
答案 0 :(得分:3)
鉴于定义架构的方式,验证器的行为正确。您需要停止格式化程序对内容采取此类自由,或者您需要更改架构 - 例如,通过使ItemTypeData限制xs:token而不是xs:string(在xs:token中,前导和尾随空格被视为显着)。