G33*_*una 7 c# xml-serialization xsd.exe
我有一个简单的架构,我将minOccurs和maxOccurs都声明为1.当我运行XSD.exe生成一个C#类并在代码中使用该类时; 该字段未强制执行.是否缺少一些额外的步骤?或者使用XSD.exe生成的类不是必填字段吗?
任何建议或见解都会有所帮助.
就像Visual Studio中的Xml /推断模式工具一样,每当我使用XSD.exe时,我最终修复了一些生成的代码.XSD.exe做了很好的近似,但它并不完全有效.
的的minOccurs/maxOccurs的"错误"被记录在MSDN上.
从XML Schema文档生成源代码时,Xsd.exe忽略应用于<choice>,<sequence>,<group>,<all>和<any>元素的minOccurs属性.
对于该元素,如果maxOccurs属性的值大于1或无界限,则Xsd.exe将忽略minOccurs属性.在这种情况下,该工具会生成与XSD数据类型对应的类型的数组.Xsd.exe使用maxOccurs属性的值来确定是生成单个实例还是生成数组.
对于元素,如果将xsd.exe应用于转换为.NET Framework引用类型的架构数据类型,则Xsd.exe也会忽略minOccurs属性.
仅当满足以下所有条件时,Xsd.exe才会使用minOccurs属性的值:
该元素涉及.
maxOccurs属性指示单个实例.
数据类型转换为值类型.