微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。