Silverlight를 설치하려면 여기를 클릭합니다.*
Korea 대한민국변경|Microsoft 전체 사이트
MSDN
|개발자 센터
MSDN Home   MSDN Home
MSDN 홈 > MSDN Magazine > 2004년 기사 > Office InfoPath 2003의 사용자 지정 양식을 통해 사용자 입력을 XML로 전환하기

Office InfoPath 2003의 사용자 지정 양식을 통해 사용자 입력을 XML로 전환하기

Aaron Skonnard

이 기사는 여러분이 Microsoft Office와 XML을 잘 알고 있다는 가정 하에 작성된 것입니다.
난이도 1 2 3
요약 Office InfoPath 2003은 제출되었을 때에 사용자가 입력한 데이터를 XML로 변환하여서 XML을 지원하는 프로세스에서 사용할 수 있게 하는 새로운 Microsoft Office 제품이다. InfoPath 솔루션을 갖추게 되면, 일반적으로 사용되는 모든 서류 양식들을 Microsoft Office 기반의 양식으로 변환하여서 수기로 작성하고 데이터를 시스템에 다시 입력하는 손실을 없앨 수 있다. 오늘날의 기업들은 매일 수집하는 방대한 데이터의 가치와 그것을 이용하는 것이 얼마나 어려운 일인지를 잘 알고 있으며 이 데이터를 제대로 활용하기 위해 노력하고 있다. InfoPath는 효과적인 데이터 수집 시스템의 설계를 도와줄 것이다. 이 기사는 여러분들이 어디에서 시작해야 하는 지를 설명하고 있다.

기업들은 비즈니스 프로세스와 의사결정 과정을 위해 정보에 의존하고 있다. 이런 정보의 품질과 정확성이 핵심이며 이것은 정보를 신속하게 수집하고 분석할 수 있는 능력만큼이나 중요하다. 정보는 다양한 형식으로 기록되며. 가장 원초적이며 일반적인 형식은 서류 양식이다. 비용 보고서, 고객 평가, 영업출장 보고서, 근태카드를 생각해보자. 양식들을 채우기는 쉬울 수 있지만 수집된 데이터는 컴퓨터 시스템에 다시 입력되어야 내부 비즈니스 프로세스에 사용될 수 있는데, 중복과 오류의 가능성이 높아서 생산성을 저하시킨다. Microsoft Word 또는 Excel에서 만들어진 것과 같은 워드 프로세서 문서도 일반적이다. 이런 형식을 사용하는 것도 문제가 되는데, 이것은 이 문서에서 프로그래밍으로 정보와 메타데이터를 추출하는 것이 어렵기 때문이다. XML은 유연하기 때문에 기업들은 자신들만의 특정 데이터 표현 요구에 따라 XML 스키마를 정의할 수 있다. 잘 알려진 XML 스키마 정의가 있게 되면 모든 비즈니스 프로세스를 프로그래밍해서 XML 문서를 사용하게 만들고 그 의미를 알도록 만들 수 있다. 웹 서비스 플랫폼은 XML을 사용해서 TCP, HTTP, SMTP와 같은 프로토콜을 통해 정보를 교환한다. XML과 개방형 프로토콜을 결합하면 비즈니스 프로세스들 간에 표준 방식으로 정보를 공유할 수 있는 하부구조를 만들 수 있다. 이전에 수작업으로 작성한 데이터를 XML로 바꾸게 되면 기업 전체에서 많은 이점을 얻을 수 있다. 이전에 XDocs로 알려졌던 InfoPath가 바로 이런 일을 할 수 있는 Microsoft Office System의 새로운 제품이다. InfoPath는 XML Schema 또는 Web Services Description Language (WSDL) 정의에 따라 양식을 설계하는 환경을 제공한다. 여러분은 짧은 시간 내에 InfoPath를 사용해서 XML Schema Definition (XSD)을 준수하는 XML 문서를 만들거나 WSDL 정의를 따르는 웹 서비스와 통신하는 새 양식을 만들 수 있다. XML 웹 서비스와 InfoPath가 함께 사용되어서 기존의 정보 수집 방법을 바꿀 수 있다. InfoPath는 전통적인 Web Form을 사용하지 않는 리치 클라이언트와 오프라인 기능을 많이 제공한다. 무엇보다 반가운 것은 기존의 웹 서비스 개발 환경에 비해 훨씬 쉽다는 것이다. 이 기사는 InfoPath의 주요 기능에 대해 초점을 맞추고 있다.

InfoPath 소개
??InfoPath는 양식 템플리트를 설계하고 양식을 채우는 두 가지 활동을 지원한다. 두 작업을 하기 위해서는 InfoPath가 컴퓨터에 설치되어 있어야 한다. InfoPath를 처음으로 실행하면, 그림 1과 같은 윈도우를 보게 될 것이다. 파일 메뉴와 우측의 작업 창이 주요 작업에 대한 옵션을 제공하고 있다.

Figure 1 InfoPath Environment
그림 1 InfoPath 환경

??InfoPath는 XSD 또는 WSDL을 이용하며 사용하기 쉬운 WYSIWYG 인터페이스를 제공하고 있다. 새 양식 템플리트를 설계하면, InfoPath는 이것을 중앙의 위치에 게시해서 다른 사람들이 접속할 수 있게 한다. 사용자가 양식 템플리트를 선택하면, InfoPath가 그 양식을 열고 사용자는 그 양식을 채우게 된다. 사용자의 작업이 끝나면, 그 양식은 저장되거나 또 다른 처리를 위해 전송된다. InfoPath는 주요 기능을 저장해서 사용자가 네트워크에 연결되지 않아도 양식을 사용할 수 있게 해서 오프라인 모드를 지원한다. 양식은 웹 사이트 디렉토리에 XML 파일을 게시하거나 SOAP를 사용해서 웹 서비스 목표로 전송할 수 있다.

양식 템플리트를 설계하기
??새 양식 템플리트를 설계할 때에, 새 양식을 선택해서 처음부터 시작하거나 데이터 원본에서 새로 만들기를 선택해서 기존의 데이터 원본을 사용할 수 있다(그림 1참조). 빈 양식의 오른쪽 창에 있는 작업 목록은 새 양식을 설계하면서 처리하려고 하는 다양한 작업에 대한 링크를 가지고 있다. 특히 여기에서 양식의 외양을 조정하고, 다양한 형식의 정보를 파악할 수 있는 컨트롤들을 가져다 놓고, 이 컨트롤들이 기본 데이터 원본에 어떻게 매핑되는 지를 정의하고, 양식의 다양한 뷰를 정의하고, 그 양식을 게시할 수 있다. 새 양식을 선택하면, InfoPath는 컨트롤들을 가져다 놓고 필요에 따라 다양한 방식으로 정렬할 수 있는 빈 디자인 외양을 제공한다. 다른 방법으로는, 다양한 테이블과 구역을 포함해서 내장된 레이아웃 옵션들 중에서 선택할 수도 있다. 또한 디자이너를 통해 색상 체계, 폰트, 다른 기능들을 쉽게 변경할 수 있으며, 매우 다양한 데이터 표현 요구를 충족시킬 수 있는 멋진 컨트롤들을 내장하고 있다. 개발하면서, 양식 미리보기를 선택해서 사용자의 실제 작업 환경이 어떤 지를 확인할 수도 있다. 양식을 처음부터 만드는 경우, InfoPath는 디자인 화면 뒤에서 양식에 입력된 정보의 XML Schema 정의를 자동으로 만든다. 양식에 있는 각각의 컨트롤의 레이아웃과 속성을 조작해서 각각의 컨트롤이 XML Schema 데이터형과 어떻게 매핑되는 지를 명시적으로 정의할 수 있다. 예를 들면, 직원 정보를 입력하는 그림 2의 양식을 살펴보자.

Figure 2 New Employee Form
그림 2 새 Employee 양식

??필자가 이 양식을 디자인했을 때, Name 텍스트상자를 xsd:string 형으로, Salary 텍스트상자를 xsd:double 형으로, Date of birth 텍스트상자는 xsd:date로 정의했다. InfoPath가 이런 정보를 표현하기 위해 만드는 스키마는 그림 3과 같다. 유감스럽게도, 이 방법을 사용할 경우에는 스키마를 조작할 수 있는 여지가 많지 않다. 컨트롤을 놓는 순서에 따라 스키마의 계층구조가 결정된다. 스키마에 영향을 줄 수 있는 유일한 메커니즘은 WYSIWYG 디자이너를 통해 사용할 수 있는 다양한 레이아웃과 컨트롤 속성들뿐이다. 이 양식을 채우고 저장을 하게 되면, InfoPath가 그림 4와 같이 스키마를 따르는 XML 문서를 만들게 된다. 이와 같이 처음부터 시작하는 방법이 XML Schema 디자이너 사용을 제한하고 있지만, 이 방법이 원래의 목적이 아니면, InfoPath의 기본적인 목적은 기존의 XML Schema 또는 WSDL 정의에서 양식을 다이나믹하게 만들 수 있게 하는 것이다.

XML Schema 또는 WSDL을 사용해서 시작하기
??기존의 데이터 원본에서 양식을 디자인하면, 실제로는 기존의 데이터 원본과 양식 템플리트 간의 매핑을 정의하고 있는 것이다. InfoPath는 XML document, XSD, 데이터베이스 (SQL Server 또는 Microsoft Access), 웹 서비스와 같은 데이터 원본을 지원한다. 데이터 원본에서 새로 만들기를 선택하면, 데이터 원본 설치 마법사가 나타나고 사용하려는 데이터 원본의 형을 선택할 수 있다. 프로젝트에서 사용하기로 결정하는 데이터 원본의 형식에 상관없이, InfoPath는 데이터 원본에서 사용할 수 있는 메타데이터를 읽고 이것을 데이터 원본 보기에서 보여준다. 여러분은 데이터 원본 필드를 양식 위에 끌어다 놓을 수 있다. 이런 방법은 매우 다이나믹한 방법으로 양식을 만들 수 있게 해준다. 예를 들면, 출판 시스템에서 저자 정보를 대표하는 그림 5의 스키마를 검토해보자. 이 스키마에 따라 새 양식을 만든다면, InfoPath는 데이터 원본 보기에 모든 author 스키마 필드를 보여준다. 이 스키마 필드를 양식으로 끌어다 놓고 다음과 같은 모양으로 정렬시킬 수 있다(그림 6참조).

Figure 6 New Author Form
그림 6 새 Author 양식

??이 양식을 채우고 저장을 하면, InfoPath는 여러분이 사용한 기존의 스키마 정의를 따르는 XML 문서를 만든다. 이런 경우, 그림 7의 문서와 비슷한 XML 문서가 만들어진다. 웹 서비스용 양식을 설계하는 것도 비슷한 과정을 따르지만, 웹 서비스 위치를 명시하고 WSDL 정의를 제공해야 한다. InfoPath는 WSDL 정의에서 스키마 정보를 추출해서 여러분이 사용하는 데이터 원본 뷰를 만든다. 여러분은 데이터를 웹 서비스에서 주고 받을 것인지와 같은 옵션을 선택해서 이 양식이 웹 서비스와 연동된다는 것을 반드시 지정해주어야 한다. 데이터 전송전용, 수신전용 또는 둘 모두의 양식을 만들 수 있다. 데이터 수신과 전송을 선택하면, InfoPath는 양식에 대해 데이터를 서비스에 전송하고, 서비스에서 반환되는 데이터에 대한 뷰 2개를 만든다. 이 경우, 데이터 원본 뷰는 2개의 필드 그룹을 가지고 있다. queryFields는 서비스를 실행할 경우에 제공되어야 하는 데이터가 있으며, dataFields는 웹 서비스에서 반환되는 데이터를 가지고 있다. queryFields를 Query 뷰에, dataFields를 Data 뷰에 끌어다 놓는다. 사용자가 Query 뷰를 채우고 Calculate를 누르면, InfoPath는 제공된 정보를 사용해서 웹 서비스를 실행하고 그 결과를 Data 뷰에 나타낸다.

양식을 저장하고 게시하기
??양식 템플리트를 만들면, 이것을 저장하거나 게시해야 한다. 저장 버튼을 클릭하기만 파면 양식 템플리트를 파일로 저장된다는 것을 알고 있어야 한다. 언제라도 그 양식 템플리트를 불러와서 계속 작업을 할 수 있다. 양식 템플리트는 다른 사용자가 데이터를 입력하기 위해 필요한 모든 정보를 가지고 있는 스탠드얼론 파일이다. 파일-> 양식 파일 풀어서 저장을 선택해서 양식을 구성하는 다양한 파일들을 추출할 수 있다. 이렇게 하면 내부에서 사용된 XML Schema와 XSLT 파일들을 포함해서 다양한 파일들을 하드 디스크에 기록하게 된다. 게시를 선택하면 게시 마법사가 나타나는데, 이것을 통해 완성된 양식을 중앙의 한 장소에 올려두고 다른 사용자들이 사용할 수 있게 한다. 완성된 양식을 네트워크 공유장소, SharePoint 양식 라이브러리 또는 웹 서버의 가상 디렉토리에 저장할 수 있다.

양식을 채우기
??양식을 디자인하는 목적은 사용자들이 양식을 채우게 하는 것이다. 양식이 게시되면, 사용자들은 (양식 채우기를 선택해서) InfoPath에서 양식을 직접 사용하거나 윈도우 탐색기 또는 인터넷 익스플로러를 통해 파일을 찾을 수 있다. 양식을 찾으면, InfoPath는 이것을 "양식 채우기" 모드로 열어서 사용자가 데이터를 입력할 수 있게 한다(그림 8 참조). 앞에서 설명한 것과 같이, 사용자들은 양식을 로칼 하드 드라이브에 저장하고 네트워크 연결이 끊어졌을 때에 작업을 하고 다시 연결되면 전송할 수 있다.

Figure 8 Filling Out a Form
그림 8 양식을 채우기

??저장된 양식은 디자인되었던 스키마 또는 웹 서비스를 따르는 XML 문서에 불과하다. 예를 들면, 그림 7의 XML 문서는 그림 8에 있는 저장된 양식이다. 여러분이 알 수 있듯이. InfoPath는 로더(loader)가 이 문서는 XML 문서의 기본 애플리케이션(IE)이 아닌, InfoPath로 다시 로딩되어야 한다는 것을 알 수 있도록 하는 몇 가지 처리 명령(PIs) 을 만든다. PI가 있는 XML 파일을 두 번 클릭하면, 윈도우는 자동으로 InfoPath를 실행시키고 사용자가 저장된 양식을 채울 수 있게 한다. 전통적인 웹 양식에 비해 InfoPath 양식이 가지는 주요 장점 중 하나는 런타임 환경이 제공하는 풍부한 기능이다. 예를 들면, InfoPath는 양식을 채울 경우에 Word와 같은 자동 철자확인 기능을 제공한다. 데이터 입력 시에 InfoPath가 철자 오류를 찾아내면, 적색 사각형으로 그 단어를 나타내고 변경가능한 옵션을 제공한다. InfoPath는 데이터의 품질을 보장하기 위해 유효성 검증 기능을 제공한다. 이 기능은 그림 5에서 사용된 것과 같은 사용자 지정 형을 포함한 XML Schema 정의에 대해 실시간 유효성 검증 기능을 제공한다. 사용자가 컨트롤의 기본 XML Schema 형을 제공하지 않는 값을 입력하면, 적색 사각형이 나타나고 도움을 주는 오류 메시지가 컨트롤의 툴팁에 나타난다. 스키마에 대한 유효성 검증은 전송 시에도 동작한다. 또한 InfoPath는 자동완성, 찾기와 바꾸기, 드랙앤 드롭, 출력 지원과 같은 고급 기능들도 제공한다. InfoPath에서의 작업은 다른 Microsoft Office 제품을 사용할 때의 느낌과 다르지 않다.

양식을 전송하기
??마지막 단계는 채워진 양식을 전송하는 것이다. 이 단계는 양식이 디자인된 방식에 따라 약간씩 달라진다. 어떤 경우, 디자이너는 그 양식을 공유 디렉토리의 어딘가에 저장하려고 했을 수도 있다. 그렇지만 그 양식은 일반적으로 전송 버튼을 가지고 있어야 하는데, 여러분은 버튼 컨트롤을 양식에 가져다 놓고 속성 창에서 동작을 전송으로 설정해서 여러분 자신의 전송 버튼을 만들 수 있다. 이렇게 하면 사용자가 버튼을 눌렀을 때에 어떤 일이 일어나는 지를 명시할 수 있는 대화상자가 나타난다.

Figure 9 Sending a Form Via E-mail
그림 9 이메일을 통해 양식을 전송하기

??양식은 웹 서비스, 웹 서버의 가상 디렉토리, 사용자 지정 스크립트 코드로 전송될 수 있다. 또한 파일 -> 전자메일로 보내기를 선택해서 완성된 양식을 전송할 수도 있다. 이렇게 하면, InfoPath는 이메일에 XML 문서를 첨부하고 이메일 바디에 뷰의 HTML을 추가한다(그림 9 참조).

고급 기능
??InfoPath는 고급 기능을 다양하게 가지고 있는데 한 가지 고급 기능은 형식을 갖춘 텍스트(다른 폰트, 볼드체, 이탈릭체)를 입력하는데 사용되는 리치 텍스트 컨트롤이다. 리치 텍스트 컨트롤은 Word에서 하는 것과 같이, 자유 형식 텍스트를 입력할 수 있으면서도 XML의 장점을 잃거나 사용자가 제공하는 형식 정보를 포기하지 않아도 된다. 또 다른 고급 기능은 선택과 반복 구역이다. 선택 구역은 숨겨져있다가 필요한 경우에만 나타나서 양식을 단순하게 만들어준다. 반복 구역(반복 목록/표)은 스키마에서 여러 번 발생되는 정보 블록을 반복시킬 수 있게 한다. 또한 InfoPath는 반복 컨트롤을 외부 데이터 원본과 연결해서 컨트롤의 데이터를 자동으로 이식해준다.

Figure 10 Creating a Validation Rule
그림 10유효성 검증 규칙을 정하기

??마지막으로, InfoPath는 XML Schema가 제공하는 것보다 더 고급의 유효성 검증 기능을 제공한다. 양식 컨트롤의 속성 페이지의 데이터 유효성 검증 버튼을 클릭하면 추가적인 유효성 검증을 위한 2개의 옵션을 제공한다. 한 옵션은 스크립트를 사용해서 OnBeforeChange, OnValidate, OnAfterChange 이벤트 중 하나에 응답하는 사용자 지정 유효성 검증 코드를 작성하는 것이다. 다른 옵션은 그림 10과 같이 사전에 정의된 수식과 제약조건을 사용해서 새로운 유효성 검증 규칙을 만드는 것이다.

정리
??InfoPath는 다이나믹한 XML 기반의 양식을 통해 이질적인 원본에서 원활하게 정보를 수집하는 새로운 Microsoft Office 제품이다. 전반적으로, InfoPath는 모든 사람들이 XML과 웹 서비스 기술을 사용하는 전자 양식을 손쉽게 디자인하고, 게시하고, 채울 수 있게 해준다. 기업들은 InfoPath를 사용하면, XML을 지원하는 모든 애플리케이션에서 이전에는 접속할 수 없었던 데이터를 훨씬 더 쉽게 공유할 수 있다는 것을 알게 될 것이다.

참조자료:
The XML Files: A Quick Guide to XML Schema?(US)
The XML Files: A Quick Guide to XML Schema-Part 2?(US)
Understanding XML Namespaces?(US)
Understanding XML Schema?(US)

Aaron Skonnard is an instructor and researcher at DevelopMentor, where he develops the XML and Web Service-related curriculum. Aaron coauthored Essential XML Quick Reference (Addison-Wesley, 2001) and Essential XML (Addison-Wesley, 2000). Reach him at http://staff.develop.com/aarons.
출처: MSDN Magazine2003년 9월호에서 발췌?(US)
Top of Page Top of Page


Microsoft