XSD.exe 不强制执行 minOccurs
我有一个简单的架构,其中我将 minOccurs 和 maxOccurs 声明为 1。当我运行 XSD.exe 生成 C# 类并在代码中使用该类时;该字段不是强制执行的。是否缺少一些额外的步骤?或者使用 XSD.exe 生成的类是否没有必填字段?
任何建议或见解都会有所帮助。
I have a simple schema where I'm declaring both minOccurs and maxOccurs to 1. When I run the XSD.exe to generate a C# class and consume the class in code; the field is not enforced as mandatory. Is there some additional step missing? or does the classes generated using XSD.exe don't mandatory fields?
any suggestions or insight will be helpful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
就像 Visual Studio 中的 Xml/infer schema 工具一样,每当我使用 XSD.exe 时,我都会修复一些生成的代码。 XSD.exe 进行了很好的近似,但它并不完全有效。
minOccurs / maxOccurs 'bug' 记录在MSDN。
Like the Xml / infer schema tool in visual studio, whenever I've used XSD.exe I've ended up fixing some of the generated code. XSD.exe does a good approximation but it doesn't work entirely.
The minOccurs / maxOccurs 'bug' is documented on MSDN.
如何在代码中强制执行任意小事件?某种断言?我猜你只能映射到“不可为空的单个实例”(1:1)不可为空的数组(1:many)及其可空的等价物(0;1)和(0:many)
How would you enforce an arbitrary minoccurs in code? Some sort of assertions? I guess you can only map to "Non-nullable single instance" (1:1) non-nullable array (1:many) and their nullable equivalents (0;1), and (0:many)
您是正确的,XSD.EXE 不强制执行出现要求。这是设计好的。
You are correct that XSD.EXE does not enforce occurrence requirements. This is as designed.