模式验证在验证之前不修剪字符串

发布于 2024-12-14 09:28:54 字数 600 浏览 0 评论 0原文

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

I have a problem with validating my XML file, after it has been automatically formatted. The validation doesn't trim the string before validating it. Is this a bug in the implementation of the XML validation of .NET or is this accepted behavior? If it is accepted behavior, how are cases like this normally handled, because in my opinion, the two XML files are equivalent.

My XSD:

<xs:schema ...>
  ...
  <xs:simpleType name="ItemTypeData">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ItemA" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

My XML before formatting (validation passes):

...
<ItemType>ItemA</ItemType>
...

After formatting (validation fails):

...
<ItemType>
  ItemA
</ItemType>
...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

御守 2024-12-21 09:28:54

鉴于模式的定义方式,您的验证器行为正确。您要么需要阻止格式化程序对内容进行此类自由操作,要么需要更改架构 - 例如,通过将 ItemTypeData 设为 xs:token 而不是 xs:string 的限制(在 xs:token 中,考虑前导和尾随空格)微不足道)。

Your validator is behaving correctly, given the way the schema is defined. You either need to stop the formatter taking such liberties with the content, or you need to change the schema - for example by making ItemTypeData a restriction of xs:token rather than xs:string (in xs:token, leading and trailing whitespace is considered insignificant).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文