Microsoft MVP성태의 닷넷 이야기
사용 사례 : 1. VS.NET 통합 환경에서 XSDObjectGen 실행 [링크 복사], [링크+제목 복사]
조회: 2846
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

[물론, 이것을 테스트하시려면, SmallTool 을 클라이언트에 설치하셔야 합니다.]

XSDObjectGenerator 에 대해 잠시 소개를 드리면, XSD 스키마에 기반해서 .NET Entity 클래스를 생성하는 것이라고 보시면 됩니다.

예를 들어, 아래와 같은 유형의 XSD 파일을 여러분들이 정의하시면.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DataTypes" targetNamespace="http://tempuri.org/DataTypes.xsd"
 elementFormDefault="qualified" xmlns="http://tempuri.org/DataTypes.xsd"
 xmlns:mstns="http://tempuri.org/DataTypes.xsd"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="TFSAddItemT">
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Port" type="xs:int" />
  </xs:complexType>
</xs:schema>

VS.NET 2005 에서는 다음과 같이 XSD Designer 화면을 통해서 TFSAddItemT Complex Type 이 정의된 것을 확인해 보실 수 있습니다.

XSD Complex Type

자, 그럼 위와 같이 정의된 XSD 파일을 XSDObjectGen.exe 파일에 다음과 같은 명령행으로 실행을 시키면 C# 클래스 파일이 생성되게 됩니다.

xsdobjectgen.exe DataTypes.xsd /l:cs /f:test.cs /n:WebLib.Test

실행한 후에는, "test.cs" 라는 파일이 생성되는 데 VS.NET 2005 의 클래스 디자이너로 보면 다음과 같이 정의되어져 있습니다.

Class Diagram 에서 확인

자동 생성된 이 클래스를 실제로 다음과 같이 사용을 하실 수 있습니다.

        private void Form1_Load(object sender, EventArgs e)
        {
            TFSAddItemT item = new TFSAddItemT();
            item.Name = "MyName";
            item.Port = 80;
        }



다 좋은데... ^^ 한가지 별로 멋있지 않은 면이 있습니다. 위의 단계에서 XSD 를 C# 클래스로 변환하는 것을 명령행에서 (보통 batch 파일을 이용합니다.) 처리를 한다는 것입니다.

하지만, 여러분들이 SmallTool 을 설치했다면 이젠 그렇게 하실 필요없습니다.
방법은 매우 간단합니다.

아래와 같이 해당 XSD 파일을 클릭하고, "Custom Tool" 에 "STXSDObjectGen" 이라고 주면 그만입니다.

XSD 파일에 대해 Custom Tool 지정

위의 그림에서 보시는 것처럼, DataTypes.xsd 파일 하위로 DataTypes.cs 파일이 생성됩니다. 물론, DataTypes.xsd 파일을 편집하고 "저장" 하기를 하는 순간, DataTypes.cs 파일도 내용이 그대로 반영됩니다. 소스 세이프 등에서의 체크아웃도 자동으로 이뤄집니다. ^^

그럼... 좀 편해질 수 있겠지요. ^^







[최초 등록일: ]
[최종 수정일: 6/24/2006]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




[1]  2 
NoWriterDateCnt.TitleFile(s)
37정성태6/7/2016728MSBuild Structured Log: record and visualize your builds
36정성태10/20/20062997SmallTool ver 1.0.1.2 - 변경된 점
34정성태7/27/20062387SmallTool ver 1.0.1.1 - 변경된 점
35정성태7/27/20062297    답변글 SourceGDN].0.060717.001 - 변경된 소스파일 다운로드1
33정성태7/24/20062377SmallTool ver 1.0.1.0 - 변경된 점.
32정성태6/30/20062400사용 사례 : 7. 스키마 상속 처리 (3)
30정성태6/27/20063147사용 사례 : 6. 스미카 상속 처리 (2)
29정성태6/27/20062182사용 사례 : 5. ConsoleBat.exe - Path가 설정되어 있는 Command 창 이용하기
28정성태6/27/20062611사용 사례 : 4. 스미카 상속 처리 (1)파일 다운로드1
27정성태6/27/20062480사용 사례 : 3. XSDObjectGen - partial class 생성파일 다운로드1
26정성태6/29/20062324사용 사례 : 2. XSDObjectGen - Enum 처리에 대한 기능 향상파일 다운로드1
31정성태6/29/20062466    답변글 사용 사례 : 2.1 XSDObjectGen - Enum 처리 방식 변경
25정성태6/23/20062846사용 사례 : 1. VS.NET 통합 환경에서 XSDObjectGen 실행
24정성태6/23/20062343자동 로그인 ver 1.53파일 다운로드1
22정성태6/18/20062430ST : XSDObjectGen 1.4.2.1 포함
23정성태6/18/20062414    답변글 XSDObjectGen 1.4.2.1 - 커스터마이징파일 다운로드1
20정성태1/4/20073571ST: NDoc 2.0 한글 지원 버전
21정성태5/26/20062822    답변글 [답변]: ST: NDoc 2.0 한글 지원 버전 (업데이트)
19정성태5/18/20064123ST: ROBOCOPY.exe
18정성태4/20/20062561자동 로그인 ver 1.52 [2]파일 다운로드1
11정성태2/14/20047143폴더 백업( 동기화 ) 프로그램 [5]파일 다운로드1
7정성태7/24/20033041IExtender : Internet Explorer 확장툴 [2]
8정성태8/4/20032446    답변글 제거방법
6정성태7/23/20035343성태의 사이트 로그인 보안 구현: SysnetLogin
5정성태12/24/20043493성태의 게시판 구현이론: SysnetBoard
[1]  2