gpt4 book ai didi

c# - XSD.exe 不强制执行 minOccurs

转载 作者:太空狗 更新时间:2023-10-29 20:15:12 25 4
gpt4 key购买 nike

我有一个简单的架构,我将 minOccurs 和 maxOccurs 都声明为 1。当我运行 XSD.exe 以生成 C# 类并在代码中使用该类时;该字段未强制执行。是否缺少一些额外的步骤?还是使用 XSD.exe 生成的类没有必填字段?

任何建议或见解都会有所帮助。

最佳答案

就像 visual studio 中的 Xml/infer schema 工具一样,每当我使用 XSD.exe 时,我都会修复一些生成的代码。 XSD.exe 做了一个很好的近似,但它并不完全有效。

minOccurs / maxOccurs 'bug'记录在 MSDN 上。

When generating source code from an XML Schema document, Xsd.exe ignores the minOccurs attribute applied to the < choice >, < sequence >, < group >, < all >, and < any > elements.

For the element, Xsd.exe ignores the minOccurs attribute if the value of the maxOccurs attribute is greater than 1, or unbounded. In this case, the tool produces an array of the type corresponding to the XSD data type. Xsd.exe uses the value of the maxOccurs attribute to determine whether to produce a single instance or an array.

For the element, Xsd.exe also ignores the minOccurs attribute if it is applied to a schema data type that converts to a .NET Framework reference type.

Only when all the following conditions are true does Xsd.exe utilize the value of the minOccurs attribute:

The element is involved.

The maxOccurs attribute dictates a single instance.

The data type converts to a value type.

关于c# - XSD.exe 不强制执行 minOccurs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758549/

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