gpt4 book ai didi

c# - XSD、限制和代码生成

转载 作者:数据小太阳 更新时间:2023-10-29 02:46:47 26 4
gpt4 key购买 nike

我正在为现有项目生成一些代码,我想从 xsd 开始。所以我可以使用 Xsd2Code/xsd.exe 等工具来生成代码,还可以使用 xsd 来验证 xml。那部分工作没有任何问题。

我也想翻译一些限制到DataAnnotations(丰富Xsd2Code)。例如 xs:minInclusive/xs:maxInclusive 我可以转换为 RangeAttribute。

但是如何处理我们创建的自定义验证属性呢?我可以添加自定义方面/限制吗?如何?或者是否有其他解决方案/最佳实践。

我想将所有内容收集到一个 (xsd) 文件中,以便一个文件包含类(模型)的结构,包括必须添加的验证(属性)。

<xs:element name="CertainValue">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="1" />
<xs:maxInclusive value="100" />
<xs_custom:customRule attribute="value" />
</xs:restriction>
</xs:simpleType>
</xs:element>

最佳答案

XML 模式本身受模式约束,因此您不能添加任意(在它看来)元素。有一个工具可以添加任何你喜欢的东西,xs:annotation/xs:appinfo,它可以添加到大多数节点。也许尝试这样的事情:

<xs:element name="CertainValue">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:annotation>
<xs:appinfo>
<xs_custom:customRule attribute="value" />
</xs:appinfo>
</xs:annotation>
<xs:minInclusive value="1" />
<xs:maxInclusive value="100" />
</xs:restriction>
</xs:simpleType>

这取决于 Xsd2Code 在哪里寻找这些东西,但如果他们希望传入 XSD 进行验证,那么 appinfo 可能是他们唯一的选择。只是在哪个元素上添加 appinfo 也是个问题。

关于c# - XSD、限制和代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2355631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com