2010-05-12 2 views
3

내가 비주얼 스튜디오 RC1 (버전 10.0.30128.1)와 xsd.exe와 XML 스키마에서 C# 코드를 생성하기 위해 노력하고 있지만 얻을 때라도 오류 :있는 StackOverflowException xsd.exe를 사용하여 XSD에서 C# 코드를 생성 (VS2010)

C : \ Development> xsd CR2008Schema.xsd/classes Microsoft (R) Xml 스키마/데이터 유형 지원 유틸리티 [Microsoft (R) .NET Framework, 버전 4.0.30128.1] Copyright (C) Microsoft Corporation. 모든 권리 보유자

StackOverflowException으로 인해 프로세스가 종료되었습니다.

XSD를 주시면 감사 http://www.businessobjects.com/products/xml/CR2008Schema.xsd

어떤 도움이다.

감사합니다,

슈테판

+0

글쎄, 적어도 내가 얻은 것처럼 OutOfMemoryException을받지 못했습니다. ! :) – leppie

답변

4

GroupGroup의 컬렉션을 정의하기 때문에이 아마 일어나고있다 :

<!-- 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가 무한 루프에지고를 ... 또한

3

에 Oded의 대답은 비슷하지만 CrystalReport 유형의 comples 루프와 비슷합니다. 세부 정보 유형의 세부 요소에는 세부 정보 유형의 세부 요소가 포함 된 CrystalReport에서 상속받은 Subreport 유형의 SubReport 요소가 포함되어 있습니다.

+0

빠른 답변을 보내 주셔서 감사합니다. 그건 의미가 있습니다. 올바른 C# 코드를 생성 할 수있는 방법이 없다는 것을 의미합니까? 그것은 Group과 Subreport를 제거 할 때 작동하며, 지금 당장은 충분하지만, 궁금합니다. – Staffan

+0

수작업으로 클래스를 생성 할 수는 있지만, XML에 직렬화 할 때 문제가 발생할 수 있습니다. 순환 참조. 예 : 그룹 유형의 오브젝트 A는 오브젝트 B를 참조하는 그룹 유형의 그룹 특성을가집니다. 오브젝트 B의 그룹 특성이 오브젝트 A를 참조하면 순환 참조가 생깁니다. 영원히 계속 될 것이므로 결코 이것을 직렬화 할 수 없습니다. –

관련 문제