2011-08-17 6 views
3

다소 큰 XSD 파일을 사용할 수 있습니다. here.C# : XML 스키마 (XSD) 파일에서 DDL 및 ORM 클래스 자동 생성

은 내가 파일에서 다음 생성하려면 다음 XSD에서 '허용'값에 지정된대로

  1. 는, (PostgreSQL을위한) DDL을 생성 적절한 경우 DDL 초기 값을 포함한다을

  2. 날 1

사람이 도구를 제안 할 수 단계에서 만든 데이터베이스의 레코드에 CRUD 작업을 수행 할 수있는 것이다 ORM을 생성 또는 일련의 도구/기술을 사용하여이를 달성 할 수 있습니까?

내 솔루션을 롤업해야하는 경우 누군가 XSLT에 대한 좋은 자습서를 제안 할 수 있습니다 (선호하는 요리 책 - 이미 XML/XPath를 알고 있기 때문에 가능).

덧붙여서 Windows에서 xsd.exe를 사용해 보았습니다. XSD 파일에 순환 참조가 있음을 나타내는 오류 메시지가 표시되고 인쇄되었습니다. 그런 다음 모노에서 xsd.exe를 실행 해 보았습니다. 그러나 만들어진 파일에는 잘못된 문장이 있습니다. xsd.exe가 이러한 쌍둥이 목표를 달성하는 방법이 아니라고 추측합니다. 아마도 틀렸다고 생각되면 알려주십시오.

또한, 나는 XSD 파일에서 DDL을 생성하는 Ann Lewkowicz's XSLT transform file로했다 -하지만 무한 루프에 붙어있어 고민하는 듯 - 또한 그래서 나는 다음과 같은 도움이 필요

'무한 재귀'에 대해 불평 다음 XSD file을 망쳐 참이면 모든

  • 먼저, 누구나 테스트/확인할 수 있습니까? - 그렇다면 어떻게 수정해야합니까?
  • XSD 파일에서 DDL 및 ORM을 생성하려면 어떻게해야합니까?
+2

DDL/ORM 생성과 관련하여 T4를 살펴 보았습니까? 개인적으로 T4는 XSLT (http://www.olegsych.com/2007/12/text-template-transformation-toolkit/)보다 훨씬 더 적합하다고 생각합니다. – FuleSnabel

+1

XSD가 나사로 고정되어 있습니다. VS에서 열려고하면이 오류가 발생합니다.이 스키마는 잘못된 XSD 스키마이며 다음과 같은 오류가 있습니다. 'http://www.w3.org/XML/1998/namespace:lang'속성은 다음과 같습니다. 선언하지 않았다. –

+0

@hugh jadick : 확인해 주셔서 감사합니다. 나는 문제를 해결했다. (고정 된 파일은 아직 업로드되지 않았다.) 그래서 유일한 나머지 문제는 XSD에서 ORM과 DDL을 생성하는 방법이다.저는 Visual Studio에서 고정 XSD 파일을 열었습니다 (정말 멋지 네요!). 반드시 Visual Studio에서 DDL 및 ORM을 생성하는 방법이 있어야합니까? – oompahloompah

답변

0

개인적으로 나는 발전기를 직접 작성했습니다. 좋은 발전기가 있을지 모르지만 나는 아무 것도 보지 못했습니다. 내가 XSD를 시작점으로 사용하지는 않았지만 사용하려고 시도한 모든 것은 끔찍한 코드를 생성하고, 더 나쁜 것은 필연적으로 나타나는 모든 변덕을 처리하기 위해 사용자 지정하는 것이 다소 불가능합니다.

이렇게하는 것은 사람들이 상상하는 것보다 훨씬 적은 작업이며 많은 이점을 제공합니다. 실제로 생성되는 것을 완벽하게 제어 할 수 있습니다. 그리고 당신은 심지어 그것을 (그리고 아주 쉽게) 다음 단계로 가져갈 수 있고 런타임에 물건을 생성 할 수 있습니다. 후자는 스키마가 최종적인 경우 거의 의미가 없지만 계속 진화하면 시간을 크게 절약 할 수 있습니다.

나는 이것이 당신이 원했던 대답이 아니라는 것을 알고 있으며, 누군가 그 일에 좋은 도구를 알고 있다면 나는 또한 흥미를 가질 것이다.

관련 문제