2010-05-31 1 views
4

Xsd.exe 대신 SvcUtil.exe를 사용하여 C# 코드 클래스를 생성하려고합니다. 후자는 나에게 몇 가지 문제를주고있다..Net SvcUtil : 특성은 선택적이어야합니다.

명령 행 :

SvcUtil.exe myschema.xsd /dconly /ser:XmlSerializer 

일부는 svcutil 문제를 설명하고 여기에 해결된다 : 오류 : 내가 해결할 수없는 http://blog.shutupandcode.net/?p=761

한 가지 문제점이 하나 네임 스페이스 유형 'DatafieldDescription' '을 (를) 가져올 수 없습니다. 특성은 선택 사항이어야하며 네임 스페이스 'http://schemas.microsoft.com/2003/10/Seri alization /'이어야합니다. 형식을 데이터 계약 형식에 매핑하거나 ImportXmlType을 사용하거나 다른 serializer를 사용할 수 있도록 스키마를 변경하십시오. '

나는

<xs:attribute name="Order" use="optional"> 

<xs:attribute name="Order"> 

<xs:attribute name="Order" use="required"> 

을 변경하지만 오류가 남아있다. 속성을 사용하는 것이 가능한가, 아니면 모두 삭제해야합니까 (이 경우이 시험은 끝났습니까)?

답변

5

대답하고, 가능한 해결책, 여기에서 찾을 수있다 : MSDN: Importing Schema to Generate Classes

특정 : XsdDataContractImporter 스키마의 제한된 서브 세트를 지원한다. 지원되지 않는 스키마 구조가 인 경우 (예 :) XML 가져 오기 시도가 예외와 함께 실패합니다. 그러나 ImportXmlType 속성을 true로 설정하면 지원되는 스키마 범위가 확장됩니다.. true로 설정하면 XsdDataContractImporter는 IXmlSerializable 인터페이스를 구현하는 형식을 생성합니다. 이렇게하면 이러한 유형의 XML 표현에 직접 액세스 할 수 있습니다.

로 : 슬프게도

SvcUtil.exe myschema.xsd /dconly /ser:XmlSerializer /importXmlTypes 

,이 이러한 종류의 코드가 발생합니다 :

private System.Xml.XmlNode[] nodesField; 

감사합니다, 미셸

+2

는 CodePlex @ xsd2code 버전 3.3에서 좋은 결과를 얻기를 . –

+0

+1 :'XMLSchemaSet.Compile()'에 문제가 있음을 알 수있었습니다. – IAbstract