2009-08-10 6 views
5

xsds에서 생성 된 클래스를 업데이트하는 작업을보고 있습니다. 나는 이것이 T4 템플릿의 큰 사용이라고 생각하지만, 이것을하는 사람들의 예를 보지 못했다. 본질적으로, 나는 Linq to XSD이 한 일을하고 싶지만 생산 솔루션에 알파 빌드 타겟을 포함시키지 않고.xsd에서 클래스를 생성하기위한 T4 템플릿을 아는 사람이 있습니까?

관련 링크가 있습니까?


위키. 여기에 관련 답변을 저장하십시오.

답변

3

나는 xsd2code.net을 (를) 사용하고 있습니다. 여기에서 찾으십시오. : http://xsd2code.codeplex.com/. 혜택의 많은 :

  • 오픈 소스, 그래서 당신은 조정 /가

  • 명령 행에서

  • 실행 목록 또는 심지어 자신의 사용자 지정 컬렉션 타입의 배열을 대체 해킹, 또는 실행할 수 있습니다 비주얼 스튜디오 추가 기능

나는 또한 단일 XSD 파일 A를 실행할 수 있다는 것을 좋아 (오른쪽 XSD를 클릭하여 생성하는 말) 참조 된 xsd가 (xsd.exe의 작동 방식과 같이) 발견되지 않는다면 폭발하지 않을 것입니다. 따라서 하나의 파일에 대한 빠른 업데이트 만 수행하려는 경우에 대비하여 개별 파일에서 쉽게 실행할 수 있습니다.

그러나 T4도 옵션이어야합니다. T4 XSD를 봤는데 몇 가지 해결책이 있습니다. 여기

+0

이 시점에서 이것이 최선의 해결책이라고 생각합니다. 더 나은 soulution은 아마 상황이 시작하는 것을 피하는 것입니다. – Will

+0

이것에 대한 업데이트 : 현재이 프로젝트를 검토 중입니다 .- http://oxmlibrary.codeplex.com/ - 약간은 해킹 된 것처럼 보일 지 모르겠지만 더 이해하기 쉬운 "해킹 가능"것처럼 보입니다. –

+0

윌,이 정확한 일을 다시하고 있습니다. 회피가 가장 좋을 수도 있지만 산업 표준이 xsd에 정의 된 경우 스키마에서 클래스를 생성하는 것은 매우 유효한 작업입니다. 재미는별로 없지만. –

1

코드 생성 모델로 XSD를 사용하기가 매우 어려웠습니다. 내 요구에 맞게 너무 유연하고 복잡합니다. 강력한 유형의 DataSet 디자이너/생성기는 XSD를 코드 생성 모델로 사용하려는 시도의 좋은 예입니다. 대부분의 경우에는 정상적으로 작동하지만 가능한 모든 스키마를 지원하지는 않습니다. 반면에 XSD는 테이블 어댑터를 직접 생성하는 데 필요한 정보를 나타낼 수 없으므로 DataSet 관련 확장을 만들어야했습니다.

XSD를 모델로 사용하기로 결정한 경우, 생성해야 할 부분에 충분한 간단한 하위 집합을 선택하는 것이 좋습니다. 한 가지 방법은 XSD 스키마를 DataSet 개체에로드하고이 DataSet 개체를 모델로 사용하는 것입니다. DataSet 메타 데이터는 범용 XSD보다 훨씬 쉽게 액세스 할 수 있습니다. 또한 Visual Studio에서 기존 DataSet 디자이너를 사용하여 모델을 편집 할 수 있습니다.

+0

코드 생성은 직렬화 된 XML을 개최한다 클래스입니다. 나 자신의 모델을 구축하고 XML을 파싱하거나 XML에서 객체를 직접 deserialize한다. 데이터 집합보다 더 가벼운 솔루션을 찾고 있는데,이를 통해 직렬화되지 않은 데이터의 부분 클래스를 작성할 수 있습니다. – Will

관련 문제