使用xsd.exe(VS2010)从xsd生成C#代码时发生StackOverFlowException

时间:2010-05-12 10:42:13

标签: c# xsd.exe

我正在尝试使用带有Visual Studio RC1(版本10.0.30128.1)的xsd.exe从XML架构生成C#代码,但是得到以下错误:

C:\ Development> xsd CR2008Schema.xsd / classes Microsoft(R)Xml架构/数据类型支持实用程序 [Microsoft(R).NET Framework,版本4.0.30128.1] 版权所有(C)Microsoft Corporation。所有权利保留

由于StackOverflowException,进程终止。

xsd为http://www.businessobjects.com/products/xml/CR2008Schema.xsd

任何帮助表示感谢。

谢谢,

斯塔

2 个答案:

答案 0 :(得分:5)

可能会发生这种情况,因为Group定义了Group

的集合
<!--    Group   -->
<xsd:complexType name="Group">
  <xsd:sequence>
    <xsd:element name="GroupHeader" type="HeaderFooter" minOccurs="0"/>
      <xsd:choice>
        <xsd:element name="Details" type="Details" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="Group" type="Group" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:choice>
    <xsd:element name="GroupFooter" type="HeaderFooter" minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="Level" type="xsd:integer" use="required"/>
</xsd:complexType>

xsd.exe正陷入无限循环......

答案 1 :(得分:3)

继Oded的回答之后,CrystalReport类型中有一个类似但更多的comples循环。 Details类型的Details元素包含一个SubReport类型的SubReport元素,它继承自CrystalReport,它包含Details等类型的Details元素。