XSD.EXE 未从 XSD 文件生成某些类

问题描述

我正在尝试使用 XSD 文件的 XSD.exe 工具从 XSD 文件生成一些 C# 类,这里称为 file.xsd。我们过去曾多次使用该工具为 file.xsd 生成类,并且效果很好。

然而,在我们最近更新 file.xsd 之后,我们添加了一些新元素并重新配置了一些旧元素,XSD 工具突然没有生成某些类。这个失败的生成只适用于一些重组的旧元素和一些新元素。据我所知,每个未生成的类都引用了 complexType——尽管我不确定这是否是原因。

我们在 file.xsd 上的 Visual Studio 2017 开发人员命令提示符中运行此命令以生成我们的类:

xsd file.xsd /c

这里是一组元素的示例,这些元素的类没有正确生成(为了安全,删除了实际的命令名):

```
<xs:attributeGroup name="Commands">
    <xs:attribute name="order" use="required" type="xs:int"/>
</xs:attributeGroup>
<xs:complexType name="foo-type" mixed="true">
    <xs:attributeGroup ref="Commands"/>
</xs:complexType>
<xs:element name="foo" type="foo-type"/>
<xs:element name="foo-unauth">
    <xs:complexType mixed="true">
        <xs:attributeGroup ref="Commands"/>
    </xs:complexType>
</xs:element>
<xs:element name="def-foo-cmd" type="foo-bar-type"/>
<xs:element name="foo-cmd" type="foo-bar-type"/>
<xs:complexType name="foo-bar-type" mixed="true"/>
```

从此块生成的唯一类是 foo-typefoo-unauthdef-foo-cmdfoo-cmdfoo 不是生成的。

我们认为这是由于 XSD 工具优化了这些元素造成的,但我们不完全确定原因。

有人对可能导致此类类无法生成的原因有任何想法吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)