架构验证在验证之前不会修剪字符串

时间:2011-11-08 10:59:42

标签: c# .net xml xsd xml-validation

在自动格式化后,我在验证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>
...

1 个答案:

答案 0 :(得分:3)

鉴于定义架构的方式,验证器的行为正确。您需要停止格式化程序对内容采取此类自由,或者您需要更改架构 - 例如,通过使ItemTypeData限制xs:token而不是xs:string(在xs:token中,前导和尾随空格被视为显着)。