首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSD.exe不强制执行minOccurs

XSD.exe不强制执行minOccurs
EN

Stack Overflow用户
提问于 2010-05-03 22:00:53
回答 3查看 3.6K关注 0票数 7

我有一个简单的模式,其中我将minOccurs和maxOccurs都声明为1。当我运行XSD.exe以生成C#类并在代码中使用该类时,该字段并不强制为必填字段。是否遗漏了一些额外的步骤?或者使用XSD.exe生成的类不需要必填字段?

任何建议或见解都将是有帮助的。

EN

回答 3

Stack Overflow用户

发布于 2010-05-03 22:12:14

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

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

当从XML Schema文档生成源代码时,Xsd.exe忽略应用于<

>、< sequence >、< group >、< all >和< any >元素的minOccurs属性。

对于元素,如果minOccurs属性的值大于1或无界,则Xsd.exe将忽略maxOccurs属性。在这种情况下,该工具会生成一个对应于XSD数据类型的数组。Xsd.exe使用maxOccurs属性的值来确定是生成单个实例还是生成数组。

对于元素,如果将minOccurs属性应用于转换为.NET框架引用类型的架构数据类型,则Xsd.exe也会忽略该属性。

只有当以下所有条件都为真时,Xsd.exe才会使用minOccurs属性的值:

该元素被涉及到。

maxOccurs属性指定单个实例。

数据类型转换为值类型。

票数 8
EN

Stack Overflow用户

发布于 2010-05-03 22:46:04

你将如何在代码中强制执行一个任意的最小值?某种断言?我猜你只能映射到“非空单实例”(1:1)非空数组(1:许多)和它们的可空等价物(0;1)和(0:许多)

票数 1
EN

Stack Overflow用户

发布于 2010-05-03 22:02:16

您说得对,XSD.EXE不强制执行事件要求。这是设计好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2758549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档