2010-02-23 6 views
2

유효한 XML 문서를 역 직렬화 할 때 xsd.exe 도구를 사용하여 스키마에서 클래스를 생성했습니다. 예외가 발생했습니다.스키마의 클래스

예 XML은 여기에 있습니다 : http://codepaste.net/wq22hy

클래스 정의는 여기에 있습니다 : 클래스 정의는이 요소의 재귀 적 특성을 처리하는 것처럼 보이지 않는다는 점에서 http://codepaste.net/bdy598

문제는 요소이다.

요소 내에서 자식 요소는 다른 요소이거나 요소 일 수 있습니다. 생성 된 클래스는이를 처리하지 못합니다.

해결 방법에 대한 도움이 필요합니다.

+0

는 I 재귀를 달성하기 위해 SegGroup 클래스 내 [System.Xml.Serialization.XmlElementAttribute ("SegGroup"의 typeof (SegGroup))] 추가했는데, 이것은 정의에 오류가 발생 XmlSerializer 클래스 오류 : 임시 클래스 (결과 = 1)를 생성 할 수 없습니다. 오류 CS0030 : 'P1.SegGroup' 오류 CS0029에 유형 'P1.Segment을'변환 할 수 없습니다 : 암시 적 유형 'P1.SegGroup을'변환 할 수 없습니다 'P1.Segment' –

+0

어떻게이 일을 당신의 드 직렬화에? xml과 클래스 정의를 가져와 예외없이 직렬화 해제 할 수있었습니다. 비 직렬화 된 객체가 유효하게 보입니다. –

+0

Mark를 찾아 주셔서 감사합니다. 나는 지금 나와 코드를 갖고 있지 않다. 내 코드는 예외없이 직렬화를 수행 했으므로 직렬화가 불완전하다는 것이 었습니다. 그런 다음 예제 XML 보면 첫 번째 요소는 그것의 속성과 함께 객체로했지만, XML에서 그 자식 요소 중 아무도 없었다. –

답변

0

죄송합니다. 오류 메시지입니다. 비 직렬화에 사용 된 클래스가 잘못된 스키마 파일에서 생성되었습니다. 사용 된 스키마 파일에는 재귀가 없으므로 생성 된 클래스에서 인스턴스화되지 않았습니다.

관련 문제