문제

명령 줄 사용 :

"xsd.exe" "OFX 2.1.1 schema/OFX2_Protocol.xsd" /c /namespace:OFX /nologo"

결과 C# 소스 파일이 이러한 오류로 빌드되지 않습니다.

D:\blah\OFX2_Protocol.cs(19,6): error CS0579: Duplicate 'System.CodeDom.Compiler.GeneratedCodeAttribute' attribute
D:\blah\OFX2_Protocol.cs(20,6): error CS0579: Duplicate 'System.SerializableAttribute' attribute
D:\blah\OFX2_Protocol.cs(21,6): error CS0579: Duplicate 'System.Diagnostics.DebuggerStepThroughAttribute' attribute
D:\blah\OFX2_Protocol.cs(22,6): error CS0579: Duplicate 'System.ComponentModel.DesignerCategoryAttribute' attribute
D:\blah\OFX2_Protocol.cs(23,6): error CS0579: Duplicate 'System.Xml.Serialization.XmlTypeAttribute' attribute
D:\blah\OFX2_Protocol.cs(24,6): error CS0579: Duplicate 'System.Xml.Serialization.XmlRootAttribute' attribute

OFX2 스키마에서 복사 한 유사한 XSD 스키마는 내가 원하는 유용한 비트로 다듬어 C# 파일을 생성하지만 전체 스키마의 C# 표현과 동일한 속성을 갖습니다.

이유가 있습니까? OFX 스키마가 고장 났습니까? xsd.exe가 깨 졌습니까? C#이 깨 졌습니까? 내가 부러 졌나요?

도움이 되었습니까?

해결책

좋아,이 대답은 오랜 시간이 다가오고있다 ...

방금 같은 문제를 겪었습니다. 문제는 foo.cs가 아니었지만 foo.designer.cs. 두 번째 클래스에서 중복 속성을 제거해야합니다.

C#은 중복 속성을 허용하여 부분 클래스를 허용하거나 .CS 파일을 제외한 모든 속성을 생략하려면 XSD를 수정해야합니다.

다른 팁

다른 스키마와 동일한 문제 (동일한 "중복 속성"문제)가있었습니다. 그 이유는 2 XSD 스키마 (2 개의 생성 파일) 때문이었고 각각에는 동일한 "유형"요소가 있었지만 다른 정의가있었습니다. 유형 중 하나를 다른 이름으로 바꾸면 문제가 해결되었습니다.

OFX 사양 다운로드의 최신 버전에는 'ofx3_protocol_dotnet.xsd'가 'ofx2_protocol.xsd'에서 .net 코드 생성 도구에 더 적합하도록 'ofx3_protocol_dotnet.xsd'가 있습니다. 아직 XML을 버리지 않았지만 문제 없이이 XSD에서 C#을 생성했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top