96
XML Spy IDE User and Reference Manual Version 4.3 (한한 한한한) XML Spy Co.Ltd

1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

XML Spy IDEUser and

ReferenceManual Version

43(한글 번역판)

XML Spy CoLtd

목 차

Part 1 Introduction1 XML 소개2 XML Spy 로의 초대3 XML 이란

1) 왜 XML인가2) XML 표준용어

4 XML Spy 사용자 인터페이스1) XML 편집2) 스키마 편집3) XSL 편집4) 프로젝트 관리

Part 2 XML SPY Tutorial1 XML Spy 소개

2 처음부터 스키마 생성하기1) 새로운 스키마 파일 생성2) 스키마에 엘리먼트 추가3) drag amp drop을 이용한 엘리먼트 추가4) 스키마 view설정5) 기본 스키마 완성

3 스키마 컴포넌트 재사용하기1) simple type과 complex type을 확장해서 만든 Globals2) 참조 속성 그리고 목록3) 스키마 문서 조작법

4 스키마 문서의 일반화

5 XML문서 만들기1) 새 XML파일 만들고 완성하기2) Text와 Enhanced Grid view에서 편집하기3) 데이터 입력과 검증4) 데이터 조작하기 - Entry helper5) DatabaseTable view

6 XSL 변환1) XML에서 HTML로의 변환

7 데이터베이스 데이터의 Importing 과 Exporting1) 외부 데이터베이스에 XML데이터 Export2) 데이터베이스 데이터 Import

8 데이터베이스 스키마 생성1) 데이터베이스를 스키마로 변환

9 프로젝트 생성1) 프로젝트에 파일 추가

10 마치면서

Part 1

Introduction

1 XML 소개

XML(The eXtensible Markup Language)은 1998년 W3C(World Wide Web Consortium)에 의해 정의되었던 SGML(the Structured Generalized Markup Language)의 부분 집합입니다(httpwwww3orgTRREC-xml를 보세요) XML의 본래 목적은 현재 HTML이 웹 상에서 주고받으며 처리하는 것들을 SGML이

일반적으로 가능하게 끔 하려는 데 있었습니다 XML은 사용하기 쉽게 고안되었고 SGML과 HTML 양쪽에 정보 전달을 할 수 있도록 고안 되었습니다

XML Spy의 온라인 도움말과 인쇄 문서에는 XML과 XML Spy의 일반적인 개요를 제공할 수 있는 튜토리얼 부분이 포함되어 있습니다

XML 및 그것과 관련된 프로토콜에 대해서 더 많은 공부를 원한다면 XML Spy 웹 서버 상에서 XML과 관련된 다양한 정보들이 링크되어 있는 우리의 권장목록을 찾아보십시오

XML 작업을 할 때 많은 도움을 줄 수 있는 XML Spy의 여러 특징을 설명하기에 앞서 XML의 여러 측면과 W3C와 관련된 다른 표준에 대해서 간단히 설명할 것입니다

XML에 대해서 이미 잘 알고 있다면 XML Spy 사용법 부분은 그냥 건너뛰어도 좋습니다

2 XML Spy로의 초대

XML Spy Suite는 기능이 다양할 뿐만 아니라 사용하기도 쉽게 만들어진 제품 군이므로 어떤 XML 어플리케이션 개발도 아주 용이하게 처리할 수 있습니다

제품군은 XML Spy Document Framework와 XML Spy IDE로 구성되어 있습니다 XML Spy Document Framework는 XSLT Designer와 XML Spy Document Editor로 이루어져 있습니다제품군 내의 각 제품에 대해서는 헬프 메뉴 옵션을 통해서 도움을 받을 수 있습니다

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 2: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

목 차

Part 1 Introduction1 XML 소개2 XML Spy 로의 초대3 XML 이란

1) 왜 XML인가2) XML 표준용어

4 XML Spy 사용자 인터페이스1) XML 편집2) 스키마 편집3) XSL 편집4) 프로젝트 관리

Part 2 XML SPY Tutorial1 XML Spy 소개

2 처음부터 스키마 생성하기1) 새로운 스키마 파일 생성2) 스키마에 엘리먼트 추가3) drag amp drop을 이용한 엘리먼트 추가4) 스키마 view설정5) 기본 스키마 완성

3 스키마 컴포넌트 재사용하기1) simple type과 complex type을 확장해서 만든 Globals2) 참조 속성 그리고 목록3) 스키마 문서 조작법

4 스키마 문서의 일반화

5 XML문서 만들기1) 새 XML파일 만들고 완성하기2) Text와 Enhanced Grid view에서 편집하기3) 데이터 입력과 검증4) 데이터 조작하기 - Entry helper5) DatabaseTable view

6 XSL 변환1) XML에서 HTML로의 변환

7 데이터베이스 데이터의 Importing 과 Exporting1) 외부 데이터베이스에 XML데이터 Export2) 데이터베이스 데이터 Import

8 데이터베이스 스키마 생성1) 데이터베이스를 스키마로 변환

9 프로젝트 생성1) 프로젝트에 파일 추가

10 마치면서

Part 1

Introduction

1 XML 소개

XML(The eXtensible Markup Language)은 1998년 W3C(World Wide Web Consortium)에 의해 정의되었던 SGML(the Structured Generalized Markup Language)의 부분 집합입니다(httpwwww3orgTRREC-xml를 보세요) XML의 본래 목적은 현재 HTML이 웹 상에서 주고받으며 처리하는 것들을 SGML이

일반적으로 가능하게 끔 하려는 데 있었습니다 XML은 사용하기 쉽게 고안되었고 SGML과 HTML 양쪽에 정보 전달을 할 수 있도록 고안 되었습니다

XML Spy의 온라인 도움말과 인쇄 문서에는 XML과 XML Spy의 일반적인 개요를 제공할 수 있는 튜토리얼 부분이 포함되어 있습니다

XML 및 그것과 관련된 프로토콜에 대해서 더 많은 공부를 원한다면 XML Spy 웹 서버 상에서 XML과 관련된 다양한 정보들이 링크되어 있는 우리의 권장목록을 찾아보십시오

XML 작업을 할 때 많은 도움을 줄 수 있는 XML Spy의 여러 특징을 설명하기에 앞서 XML의 여러 측면과 W3C와 관련된 다른 표준에 대해서 간단히 설명할 것입니다

XML에 대해서 이미 잘 알고 있다면 XML Spy 사용법 부분은 그냥 건너뛰어도 좋습니다

2 XML Spy로의 초대

XML Spy Suite는 기능이 다양할 뿐만 아니라 사용하기도 쉽게 만들어진 제품 군이므로 어떤 XML 어플리케이션 개발도 아주 용이하게 처리할 수 있습니다

제품군은 XML Spy Document Framework와 XML Spy IDE로 구성되어 있습니다 XML Spy Document Framework는 XSLT Designer와 XML Spy Document Editor로 이루어져 있습니다제품군 내의 각 제품에 대해서는 헬프 메뉴 옵션을 통해서 도움을 받을 수 있습니다

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 3: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

6 XSL 변환1) XML에서 HTML로의 변환

7 데이터베이스 데이터의 Importing 과 Exporting1) 외부 데이터베이스에 XML데이터 Export2) 데이터베이스 데이터 Import

8 데이터베이스 스키마 생성1) 데이터베이스를 스키마로 변환

9 프로젝트 생성1) 프로젝트에 파일 추가

10 마치면서

Part 1

Introduction

1 XML 소개

XML(The eXtensible Markup Language)은 1998년 W3C(World Wide Web Consortium)에 의해 정의되었던 SGML(the Structured Generalized Markup Language)의 부분 집합입니다(httpwwww3orgTRREC-xml를 보세요) XML의 본래 목적은 현재 HTML이 웹 상에서 주고받으며 처리하는 것들을 SGML이

일반적으로 가능하게 끔 하려는 데 있었습니다 XML은 사용하기 쉽게 고안되었고 SGML과 HTML 양쪽에 정보 전달을 할 수 있도록 고안 되었습니다

XML Spy의 온라인 도움말과 인쇄 문서에는 XML과 XML Spy의 일반적인 개요를 제공할 수 있는 튜토리얼 부분이 포함되어 있습니다

XML 및 그것과 관련된 프로토콜에 대해서 더 많은 공부를 원한다면 XML Spy 웹 서버 상에서 XML과 관련된 다양한 정보들이 링크되어 있는 우리의 권장목록을 찾아보십시오

XML 작업을 할 때 많은 도움을 줄 수 있는 XML Spy의 여러 특징을 설명하기에 앞서 XML의 여러 측면과 W3C와 관련된 다른 표준에 대해서 간단히 설명할 것입니다

XML에 대해서 이미 잘 알고 있다면 XML Spy 사용법 부분은 그냥 건너뛰어도 좋습니다

2 XML Spy로의 초대

XML Spy Suite는 기능이 다양할 뿐만 아니라 사용하기도 쉽게 만들어진 제품 군이므로 어떤 XML 어플리케이션 개발도 아주 용이하게 처리할 수 있습니다

제품군은 XML Spy Document Framework와 XML Spy IDE로 구성되어 있습니다 XML Spy Document Framework는 XSLT Designer와 XML Spy Document Editor로 이루어져 있습니다제품군 내의 각 제품에 대해서는 헬프 메뉴 옵션을 통해서 도움을 받을 수 있습니다

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 4: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Part 1

Introduction

1 XML 소개

XML(The eXtensible Markup Language)은 1998년 W3C(World Wide Web Consortium)에 의해 정의되었던 SGML(the Structured Generalized Markup Language)의 부분 집합입니다(httpwwww3orgTRREC-xml를 보세요) XML의 본래 목적은 현재 HTML이 웹 상에서 주고받으며 처리하는 것들을 SGML이

일반적으로 가능하게 끔 하려는 데 있었습니다 XML은 사용하기 쉽게 고안되었고 SGML과 HTML 양쪽에 정보 전달을 할 수 있도록 고안 되었습니다

XML Spy의 온라인 도움말과 인쇄 문서에는 XML과 XML Spy의 일반적인 개요를 제공할 수 있는 튜토리얼 부분이 포함되어 있습니다

XML 및 그것과 관련된 프로토콜에 대해서 더 많은 공부를 원한다면 XML Spy 웹 서버 상에서 XML과 관련된 다양한 정보들이 링크되어 있는 우리의 권장목록을 찾아보십시오

XML 작업을 할 때 많은 도움을 줄 수 있는 XML Spy의 여러 특징을 설명하기에 앞서 XML의 여러 측면과 W3C와 관련된 다른 표준에 대해서 간단히 설명할 것입니다

XML에 대해서 이미 잘 알고 있다면 XML Spy 사용법 부분은 그냥 건너뛰어도 좋습니다

2 XML Spy로의 초대

XML Spy Suite는 기능이 다양할 뿐만 아니라 사용하기도 쉽게 만들어진 제품 군이므로 어떤 XML 어플리케이션 개발도 아주 용이하게 처리할 수 있습니다

제품군은 XML Spy Document Framework와 XML Spy IDE로 구성되어 있습니다 XML Spy Document Framework는 XSLT Designer와 XML Spy Document Editor로 이루어져 있습니다제품군 내의 각 제품에 대해서는 헬프 메뉴 옵션을 통해서 도움을 받을 수 있습니다

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 5: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

일반적으로 가능하게 끔 하려는 데 있었습니다 XML은 사용하기 쉽게 고안되었고 SGML과 HTML 양쪽에 정보 전달을 할 수 있도록 고안 되었습니다

XML Spy의 온라인 도움말과 인쇄 문서에는 XML과 XML Spy의 일반적인 개요를 제공할 수 있는 튜토리얼 부분이 포함되어 있습니다

XML 및 그것과 관련된 프로토콜에 대해서 더 많은 공부를 원한다면 XML Spy 웹 서버 상에서 XML과 관련된 다양한 정보들이 링크되어 있는 우리의 권장목록을 찾아보십시오

XML 작업을 할 때 많은 도움을 줄 수 있는 XML Spy의 여러 특징을 설명하기에 앞서 XML의 여러 측면과 W3C와 관련된 다른 표준에 대해서 간단히 설명할 것입니다

XML에 대해서 이미 잘 알고 있다면 XML Spy 사용법 부분은 그냥 건너뛰어도 좋습니다

2 XML Spy로의 초대

XML Spy Suite는 기능이 다양할 뿐만 아니라 사용하기도 쉽게 만들어진 제품 군이므로 어떤 XML 어플리케이션 개발도 아주 용이하게 처리할 수 있습니다

제품군은 XML Spy Document Framework와 XML Spy IDE로 구성되어 있습니다 XML Spy Document Framework는 XSLT Designer와 XML Spy Document Editor로 이루어져 있습니다제품군 내의 각 제품에 대해서는 헬프 메뉴 옵션을 통해서 도움을 받을 수 있습니다

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 6: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

XSLT Designer는 직관적인 드래그-앤드-드롭 사용자 인터페이스를 사용함으로써 복잡한 XSLT 스타일시트를 자동으로 작성할 수 있게 해주는 새로운 접근법입니다 XSLT Designer는 XML Spy Document Editor를 사용할 수 있도록 진보된 전자 서식을 생성해줍니다

XML Spy Document Editor는 워드프로세서 형태의 편집기로서 전자 서식에 바탕을 둔 데이터 입력은 물론 그래픽 엘리먼트와 테이블 XML 스키마를 이용한 실시간 유효성 검증도 지원해줍니다

XML Spy IDE는 XML 기반의 어플리케이션 개발을 위한 산업선도 솔루션으로서 XML 도큐먼트 XML 스키마 그리고 XSLT 스타일시트를 쉽게 생성해주고 관리해줍니다

XML SPY Suite에는 XML의 주요작업 측면에서 XML Spy를 사용하는 방법을 설명해 놓은 튜토리얼을 포함합니다

bull XML 편집과 유효성 검증bull SchemaDTD 편집과 유효성 검증bull XSL 편집과 변환

레퍼런스 부분에는 각 윈도우와 메뉴 명령이 상세히 설명되어 있습니다 그리고 어떠한 메뉴나 대화 상자에서도 내용 색인 그리고 F1(원하는 부분의 help 지원)을 통해 쉽게 접근할 수 있습니다

또한 여러분은 우리의 XML Spy 웹서버에서 뉴스나 새로 갱신된 자료 예제를 정기적으로 체크하고 싶어할 것입니다 만약 간혹 에러나 온라인 도움말 혹은 인쇄된 문서에서 오타나 불완전한 정보를 보게 된다면 XML Spy와 관련된 도움이 필요할 것입니다 그때는 망설이지 말고 인터넷 상의 우리 지원센터를 방문 하십시오 거기에는 온라인 지원양식뿐만 아니라 FAQ 페이지로 링크할 수도 있게 되어 있습니다 또한 새로운 문서에 대한 어떠한 피드백이라도 거리낌없이 우리한테 메일을 보내주십시요

우리는 웹서버 다운로드 페이지의 인쇄 문서와 온라인 헬프 시스템을 정기적으로 갱신할 것입니다3 XML 이란

만일 XML이 낯설게 느껴진다면 아마 그 혼란의 대부분은 HTML과 매우 비슷하기 때문입니다 왜냐하면 XML은 처음에 HTML과 유사한 것처럼 보이지만 세부내용에서는 어렵기 때문에 그렇습니다

따라서 우리는 무엇이 진정한 XML이고 왜 XML이 필요한지를 살펴보는 일부터 시작할 것입니다

XML Specification

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 7: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

W3C의 설명서에는 XML은 SGML의 부분 집합으로 정의되어 있습니다 그래서 XML을 올바로 이해하기 위해서는 먼저 SGML을 자세히 살펴볼 필요가 있습니다

SGML은 Standard Generalized Markup Language의 약어로서 항공기 유지보수나 발전소 문서화와 같은 대규모 어플리케이션을 목적으로 개발되었으며 앞으로도 계속 지속될 것이다

XML이 HTML과 유사하게 보이는 이유는 HTML이 SGML의 일부분으로 정의되었다는 점에 있습니다 XML은 실제로 HTML보다 SGML과 더 유사한데 왜냐하면 HTML은 오직 웹페이지를 일컫는 데만 사용하여 왔던 SGML의 특정 일부분이기 때문입니다

XML이 SGML을 단순화해서 만들어졌기 때문에 현재 W3C에서 HTML 40을 XML 어플리케이션 즉 XHTML 10을 만드는 것으로 재정의한 것은 조금도 이상하지 않습니다 그러나 이러한 상황은 지금 우리에게 중요한 게 아닙니다 왜냐하면 우리는 아직도 ldquoXML이란 무엇인가rdquo라는 기본적인 문제에 직면해있기 때문이죠

이 질문에 답하기 위해 우선 ldquoXML은 다음과 같은 뜻은 아니다rdquo라고 정의해 둡시다

bull XML은 프로그램 언어가 아니다bull XML은 HTML의 차세대 버전이 아니다bull XML은 데이터베이스가 아니다bull XML은 특별한 어떤 수직적 시장도 아니고 수평적 시장이 아니다bull XML은 모든 문제들을 해결해 주는 만능상자가 아니다 그러나 그런 문제들을

해결하는 데 매우 강력한 도구는 될 수 있다

XML은 데이터를 바꾸고 기술하고 구조화하는 방법을 분명하게 정의한다이 내용에서의 데이터는 극히 한정된 종류의 데이터를 말합니다 여러분은 XML을 수학공식이나 화합물 천문학 정보 재정추론 건축설계도를 기술할 때 사용할 수도 있고 세익스피어 연극의 주석달기 불교의 명언 정리하기 전화시스템의 음성처리하기 등에 사용할 수도 있습니다

XML에 대한 감을 잡기 위해 간단한 XML 문서를 보도록 합시다

ltproductgtltnamegtAppleltnamegtltpricegt010ltpricegt

ltproductgt

lt and gt 기호는 소위 markup(lt gt 안에 들어가는)과 문서의 실제 데이터(lt gt 밖에 존재하는)를 구분하기 위해 사용합니다

XML 문서는 시작태그와 종료태그(여기서 markup이라는 용어가 생겼다)에 의해 작성되는 개별 엘리먼트로 구성됩니다 태그에는 엘리먼트 이름이 있는데 그래서 서로 다른 엘리먼트를 쉽게 구분할 수 있습니다 시작태그는 lt gt 이고 종료태그는 lt gt 이고 시작태그와 종료태그는 항상 쌍을

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 8: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

이루어 존재해야 합니다 위의 XML 예제 문서에서는 ldquoproductrdquo라는 하나의 엘리먼트가 존재하는데 그것은 두 개의 엘리먼트로 이루어져 있습니다 즉 ldquonamerdquo(Apple데이터를 포함하는)과 ldquopricerdquo(lsquo010rsquo데이터를 포함하는) HTML에서의 태그정의(body h1 p)와는 달리 XML은 (ldquobodyrdquo ldquoh1rdquo and ldquoPrdquo와 같은) 엘리먼트 이름을 미리 정의하지 않아도 됩니다 여러분은 자신의 데이터에 가장 적합한 엘리먼트 이름을 직접 만들 수 있습니다

또한 이 간단한 XML 문서는 XML에서 ldquo자체 기술(self-describing)rdquo이라는 매우 중요한 측면을 보여주고 있습니다 실제 데이터 구조와 더불어 엘리먼트 이름(때로는 태그라 불리기도 함)은 문서(예제에서 ldquo사과의 가격rdquo 처럼) 내에서 제공된 정보를 기술할 수 있도록 도와줍니다 만약 이것과 다른 어플리케이션(이를테면 콤마로 값을 분리하든지 CSV파일들) 간에 전통적으로 교환되고 있던 그런 데이터와 비교한다면 장점을 쉽게 알 수 있을 것입니다

ldquoApplerdquo010

더 복잡한 XML 예제 문서를 살펴보면 이런 사실을 훨씬 더 분명히 알게 될 것이다

ltinvoice due=rdquo2000-09-22rdquogtltproductgt

ltnamegtAppleltnamegt ltpricegt010ltpricegt

ltproductgtltproductgt

ltnamegtOrangeltnamegt ltpricegt008ltpricegt

ltproductgtltproductgt

ltnamegtStrawberriesltnamegt ltpricegt020ltpricegt

ltproductgtltproductgt

ltnamegtBananaltnamegt ltpricegt014ltpricegt

ltproductgtlttotal currency=rdquoUS$rdquogt052lttotalgt

ltinvoicegt

여기서 바로 다른 중요한 특성을 찾을 수 있습니다 엘리먼트는 데이터가 내포하고 있는 의미구조를 보여주는 데 유용한 방법으로 끼워넣을 수도 있고 한 가지 이상 같은 종류의 데이터 아이템을 열거해야 할 필요성이 있으면 엘리먼트는 반복해서 쓸 수도 있습니다 위의 예제는 현재 네 개의 products와 하나의 total로 송장(送狀)을 기술하고 있습니다

또한 몇몇 엘리먼트에는 시작태그 안에 추가적인 정보가 포함되어 있음을 확인하십시오 속성은 하나의 이름과 하나의 값을 가지며 name=rdquovaluerdquo(예 currency= ldquoUS$rdquo) 기록된다 속성은 엘리먼트의 데이터를 증대시키는 부가적인

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 9: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

정보를 훨씬 더 구체적으로 기술할 때 사용됩니다(위의 예제에서 total 엘리먼트의 currency 속성)

XML은 마크업이 많으면 많을수록 무거워진다는 단점이 있습니다 이같은 단점은 문서에 포함된 데이터 검색을 어렵게 할 수 있습니다 이 사소한 단점은 XML의 유연성에 의해서 상쇄될 수도 있고 또 XML은 본질적으로 사람과 기계 양쪽에 의해 읽히기에 적합하다는 점에 의해서 충분히 상쇄됩니다

XML Spy는 XML 문서를 간결하게 표현해 준다(Enhanced Grid View라 불리는) 이것은 여러분의 XML문서내의 엘리먼트를 직접조작하고 볼 수 있게합니다

이것은 위의 text view에서 본 XML 문서와 같은 것이다 Grid View에서 보이는 것처럼 제품명과 그에 대한 가격은 테이블의 칼럼처럼 보입니다

이 뷰에서 편집을 간단하게 할 수 있기 때문에 상당히 편리하다bull 엘리먼트를 마우스로 끌어다 놓기bull 새로운 열 삽입bull 엑셀과 같은 다른 프로그램에서 데이터의 복사 및 붙여넣기bull 다른 제품의 뷰에서는 불가능한 그래픽으로 데이터 다루기

여러분은 지금 XML 문서를 처음 접하게 되었고 XML의 가장 중요한 두 가지 특성 엘리먼트와 속성에 대해 배웠습니다 XML Spy가 제공한 구체적인 특성을 보면서 튜토리얼에서 XML의 다른 개념을 설명하겠습니다 계속하기 전에 먼저 lsquo왜 XML 인가rsquo라는 질문에 대해 생각해 보고 다음단락으로 넘기도록 하십시요

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 10: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1) 왜 XML인가

일반적으로 XML을 사용하는 것는 오늘날 존재하는 데이터의 형식이 각기 다른 것처럼 다양한 이유가 있습니다 따라서 우리는 공학이나 전자상거래 수학 등과 같은 수직적 시장에 대한 구체적인 이점을 생각하지 않고 모든 어플리케이션의 보편적인 이점(利點)인 XML의 몇 가지 개별적 특성에 대해서 초점을 맞추고자 합니다

XML은 인간과 기계 양쪽에 의해 쉽게 읽혀진다지금까지 대부분 데이터를 저장하는 형식은 소프트웨어 프로그램(예 dBase GIF 등)에 의해 해석하든지 아니면 사람이 읽는 것 이었지(text 또는 CSV파일) 양쪽 다는 아니었습니다

XML은 아주 간단히 컴퓨터로 해석할 수 있도록 일단의 규칙을 정의합니다 왜냐하면 XML 문서는 인간이 쉽게 다룰수 있는 텍스트 기반이어서 인간과 기계 양쪽의 요구를 모두 만족시킵니다

XML은 객체지향이다관계형 데이터 모델이 테이블 형의 방대한 데이터를 처리하는 데는 매우 유용하지만 하이퍼 텍스트(텍스트에 하이퍼 링크가 추가된 것)나 멀티미디어

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 11: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

그래픽 수학이나 화학식 계층정보와 같은 다른 종류의 데이터를 취급하는 데는 그렇게 간단하지 않습니다

반대로 관계형에서 표준화된 분해과정을 거쳐 다양한 테이블로 억지로 입력되는 데반해 XML은 어떤 특성을 모델링 할 때 실세계의 오브젝트를 기술하거나 어떤 추상적인 문제필드를 기술하는 데 적합하다는 점에서는 객체 지향적입니다 이것은 XML 문서를 보다 직관적으로 이해할 수 있게 해주고 그래서 디자인하는 시간과 XML 기반의 시스템을 구축하는 데 필요한 시간을 단축시켜 줍니다

XML은 컴퓨터 산업에 의해 널리 채택되고 있다 인터넷이 성공할 수 있었던 한 가지 주요 요인은 많은 회사(법인)들이 TCPIP 프로토콜 제품들을 널리 채택해주었기 때문이었습니다 이것으로 방대한 판매량을 이끌었고 그 결과 네트워크 기반을 사용하는 비용이 감소하게 되었습니다

XML은 많은 판매업자에 의해 채택되었고 판매 되었습니다 그 결과 소프트웨어는 많이 팔리고 가격은 낮아 졌습니다 이것이 XML의 원조인 SGML이 범용적으로 성공하지 못한 이유입니다 SGML 제품이 보통 1000달러 범위에서 가격이 형성되어 있었는데 반해 XML 제품은 오늘날 100달러 정도에서 결정되고 있습니다

XML은 범용적이다XML이 받아들여진 이유를 좀더 잘 이해하기 위해서는 오늘날 모든 사람이 인정하고 널리 채택된 데이터 표준(ASCII 정보교환을 위한 미국인 표준코드)을 상기할 필요가 있습니다 한편 ASCII는 알파벳이나 기록시스템이 제한적이었고 아직도 다른 컴퓨터 형식을 허용하거나 데이터를 자유롭게 교환하기 위한 시스템 조작에 있어서 상당한 어려움이 있었습니다 Unicode 10의 채택과 함께 그것은 꾸준히 발전했습니다 ASCII의 아이디어는 모든 프로그램 언어로 확대되었고 전세계 시스템에 사용 되었습니다

오늘날 컴퓨터는 아스키나 유니코드에 기반을 둔 텍스트 문서를 읽고 처리할 수 있는 능력이 인정되고 있습니다 XML은 유니코드에서 작성되고 모든 다른 목적의 구조화된 데이터를 기술하는 보편적인 방법을 정의함으로써 한 걸음 더 접근하고 있습니다

모든 XML 문서는 정의에 의해서 유니코드 기반입니다 그러나 그것은 디스크에 저장되거나 ISO-8859-1이나 UTF-8과 같은 다양한 다른 ldquoencordingrdquo위에서 변환될 수 있습니다 이것이 오늘날 몇몇 사람들이 XML을 미래의 ASCII라고 부르는 이유입니다

지금까지는 XML이 왜 적합한 지를 조사해 보았습니다 다음은 XML ldquo낱말 맞추기(Acronym Puzzle)rdquo에서 XML표준 용어에 대해 알아 보겠습니다

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 12: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2) XML 표준 용어

여기서는 XML과 더불어 XML과 밀접히 관련된 표준이나 약어를 설명 하겠습니다

DTDDocument Type Definition은 최초 XML 10 스펙의 일부로서 개발자 또는 표준 단체들이 XML 문서의 특정 형태로 엘리먼트와 속성 또 구조와 내포구성을 어떻게 사용되는지 상세하게 기술할 수 있게 해줍니다 이것은 XML 문서의 content model 또는 schema라고 불리기도 합니다

만약 XML 문서가 DTD에 의해 정의하는 content model을 따른다면 그 DTD에 관하여 유효하다고 말할수 있습니다

XSLTeXtensible Stylesheet Language Transformation은 프로그램 언어로서 XML 문서를 한 스키마에서 다른 스키마로 변환할 수 있게 해주고 또는 HTML 페이지나 WML 카드 PDF 파일과 같은 완전히 다른 형식으로 변환할 수 있게 해줍니다

Xpath

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 13: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

XML Path Language는 XML 문서의 내용을 위치시키고 내용을 검색하는 언어입니다

Xlink XML Linking Language는 XML 문서에서 하이퍼링크를 담당하고 있으며 HTML의 하이퍼링크의 확장된 개념입니다

XPointerXML Pointer Language는 Xlink와 유사한 표준이며 문서의 개별적 부분을 저장하기 위한 메커니즘을 기술합니다

XML SchemaXML Schema는 DTD를 더 유연하게 대치하기 위해서 현재 W3C에서 노력하고 있는 중이며데이터 타입정의를 위한 규정을 포함해서 XML 문서를 따르는 구조를 기술하는 강력한 시스템입니다

XHTMLExtensible HyperText Markup Language는 XML을 고려하여 HTML 40을 다시 만든 것이며 사실상 인터넷의 표준으로 곧 HTML을 대치할 것입니다

WMLWireless Markup Language는 모바일 인터넷 환경을 위한 WAP 폰 시스템에서 사용되고 있는데 전체적으로 XML에 기반을 두고있습니다 그리고 그 XML은 WML표준의 일부인 하나의 특정 DTD에 의해 기술됩니다

SVGScalable Vector Graphics는 2차원 벡터 그래픽 텍스트 래스터 이미지를 묘사하는 데 사용하기 위한 XML 응용 어플리케이션입니다 이것은 XML에서 유일하게 정의할 수 있는 벡터 그래픽을 가능하게 해줍니다

SMILSynchronized Media Integration Language는 멀티미디어를 표현할 수 있도록 설계된 XML 문서의 하나입니다

DOMDocument Object Model은 몇몇 XML 파서가 XML 문서에 포함된 정보를 되돌려주는 방법을 기술한다 XML 문서의 엘리먼트는 프로그래머들이 잘 알고있는 트리 구조의 노드처럼 기술됩니다

SAXSimple API for XMLrdquo은 몇몇 파서에 의해서 다른 프로그래밍 모델을 제공해주는데 DOM이 트리구조에 기반을 둔다면 SAX는 이벤트에 기반을 두고 있습니다

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 14: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

여기 게재되어 있는 목록은 XML에 입각한 표준 목록을 모두 취급한 것은 아닙니다 왜냐하면 어떤 시장이나 문제필드를 매우 상세히 다루는 기초들과 많은 표준들이 매일 쏟아져 나오고 있기 때문입니다 우리 XML spy 홈페이지를 자유롭게 방문해서 권장사이트 뉴스 다른 XML관련 정보를 배우기 바랍니다

4 XML Spy 사용자 인터페이스

이 화면은 XML Spy 실행 창을 보여주고 있습니다

Enhanced Grid View 의 기능이 가능하며 Altovaxml 파일이 열려 있습니다

DatabaseTable View는 Division 엘리먼트로 활성화 되었습니다 이 view는 Enhanced Grid View가 어디서든 활성화될 수 있게 해주고 XML 파일(XML XSD XSL 등)을 편집할 때 사용됩니다

Display as Table 아이콘 을 클릭해서 DatabaseTable view를 활성화합니다

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 15: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1) XML 편집

이 화면은 하나의 XML 문서를 포함하고 있는 메인 창과 Browser view안에서 같은 문서를 보여주고 있습니다

Browser view 아이콘 을 클릭하면 XML 문서의 Browser view를 열 수 있습니다

Browser view가 XML 문서를 정확히 표시하고보여주기 위해서는 bull XML 문서는 XSL 스타일시트의 참조를 포함 해야한다 또는bull XSL 스타일시트는 XML 폴더나 프로젝트내에 있어야 합니다

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 16: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2) 스키마 편집

이 화면은 XML 스키마 문서(XSDL XML Schema Definition Language)를 포함하고 있는 메인 창을 보여주고 있습니다

Schema Design View 아이콘 을 클릭하면 스키마 Overview를 열 수 있다 그러면 메인 창은 목록 형태로 모든 Global ldquodefinitionsrdquo(elements complex types 등)을 나타내줍니다

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 17: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

그래픽 형태의 컨텐츠 모델을 보기 위해서는1 보기를 원하는 definition 앞 부분의 아이콘을 클릭하십시오 그

컴포넌트의 컨텐츠 모델은 하나의 트리 뷰로 보여집니다

스키마 overview로 돌아가기 위해서는bull Show Globals 아이콘 을 클릭하십시오bull Display All Globals view로 돌아가려면 매뉴에서 Schema design

Display All Globals를 선택하십시오

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 18: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3) XSL 편집

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 19: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

이 화면은 Text view에서 XSL(eXtensible Stylesheet Language) 문서를 포함하는 메인 창을 보여주고 있습니다

Enhanced Grid View 아이콘 을 클릭하면 grid 형태로 똑같은 XSL 문서를 나타내줍니다

4) Project 관리

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 20: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

XML Spy는 익숙한 트리구조를 이용해서 XML 프로젝트를 관리할 수 있도록 보여줍니다

프로젝트 폴더를 사용하면 다음의 것들을 할 수 있습니다bull XML 파일을 확장해서 그룹화bull default 스타일시트와 함께 XML 문서를 볼 수 있도록 해주는 특정 폴더에 XML

변환 인자 할당bull DTD나 Schema를 특정 폴더에 할당함으로써 XML 파일의 유효성 검사

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 21: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Part 2

XML Spy Tutorial

이 튜토리얼은 XML에 대한 간략한 소개와 함께 약간의 예제를 통해 XML Spy 사용법에 대해서 정리 했습니다

공부할 내용은 다음과 같습니다bull 처음부터 간단한 스키마 생성하기bull simple타입과 complex타입을 이용해서 스키마 일반화하기bull 스키마 문서 생성하기bull 스키마 파일을 바탕으로 XML문서 생성하기bull XML 데이터를 Excel과 같은 3rd party product로 복사하고 XML Spy에 그것을

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 22: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

다시 집어넣기bull 스키마와 대응해서 XML 문서 유효성 검증하기bull XML 문서를 편집하면서 스키마 setting 수정하기bull XML 문서를 XSLT를 이용해서 HTML로 변화하고 Browser View에서 결과 보기bull 데이터베이스 데이터를 XML Spy로 import 및 export하기bull MS 엑세스 데이터베이스로부터 스키마 생성하기bull 모든 XML 문서를 조작할 수 있는 XML Spy 프로젝트 생성하기

XML Spy 설치 및 설정이 튜토리얼은 컴퓨터에 XML Spy가 정상적으로 설치되어 있고 자유롭게 사용할 수 있는 평가판 키코드를 수령하였으며 XML Spy 사용자로 등록되어 있음을 전제하고 있습니다

XML Spy 평가판 버전은 30일 동안만 사용할 수 있는 시간적 제약만 제외하면 전체 기능을 모두 제공하고 있습니다 여러분은 XML Spy 공급처를 통하거나 보안에 안전한 우리 홈페이지에서 정품 라이센스를 구입할 수 있습니다

튜토리얼 예제 파일튜토리얼 파일은 hellipXML Spy SuiteExamplesTutorial 폴더에서 사용할 수 있습니다

튜토리얼 예제 파일AddressFirstxsdAddressLastxsdCompanyFirstxml CompanyLastxmlCompanyxslCompanyhtmlCompanymdbDB2schemamdbDB2schemaxsdPerson-importxml

예제 폴더에는 시험해볼 수 있는 다양한 XML 파일이 존재하며 한편 튜토리얼 폴더에는 이 튜토리얼에서 사용된 모든 파일이 존재합니다

템플릿 폴더에는 모든 XML 템플리트 파일이 존재하는데 매뉴에서 FileNew를 선택하면 언제든지 사용할 수 있습니다 이들 파일은 즉시 각각의 XML 문서와 함께 작업을 시작할 때 필요한 데이터(namesppace and XML declaration)를 제공해줍니다

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 23: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1 XML Spy 소개

XML Spy는 몇 개의 창을 제공하는데 거기서는 XML 문서의 다양한 측면에서 볼수 있습니다

bull 왼쪽 부분은 프로젝트와 정보 창으로 이루어져 있습니다

bull 가운데 부분은 메인 창 이라고 부르며 XML문서의 모든 유형을 편집하고 볼수 있습니다 또한 다른 view를 선택할 수도 있습니다(Enhanced Grid view Schema view Text view Document editor view 또는 Browser view) Enhanced Grid View는 DatabaseTable view라고도 불리는 특별한 view를 통합하고 있으며 XML 데이터를 테이블 형태로 상호전환이 가능합니다

bull 오른쪽 부분은 세 개의 Entry helper 창이 존재하는데 여기서 엘리먼트 속성 입력자를 입력하거나 추가할 수 있습니다

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 24: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 처음부터 스키마 생성

스키마는 하나 또는 그이상의 XML 문서가 어떻게 보이고 어떻게 정의되는 지를 기술합니다

bull 문서가 포함하고 있는 엘리먼트 그리고 그것이 표현하는 의미bull 엘리먼트의 내용 그리고 그 엘리먼트의 속성

스키마의 목적은 문서의 구조의 기계적인 유효성을 검증하는 것입니다 XML 10 DTD 공고안의 구문을 사용하는 대신 스키마 정의는 XML 엘리먼트 구문을 사용합니다 따라서 정확한 XML 스키마 정의는 잘 짜여진 XML 문서입니다

이 장의 목표 여기서의 목표는 한 회사와 그 종업원들을 기술하고 있는 간단한 스키마를 생성하는 것입니다 company는 address와 무제한의 persons으로 구성되어 있습니다

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 25: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

이것은 다음의 내용들에 의해 수행될 것입니다bull 스키마에 엘리먼트 추가bull 엘리먼트 순서 정의bull 엘리먼트에 하위 엘리먼트 추가 (자식 엘리먼트)bull 마우스로 끌어놓기를 이용한 엘리먼트 생성bull Schema View 설정bull 엘리먼트 optional 작성bull 엘리먼트 facet 정의

이 장에서 사용할 아이콘과 그 기능

FileNew는 새로운 형식의 XML 파일 생성

Schema designDisplay diagram 컴포넌트 아이콘은 실제 만들어진 컴포넌트의 세부적인 내용을 보여줍니다

Schema designDisplay all globals 스키마 overview로 되돌아가게 합니다

TAB 다음 필드로 이동하고 만일 목록이 존재한다면 drop-down 목록을 자동으로 열어줍니다

CTRL + DragampDrop 현재의 엘리먼트를 복사하게 해줍니다

Append 아이콘은 스키마에 엘리먼트를 추가할 수 있게 해주고 Schema | View config 대화창에서 새로운 라인을 추가할 수 있습니다

1) 새로운 스키마 파일 생성

새로운 스키마 파일 생성하기1 XML Spy 아이콘을 더블클릭하면 XML Spy가 시작됩니다내용이 없는 빈 창이 나타납니다

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 26: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 메뉴 옵션에서 File | New를 선택하고 대화 창에서 xsd W3C Schema 엔트리를 선택하고 OK를 누릅니다

그러면 빈 스키마 파일이 메인 창에 나타납니다 root element의 이름을 입력할 수 있는 프롬프트가 뜹니다

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 27: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3 하늘색 필드를 클릭해서 ldquoCompanyrdquo를 입력하고 엔터를 치십시오 Company는 현재 이 스키마의 root element이며 자동적으로 global element가 됩니다

이 화면은 스키마 overview로서 위의 창에서는 global components를 보여주고 아래 창에서는 현재 선택된 component의 속성들을 보여줍니다

오른쪽 윗부분의 entry helper 창인 Component Navigator는 ldquoElmrdquo 탭에서 Company를 보여줍니다 이 탭의 entry를 더블클릭해서 스키마를 찾는 데 사용할 수 있습니다

4 FileSave as를 클릭하고 새 이름으로 저장하세요(여기서는AddressFirst라고 입력하세요)

Namespace 정의1 메뉴에서 Schema Design Schema settings를 선택하세요2 Target namespace 라디오 버튼을 클릭하고 httpmycompanycomnamespace 라고 입력하세요

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 28: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3 OK 버튼을 누르세요

2) 스키마에 엘리먼트 추가

스키마에 엘리먼트를 추가하기1 메인 창에서 내용을 나타내기 위해서 Company 엘리먼트 앞에 있는

component 아이콘을 클릭하세요(또는 Component Navigator에서 Company entry를 더블클릭 하세요) Company 엘리먼트 아래의 텍스트는 주석입니다 편집을 하려면 텍스트를 더블클릭하세요

2 context 메뉴를 열려면 Company 엘리먼트를 오른쪽 버튼으로 클릭하고 Add Child | Sequence를 선택하세요

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 29: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

여기에 순서 구성자를 삽입해주며 이것은 XML문서에서 다음에 오는 엘리먼트는 반드시 이 순서로 나타나야 한다는 것을 정의합니다

3 순서 구성자를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

4 엘리먼트의 이름으로 Address을 입력하고 엔터를 치세요

5 다시 순서 구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하고 그 엘리먼트의 이름으로 Person을 입력하세요

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 30: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

지금 한 회사에 대해 주소와 개인정보가 들어가는 스키마를 정의했다하지만 이것은 너무 제한적이므로 회사가 필요로 하는 만큼의 사람을 포함시킬 필요가 생긴다

6 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Context 메뉴에서 Unbounded를 선택하세요 그러면 Person 엘리먼트가 1에서 무한대까지의 범위를 의미하는 모양으로 바뀌게 됩니다

참조 Details entry helper에서 직접 minOcc와 maxOcc를 편집할 수

있습니다

이제 우리는 address 엘리먼트의 구조를 정의하는 하위엘리먼트를 추가할 것입니다

엘리먼트에 sub-element를 추가하기1 context 메뉴를 열기 위해서 Address 엘리먼트에서 오른쪽 버튼을 클릭하세요 그리고 Add ChildSequence를 선택하세요

2 순서구성자를 오른쪽 버튼으로 클릭하고 Add ChildElement를 선택하세요 그리고 element 이름으로 ldquoNamerdquo을 입력하세요

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 31: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

엘리먼트 파라미터 정의여기서 우리는 Name 엘리먼트가 오직 한 번만 생성되게 하며 단지 텍스트 데이터만 포함하는 스키마를 정의하고자 합니다

1 지금 Name 엘리먼트가 선택되어 있지 않으면 클릭하세요2 가운데의 entry helper에서 type 목록상자를 클릭하고 목록에서 xsstring

entry를 클릭하세요

이 entry helper는 스키마 view에서는 ldquoDetailsrdquo라고 하는데 현재 선택된 엘리먼트에 대한 정보를 제공합니다 모든 데이터는 이 Details 창에서 직접 편집할 수 있습니다

아이콘의 왼쪽상단에 이엘리먼트가 텍스트를 포함하고 있음을 나타내는 표시가 그려져 있습니다

minOcc와 maxOcc 필드는 모두 1을 포함하고 있는데 이 엘리먼트가 단 한번 발생한다는 것을 나타냅니다(이것은 새 엘리먼트 생성시 디폴트로 셋팅됩니다)

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 32: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3) drag amp drop을 이용한 엘리먼트 추가

drag amp drop을 이용한 엘리먼트 추가하기 다중 메뉴 명령을 사용하지 않고 더 빨리 스키마에 새로운 엘리먼트를 추가하는 방법이 있습니다

1 Name 엘리먼트를 클릭하고 CTRL 키를 누른 상태에서 마우스를 가볍게 끕니다 그러면 방금 복사한 엘리먼트를 보여주는 조그마한 + 아이콘이 딸린 점선이 나타납니다

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 33: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 새로운 엘리먼트 생성을 위해서 마우스 버튼을 놓습니다 만일 새로운 엘리먼트가 다른 곳에 생성되면 Name 엘리먼트 근처에다 끌어다 놓습니다 이런 방법으로 똑같은 형태의 엘리먼트를 생성합니다

3 엘리먼트 이름을 ldquoStreetrdquo라고 입력한다4 세 번째 엘리먼트ldquoCityrdquo를 같은 방법으로 생성한다 내용은 아래 화면처럼

보일 것이다

4) 스키마 View 설정

스키마 View 설정에서는 내용의 특정 세팅을 볼 수도 있고 그것을 직접 편집할 수도 있습니다

스키마 View 설정하기1 메뉴 옵션에서 Schema Design | View config를 선택합니다 대화 창이

XML Spy의 오른쪽 하단에 열립니다 그러면 바로 내용 모델에서 여러분이 선택한 것을 볼 수 있습니다

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 34: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 Append 아이콘을 클릭해서 한 줄을 추가하고 드롭-다운 목록에서 type을 선택하세요

삭제 버튼 은 대화 창에서 한줄을 삭제합니다대화상자가 열린상태에서 각각의 엘리먼트 표시는 type 설정필드에 의해 늘어날수 있습니다type 설정필드는 ldquoTyperdquo엘리먼트를 나타내고 있습니다

3 OK를 클릭하세요

참조여기서 정의한 세팅은 스키마 문서뿐만 아니라 프린터로 출력할 때에도 적용됩니다

5) 기초 스키마 완성

이쯤에서 Person 엘리먼트에 자식 엘리먼트를 추가하여 구체적인 데이터를 만들고자 합니다이들 엘리먼트는 simple types(simple content model과 함게)이 될 것입니다

Person의 자식엘리먼트들 First Last Title PhoneExt 그리고 Email

요구사항 Title 엘리먼트는 optional(선택적)이어야 한다

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 35: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

PhoneExt는 integer이고 99 까지만 허용된다

1 Context 메뉴를 열기 위해서 Person 엘리먼트를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택해서 순서 합성자 를 삽입하세요

2 순서 구성자를 마우스 오른쪽으로 클릭하고 Add ChildElement를 선택하세요

3 엘리먼트의 이름으로 First를 입력하고 탭 키를 친다 그러면 자동적으로 type 필드로 이동하게 된다

4 드롭 다운 목록에서 xsstring 엔트리를 선택(하거나 입력)한다5 4개 이상의 엘리먼트를 더 생성하기 위해서는 드래그 앤 드롭 방식을 이용하고

그것들의 이름을 각각 부여한다 Last Title PhoneExt Email

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 36: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

참조여러분은 CTRL 키를 누른 상태에서 각각을 클릭하면 여러 엘리먼트들을 선택할 수 있습니다

엘리먼트를 optional 으로 만들기(엘리먼트가 있어도 되고 없어도 됨)1 Title 엘리먼트를 오른쪽 버튼으로 클릭하고 context 메뉴에서 optional을

선택 합니다 실선으로 표시된 엘리먼트가 점선으로 바뀝니다 이것은 엘리먼트가 optional하다는 것을 보여주는 것입니다

Details 필드에서는 minOcc = 0 및 maxOcc = 1로 수정 되었습니다

엘리먼트 내용 제한하기(Facets) 1 PhoneExt 엘리먼트의 type 필드에서 더블클릭하고 드롭다운 목록에서

xsinteger 엔트리를 선택(하거나 입력)한다

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 37: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

(entry helper의 맨 아래의) Facets 탭에 있는 항목은 이 때 바뀝니다

2 (entry helper의 맨 아래의) Facets 탭의 maxIncl 필드를 더블클릭 합니다 그리고 99를 입력하고 엔터를 칩니다

이것은 모든 추가 전화 갯수를 99까지 가능함을 정의하고 있습니다3 바뀐 스키마의 내용을 저장하기 위해서 메뉴옵션에서 FileSave를

선택합니다

참조bull 엘리먼트를 위해 미리 정의된 simple type text인 ldquoxsstring 또는 xsdata

etcrdquo을 선택하면 자동적으로 컨텐트 모델은 Details entry helper에서

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 38: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

content=simple로 바뀝니다bull 엘리먼트에 ldquoselection choice 또는 allrdquo등의 합성자를 추가하면 자동적으로 컨텐트 모델을 Details entry helper에서 content=complex로 바뀝니다

bull 이 스키마는 hellipTutorial 폴더에서 AddressFirst로 이용할 수 있습니다

3 스키마 컴포넌트 재사용하기

이 장의 목표 다른 엘리먼트에 의해 재사용될 수 있는 일반적인 스키마 컴포턴트 생성하기

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 39: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

여기서는 다음 내용을 실행하게 될 것입니다bull 특정 지역의 주소를 표현하기 위해 범용의 Address Type 컴포넌트

생성하기(a complex type)bull complex type을 상속 받아서 범용의 address 엘리먼트로서 영국식과 미국

식의 주소를 위한 2개의 특정한 주소 템플릿 생성하기bull restriction에 의해 범용의 US-State 엘리먼트 생성하기bull reference에 의해 범용의 person 엘리먼트 생성하기bull 회사에서 개인의 직책에 관한 정보를 제공하는 개인 attributes 정의하기bull 속성의 내용을 미리 정의된 속성값의 묶음으로 제한하기

이 장에서 사용될 아이콘과 기능들

Schema designDisplay all globals는 schema overview로 되돌아가게 해줍니다

Append 아이콘은 스키마에 엘리먼트 속성 그리고 enumeration을 추가하게 해줍니다

Schema design | Display diagram에서 component 아이콘은 schema overview에서 활성화된 범용의 컴포넌트의 컨텐트 모델을 나타내줍니다

1) simple type과 complex type을 확장해서 만든 Globals

엘리먼트가 정의되면 여러분이 작성한 스키마에서는 어디서든 그것을 재사용 하기를 원합니다 XML Spy에서는 global component를 생성함으로써 이것을 가능하게 합니다

global component 생성하기 위해서는

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 40: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1 어드레스 엘리먼트를 마우스 오른쪽버튼 으로 클릭하고 Make Global | Complex type을 선택합니다 어드레스 엘리먼트는 노란 박스에 나타납니다

2 Display all Globlas 아이콘 을 클릭하세요 이제 스키마 overview는 두 개의 global component를 보여줍니다 Company 엘리먼트와 complex Type인ldquoAddressTyperdquo

Component Navigator의 Com(plex) 텝을 클릭하면 AddressType 또한 볼수

있습니다3 컨텐트 모델을 보기 위해서는 AddressType component 아이콘 을 클릭하세요

4 스키마 overview로 돌아가기 위해서는 Display all Globals 아이콘을

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 41: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

클릭하세요

complex type 정의 확장하기Global AddressType component 를 이용해서 두 종류의 지역을 표현하는 주소를 나타내려고 합니다 이 목적을 달성하기 위해서는 AddressType component를 기반으로 새로운 complex type을 정의할 것입니다

Complex type 정의를 확장하기 위해서는 1 스키마 overview로 전환하세요(Display all globals 아이콘 이용) 2 상단 좌측에 있는 Append 아이콘을 클릭하세요3 context 메뉴에서 Complex type을 선택하세요

새로운 줄이 컴포넌트 목록에 나타나고 커서는 컴포넌트 이름을 입력할 수 있게 설정됩니다

4 ldquoUS-Addressrdquo라고 입력하고 엔터를 치세요 (만일 깜박 잊고 ldquo-ldquo을 입력하지 않으면 잘못되었음을 의미하는 빨간색 글자로 나타 날것입니다)

5 컨텐트 모델을 보기 위해서는 US-Address component 아이콘을 클릭하세요

6 Details entry helper에서 ldquobaserdquo 콤보 박스를 클릭하고ldquoAddressTyperdquo 을 선택하세요

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 42: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

컨텐트 모델 view는 즉시 앞서 정의된 일반 주소로 바뀌어 나타납니다

7 US-Address element를 오른쪽 버튼으로 클릭하고 Add ChildSequence를 선택하세요 새로운 sequence compositor가 AddressType 상자의 바깥쪽에서 나타납니다 이것은 엘리먼트를 확장하겠다는 의미를 나타냅니다

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 43: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

8 새로운 sequence compositor를 오른쪽 버튼으로 클릭하고 Add Child | Element를 선택하세요

9 엘리먼트의 이름을 ldquoZiprdquo이라고 입력하고 탭 버튼을 치세요 10ldquotyperdquo 필드 콤보 박스에서 xspositivieInteger를 선택하고 엔터를 치세요

재사용 가능한 simple type 엘리먼트 생성 Simple type 엘리먼트는 generic으로 만들수 있는데 이 경우 우리는 State 엘리먼트를 재사용 할 것입니다 그래서 나중에 address 엘리먼트에서 축약형태로 사용될 수 있습니다 (예를 들어 Georgia를 GA로)

재사용할 Simple type 엘리먼트 생성

1 Display all Globlas 아이콘을 클릭해서 Schema overview로 전환하세요2 append 아이콘을 클릭하고 Simple type을 선택 element의 이름으로 ldquoUS-

Staterdquo를 입력하세요

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 44: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3 Details entry helper안의 ldquorestrrdquo 값에서 xsstring 선택하세요 이것은 정의를 완성하며 이 element는 US-Address 정의에 사용됩니다

4 US-Address component 아이콘 을 클릭하고 lower sequence compositor에서 오른쪽 버튼을 클릭하고 난 다음 Add Child | Element를 선택하세요

5 엘리먼트 이름으로 ldquoStaterdquo를 입력하고 탭 키를 치세요6 type 콤보 박스에서 ldquoUS-Staterdquo를 입력하세요

참조Global simple type은 schema overview를 통해서만 생성될 수 있습니다

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 45: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

두 번째 Address Template 생성위 방법을 사용해서 global complex type인 ldquoUK-Addressrdquo를 정의합니다

1 base=rdquoAddressTyperdquo인 global complex type ldquoUK-Addressrdquo 생성하세요2 UK-Address의 content 모델에서 새로운 Postcode 엘리먼트를 추가하세요

그러면 여러분이 작성한 UK-Address content 모델은 아래와 같이 나타납니다

2) 참조 속성 그리고 목록

스키마 정의를 끝내려면 Person엘리먼트를 글로벌로 만들고 특정 엘리먼트의 속성을 정의하고 속성 부분을 제한할 것입니다

참조만들기

1 아이콘을 이용해서 Schema overview화면으로 전환하세요2 Company 엘리먼트 앞의 아이콘을 클릭하세요3 Person 엘리먼트의 오른쪽 버튼을 클릭해서 Make Global | Element을 선택하세요그러면 Person엘리먼트 안에 작은 화살표모양의 링크아이콘이 생깁니다이것은 이엘리먼트는 지금 글로벌로 선언된 Person엘리먼트를 참조하고 있다는 것을 뜻합니다 그림의 entry helper의 Details 부분내의 ldquoisRefrdquo가 체크된 것을 볼수 있을 것입니다

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 46: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 schema overview로 돌아가려면 아이콘 을 클릭하세요 Person엘리먼트는 지금 component 목록에서 보여집니다 게다가 component navigator의 ldquoElmrdquo탭에서도 보여집니다 global 엘리먼트를 보려면 ldquoElmrdquo탭을 클릭하세요

global로 선언된 것은 XML문서의 어디에서 사용되는지는 기술하지 않고 단지 무엇을 포함하는지만 기술합니다 global 정의는 문서내에서 위치를 정하기위해서는 complex type내에서 아니면 다른 엘리먼트 내에서 참조되어야 합니다

엘리먼트 속성 정의하기1 Person 엘리먼트를 클릭해서 활성화 하세요2 attribute 탭(schema overview 아래 창)에서 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoAttributerdquo를 선택하세요

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 47: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3 Name 필드에 attribute 이름으로 ldquoManagerrdquo를 입력하세요4 Type 필드의 선택상자에서 ldquoxsBooleanrdquo을 선택하세요5 Use 필드의 선택상자에서 ldquorequiredrdquo를 선택하세요

6 같은 방법으로 ldquoProgrammerrdquo속성을 추가하고 Type Use 필드에 각각 ldquoxsBooleanrdquo과 ldquooptionalrdquo 입력하세요

속성내용 제한하기(Enumerations)1 attribute창의 위쪽 왼편에 Append 아이콘을 클릭해서 ldquoattributerdquo를

선택하세요2 속성명으로 ldquoDegreerdquo를 입력하고 속성타입으로 ldquoxsstringrdquo를 선택하세요3 Facets entry helper의 Enumerations를 클릭하세요

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 48: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 Enumerations 탭의 추가 아이콘 을 클릭해서 ldquoBArdquo를 입력하고 엔터키를 쳐서 입력을 완료하세요

5 Enumerations 리스트에서 같은 방법으로 ldquoMArdquo ldquoPhDrdquo를 추가하세요

스키마 작업을 마치면 다음과 같은 화면이 됩니다

6 메뉴의 File | Save 의를 선택하고 파일명을 AddressLastxsd로 저장하세요

참고 이스키마는 Tutorial 폴더에서 lsquoAddressLastxsdrsquo로 사용 가능합니다

3) 스키마 문서 조작법

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 49: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

이 부분은 여러분이 스키마뷰를 능률적으로 조작하는 법을 보여줄 것입니다

엘리먼트의 내용모델 보이기

특정 컴포넌트 조작탭(오른쪽 상단의 Components창에서) 예를들어 Com(plex)을 클릭해서 여러분이 보고싶은 엘리먼트를 선택하세요각각의 탭을 설명해보면Elm = global elements Grp = element group Com = Complex type Sim = Simple type Att = Attribute Agrp = Attribute group컴포넌트 조작 엔트리는 메인 윈도우에서 현재 보이는 내용모델에 독립적 입니다

Com탭 안에서 엘리먼트 이름을 더블클릭 하세요 예를 들어 UK-Address

UK-Address 엘리먼트의 내용모델을 볼 수 있습니다 세부적인 조작은 Detail탭에서 할수있습니다

엘리먼트 Type 정의 하기

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 50: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Company 의 내용모델을 보면

노란색 박스에서 ldquoAddress Typerdquo 표시된 텍스트를 더블클릭해서 Address Type을 정의 할 수 있습니다

Address Type 정의

엘리먼트 정의 하기

Company 내용모델을 보면

CTRL키를 누른 상태에서 원하는 엘리먼트를 더블클릭 하세요(여기서는 Last엘리먼트를 더블클릭 하겠습니다)

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 51: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Person엘리먼트의 하위엘리먼트인 Last엘리먼트는 Details탭에서 구체적인 엘리먼트 정보를 보여 줍니다

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 52: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 스키마 문서의 일반화

이 장의 목표현재 쓰고있는 스키마를 바탕으로 구체적인 문서를 일반화 시키고 그 안에 특정 엘리먼트를 선택해서 포함시키는 것 입니다

여러분은 HTML이나 Word문서를 생성 할수있고 이것은 스키마 엘리먼트(자식 엘리먼트 Complex types등)가 하이퍼링크 되어있고 엘리먼트에서 엘리먼트로 조작이 가능하다는 것과 관련이 됩니다

Microsoft Word문서를 생성하려면 여러분의 컴퓨터(네트워크)에 Microsoft Word가 인스톨되어 있어야 합니다

스키마 문서 생성하기(AddressLast 스키마 문서)

1 메뉴옵션에서 Schema design| Generate documentation 을 선택하세요2 HTML이나 Word등 Output format을 선택하고 ok버튼으로 확인하세요3 폴더를 선택하고 Save as에서 원하는 HTML파일의 이름을 입력하고 Save버튼을 클릭하세요

만약 HTML을 선택했다면 그 HTML문서는 XML Spy의 Browser View에

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 53: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

나타날것이고 Microsoft Word를 선택했다면 Word문서가 보일 것 입니다

위의 다이어그램은 HTML양식의 스키마문서 첫페이지를 보이고 있습니다다른 스키마의 컴포넌트가 포함 되었다면 그 스키마 또한 문서화 될 것입니다

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 54: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

위의 다이어그램은 Complex Types이 어떻게 문서화 되어있는지 보이고 있습니다

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 55: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

위의 다이어그램은 엘리먼트와 Simple Types이 어떻게 문서화 되었는지를 보이고 있습니다

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 56: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

5 XML문서 만들기

이장의 목표새로운 XML문서를 만들어서 다양한 XML Spy View와 빠른 입력과 데이터 검증을 갖춘 지능적인 편집능력을 사용해보기

수행될 사항 AddressLast 스키마를 바탕으로한 새로운 XML문서 만들기 XML문서에 사용가능한 elementType정의 하기 Text나 Enhanced Grid view에서 지능형 entry helpers 를 사용해서 엘리먼트 추가하기 새 데이터를 추가하여 엑셀에 XML데이터를 복사하기 그리고 다시 Enhanced Grid view나 DatabaseTable view같이 XML Spy로 되돌리기 DatabaseTable view내에서 Last name으로 데이터 정렬하기 XML문서 검증하기 폰 숫자를 3자리까지 허용하도록 스키마 정의를 수정하기

이 장에 나오는 아이콘 및 그 기능들

File | New 새로운 형식의 XML파일 만들기

View | Text View Text View와의 전환

View | Enhanced Grid View Enhanced Grid View와의 전환

XML | Table | Display as Table table 형식에서 반복되는 엘리먼트와 속성 보이기

확장 Enhanced Grid View에서 하위 엘리먼트 보이기

잘 짜여진 문서인지 체크(well-formed) ndash 단축키 F7

관련된 DTD나 Schema문법에 맞는지 체크 ndash 단축키 F8

관련된 DTD나 Schema파일 열기

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 57: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1) 새 XML파일 만들고 완성하기

새 XML문서 만들기1 메뉴옵션의 File|New를 선택하고 대화창에서 xml XML Document를

선택후 OK 버튼을 클릭해서 확인하세요

XML문서를 DTD를 기반으로 만들지 아니면 스키마로 만들지를 요구하는 선택창이 나타날 것입니다

2 스키마 라디오 버튼을 클릭하고 OK를 눌러 확인하세요

여러분의 XML문서에 바탕이 되는 스키마 파일을 선택하라는 요구창이 한번더 나타날 것입니다

3 스키마 파일 찾기 위해 Browse또는 Window버튼을 클릭합니다 여기서는 AddressLast 스키마를 선택하세요 OK를 눌러 선택을 확인하세요

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 58: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

스키마에 의해서 정의된 엘리먼트를 포함한 XML문서는 메인 윈도우상에서 에서 자동으로 Enhanced Grid View로 열립니다

참조XML Spy는 스키마의 루트 엘리먼트를 자동으로 찾으려고 합니다만약 루트 엘리먼트가 어떤것인지 명확하지 않으면 ldquoSelect a root elementrdquo대화창이 열리고 그때 여러분은 루트 엘리먼트를 선택합니다

4 Click on any element to deselect the data5 Address 앞의 아이콘을 누르면 Address의 하위 엘리먼트가 보입니다

엘리먼트 타입을 XML문서안에서 정의 해보기

Grid view에서 본 Address엘리먼트는 global complex type인 ldquoAddressTyperdquo에 의해 정의된 것입니다 그렇기 때문에 UK나 US-Address같은 우리가 정의한 특정 AddressType을 접근하고 싶어할 것입니다

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 59: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1 Name엘리먼트의 마우스 오른쪽 버튼을 누르고 context메뉴에서 Insert | Attribute를 선택하세요 그러면 하나의 속성필드가 Address엘리먼트에 추가되고 xsitype 를 포함하는 팝업창이 자동으로 열립니다

2 ldquoTabrdquo키를 사용해서 다음 필드로 이동 합니다3 드롭다운 리스트에서 US-Address를 선택하고 엔터를 쳐서 확인합니다

참고xsi접두사는 여러분의 XML문서 객체에서 명령과 관계된 특정 XML Schema를 사용할수있도록 허용합니다 더 많은 정보를 얻으려면 다음의 W3C의 웹사이트를 방문하세요 (httpwwww3orgTR2001REC-xmlschema-0-20010502)

데이터 입력(삭제)하기1 Name의 값을 가진 필드를 더블클릭 하거나 방향키를 이용해서 ldquoUS dependencyrdquo입력하고 엔터키를 쳐서 확인 하세요

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 60: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 Street와 City이름의 입력도 같은 방법을 사용하세요(예 Noble Ave 와 Dallas)3 Person엘리먼트를 클릭하고 그것을ldquoDelrdquo키를 눌러 지우세요(Text view에서 잠시후 다시 추가할 것입니다)4 Address의 특정 엘리먼트를 클릭하면 XML문서는 다음과 같이 보입니다

2) Text와 Enhanced Grid view에서 편집하기

XML Spy Text view 하위단계의 작업을 할 때 XML Spy의 Text view는 문자형식이나 소스코드형식에서어떤 Type의 XML파일에도 적합합니다 그리고 DTD나 스키마를 바탕으로 하는 XML

문서를 작업 하더라도 지능형 편집 능력을 제공받을 것입니다

Text view에서 데이터 입력과 데이터 보기1 메뉴에서 View|Text view를 선택하거나 Text view아이콘을 클릭 하세요구문별 색깔이 지정된 기본적인 텍스트양식의 XML문서가 보여집니다

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 61: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 Address 엘리먼트의 끝태그인 ldquoltAddressgtrdquo다음에 커서를 위치시키고 엔터키를 처서 새로운 라인을 추가 하세요3 이 위치에서 ldquoltrdquo (왼쪽꺽쇠)를 입력하세요

4 드롭다운 리스트가 나타날 것입니다 Person 을 선택하면 엘리먼트이름에 Person 뿐만 아니라 속성인 ldquoManagerrdquo도 자동으로 생성됩니다

5 ldquotrdquo를 입력하고 엔터키를 치세요

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 62: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

위화면은 ldquotruerdquo가 반전된 드롭다운 리스트를 보이고 있습니다 엔터키를 쳐서 커서위치에 값(true)를 입력하세요

6 라인의 끝으로 커서를 옮기고 (또는 End key를사용) 스페이스바를 치세요그러면 드롭다운 리스트를 다시 보여줄 것입니다 엘리먼트내에 속성 ldquoManagerrdquo가 이미 사용 되고 있으므로 리스트내에서 회색으로 표시되고 선택할 수가 없습니다

7 아래쪽 방향키로 ldquoDegreerdquo를 선택하고 엔터키로 확인하세요

8 아무 문자나 입력하면 미리정의된 목록(BA MA PhD)에서 하나를 선택할수 있는 다른 리스트 박스가 보여집니다

9 아래방향키로 ldquoBArdquo를 선택한후 커서를 라인끝으로 옮기고 스페이스바를 누르면 ldquoManagerrdquo와 ldquoDegreerdquo가 entry helper창에서 회색으로 선택이 불가능하게 됩니다

10 아래방향키로 ldquoProgrammerrdquo를 선택하고 엔터키를 치세요

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 63: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

11 ldquofrdquo를 입력하고 엔터키를 치세요12 커서를 라인끝으로 이동시키고 오른쪽 꺽쇠 ldquogtrdquo를 입력하세요

XML Spy는 모든 Person엘리먼트 태그를 자동으로 입력합니다 각각의 엘리먼트는 시작태그와 끝태그를 가집니다여기 Text view에서 Person 데이터를 입력할 수 있습니다 하지만 여기서 보다는 The Enhanced Grid view가 더많은 편리성과 테이블형식(the DatabaseTable view)에서 보여지는 순환데이터가 가능한 특별한 view를 포함합니다

Enhanced Grid view 메뉴에서 View | Enhanced Grid View를 선택하거나 Enhanced Grid view아이콘을 클릭하세요 Text view에서 입력한 Person 속성이나 데이터는 여전히 Enhanced Grid view에서 보여지고 있습니다

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 64: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3) 데이터 입력과 검증

아직해야할 것들이 많이 남아 있지만 이시점에서 문서가 well-formed 또는 valid인지를 검사해 보겠습니다

Well-formedness 에대한 검사 1 메뉴에서 XML | Check well-formedness를 선택하던지 F7키를 누르세요메인 윈도우의 맨아래쪽에 나타난 메시지는 well-formed문서 여부를 밝히고 있습니다 확인을 위해 OK버튼을 클릭하고 메시지를 닫습니다

well-formed하다는 것은 XML문서의 문법이 정확하다는 것을 의미합니다(즉 하나의 루트 엘리먼트가 존재하고 각각의 시작태그는 끝태그와 조합을 이루고 모든 엘리먼트는 정확히 한쌍으로 이루어져 있다) 이 검사는 스키마 파일에 대해서는 이루어지지 않습니다(또는다른 외부파일)그리고 엘리먼트의 순서나 내용또한 고려하지 않습니다

Validity에 대한 검사 1 메뉴에서 XML | Validate를 선택하던지 F8키를 누르세요다음과 같은 에러 메시지가 나타납니다ldquoThis file is not valid Mandatory elements expected after lsquoCityrsquo (Zip State)에러 메세지는 현XML문서가 무엇이 잘못되었는지를 세부적으로 기술 합니다

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 65: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Fixing the invalid document (intelligent help)여기서 에러메세지의 원인인 엘리먼트가 반전되었습니다오른쪽 윗부분에 엘리먼트 entry helper 부분을 보면 ldquoZiprdquo엘리먼트는 느낌표로 표시되어 있는데 이것은 엑세스가 필요함을 상징하고 US-Address 엘리먼트는 자식 엘리먼트인 Zip 엘리먼트를 포함 해야함을 의미합니다

1 엘리먼트 entry helper에서 Zip엘리먼트를 더블클릭 하세요그러면 City엘리먼트 밑에 Zip엘리먼트가 삽입됩니다(Append탭은 디폴트로 활성화)2 탭키를 눌르서 그지역의 우편번호(04812)를 입력하고 엔터키를 쳐서 확인세요 엘리먼트 entry helper는 지금 State 엘리먼트를 포함하고 있습니다 그리고 그것은 여전히 엑세스 해야할 엘리먼트이고 또한 Zip엘리먼트와 같이 나타나야 합니다

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 66: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

3 State 엘리먼트를 더블클릭하고 탭키를 치고 지역의 이름(예 Texas)을 입력한후 엔터키를 쳐서 확인을 하세요엘리먼트 entry helper는 지금 비활성된 회색빛깔의 엘리먼트를 포함하고 있습니다 이것은 모든 필요한 Address의 자식 엘리먼트가 입력이 되어있다는 것을 의미합니다

문서의 나머지 부분 데이터 입력 및 재검증1 First 엘리먼트의 비어있는 내용공간(엘린먼트 이름의 오른쪽)을 클릭하고 사람의 첫 이름을 입력하세요(예 Fred) 그리고 엔터키를 누르세요

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 67: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 아래방향키를 눌러서 다음 필드 Last를 채우세요(예 Smith)3 PhoneExt(예 22)와 e-mail(예 smithworkcom)도 같은 방법으로 입력하세요 XML문서는 다음과 같이 될것입니다

4 문서를 검증하기 위해 Revalidate버튼을 클릭하세요ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 자신의 스키마 정의데로 구성 되어있습니다 OK버튼을 눌러 확인하고 메시지를 닫으세요

검증되었음의 의미는 lsquoXML문서가 할당된 스키마에 충실하다rsquo 즉 문서가 나타내는 엘리먼트와 순서 뿐만 아니라 문서의 내용과 속성이 정확하다는 것을 의미합니다

5 메뉴에서 File | Save Ashellip 를 선택하고 문서에 이름을 입력하세요(예 ComanyFirstxml)

이 XML문서는 튜토리얼 폴더에서 lsquoCompanyFirstxmlrsquo로 사용이 가능합니다

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 68: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

참고한 XML문서는 저장하기 위해 검증될 필요는 없습니다 비검증된 문서를 저장하할 때ldquoSave anywayrdquo를 선택할수 있는 선택버튼이 나타나고 클릭하게 되면 문서는 현재 상태 그대로 저장이 됩니다

4) 데이터 조작하기 ndash Entry helper

이번에는 우리가 만든 XML문서에 더 많은 사람들의 데이터를 입력하기를 원합니다 XML Spy는 특별한 view(Enhanced Grid view안에서)를 포함하고 있습니다 그리고 그것은 여러분이 테이블 형식에서 데이터를 입력하도록 되어있습니다 ndash the DatabaseTable view

엘리먼트와 속성 추가하기(지능형 entry helper)

우리는 지금 문서에 새로운 Person엘리먼트를 추가하려고 합니다 뿐만 아니라 특정 person 속성을 정의하려고 합니다

1 Address 엘리먼트의 내용을 감추려면 Address엘리먼트의 왼쪽 회색 측면 막대를 클릭하세요 grid view에서 ldquoPersonrdquo엘리먼트를 클릭하세요Person엘리먼트와 그 하위 엘리먼트 모두를 표시하고 있습니다 Person이 엘리먼트 entry helper 창에 있다는 것을 알아두십시오

3 엘리먼트 entry helper 창에서 Person 엘리먼트를 더블클릭 하세요(Append 탭을 활성화한후) 모든 필요한 하위 엘리먼트와 함께 새로운 Person 엘리먼트가 추가됩니다

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 69: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 새로운 Person엘리먼트의 Manager속성을 클릭하고 속성 entry helper 에서 사용가능한지 확인 하세요

기반이 되는 스키마 문서는 entry helper에 XML문서의 특정시점에 삽입될 구체적인 엘리먼트와 속성의 정보를 제공합니다entry helper 수정 아이콘 을 클릭하면 entry helper창의 내용이 새롭게 바뀝니다

ldquoManagerrdquo속성은 회색으로 비활성화 되었습니다 이것은 이미 Person 엘리먼트내에 존재 한다는것을 의미합니다Info창을 보면 여러분은 모든 Manager속성 정보를 볼수 있습니다Datatype=Boolean Occurrence=required (이것은 현재 편집중임을 의미합니다)

5 속성 entry helper 창에서 Programmer 속성을 더블클릭 하세요 이것은 Manager속성 이후에 있는 Programmer속성을 입력하고 있습니다(append탭 활성화)

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 70: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Programmer속성은 지금 속성 entry helper에서 회색 비활성 상태입니다우리는 여기서 데이터를 계속해서 입력할 수 있습니다 그러나 더 편리하고 능률적인 view가 DatabaseTable view입니다

5) DatabaseTable viewDatabaseTable view DatabaseTable view는 Enhanced Grid view가 실행되면 언제든지 사용가능 합니다 그리고 XML의 어떠한 타입의 문서 ndash XML XSD XSL 등 ndash를 편집하더라도 사용됩니다

장점 칼럼 header 의 drag and drop 방식 메뉴명령의 XML | Table | Ascending Sort 를 사용한 칼럼 데이터 정렬 메뉴명령의 XML | Table | Insert Row 를 사용한 열 추가 및 삽입 다른 제품간에 구조화된 데이터를 복사 및 붙여넣기 지능형 입력 도우미

DatabaseTable view의 실행1 grid view에서 Person엘리먼트의 텍스트 부근이나 위를 클릭하세요(그림은Person 엘리먼트를 표시한다)

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 71: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 메뉴옵션의 XML | Table | Display as table를 선택하거나 Display as table

아이콘 을 클릭하세요(단축키는 F9)Person엘리먼트는 지금 한 개의 테이블로 묶여 있습니다 그 엘리먼트와 속성 이름은 칼럼명으로 되었고 엘리먼트 내용(value값)은 테이블의 열들로 바뀌었습니다3 메뉴옵션에서 View | Optimal widths를 선택하거나 Optimal widths 아이콘

을 눌러 table view를 최적화 시키세요

참고엘리먼트와 속성 entry helper 창은 DatabaseTable view에서도 마찬가지로 작용합니다엘리먼트 entry helper 창은 Person 엘리먼트를 표시 하므로서 엑세스가 필요함을 보여주고 있습니다그것을 더블클릭 하므로서 테이블에 새로운 열을 추가할 수 있습니다

4 두번째열의 Manager속성 칸을 더블클릭하고 ldquofalserdquo를 선택하세요 탭키를 사용해서 다음칸으로 옮기고 다음의 데이터를 선택하세요 Degree = MA Programmer = true First = Alfred Last = Aldrich PhoneExt = 33 그리고Email = Aldrichworkcom

참조F9키는 현재 선택된 테이블이나 빈번하는 엘리먼트들의 Grid view와 DatabaseTable view사이를 오가며 보여줍니다

다른 제품으로 또는 다른 제품에서 XML데이터 복사

XML Spy는 여러분이 다른 제품이나 다른 제품으로 데이터를 쉽게 복사할 수 있게한다 복사한 데이터는 여러분이 XML데이터를 스프레드시트 같은 애플리케이션(예Microsoft Excel)으로 전환이 가능 하게끔 XML Spy내에서 뿐만 아니라 다른 제품

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 72: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

내에서 사용될 수 있다

엑셀에서 또는 엑셀로의 XML데이터 복사1 1열의 라벨을 클릭하고 Ctrl키를 누른상태에서 2열의 라벨을 클릭하세요그러면 테이블의 두열 모두 표시되고 있습니다

2 메뉴옵션의 Edit | Copy as Structured text를 선택하세요ldquoCopy as Structured Textrdquo명령은 화면의 클립보드에 엘리먼트를 복사합니다

3 엑셀로 전환해서 엑셀 워크시트에 XML 데이터를 붙여넣기를 하세요

4 엑셀내에 새로운 데이터 열을 입력하고 PhoneExt 엘리먼트에 3자리숫자(예 444)를 입력하세요

5 엑셀에서 테이블 데이터를 선택하고 Edit | Copy를 클릭하세요 그리고 XML Spy로 돌아오십시오6 XML Spy에서 테이블 데이터의 위쪽 왼칸을 클릭하고 Edit | Paste를 선택하세요

테이블 데이터는 위와 같이 수정 되었습니다

7 대문자 boolean값 ldquoTRUEFALSErdquo를 소문자 ldquotruefalserdquo로 바꾸세요메뉴옵션의 Edit | Replace를 사용하세요 (단축키 CTRL + H)

DatabaseTable view에서 데이터 정렬하기 DatabaseTable view는 여러분이 원하는 어떤 칼럼을 기준으로 XML데이터를 정렬할수 있게 합니다 이경우 우리는 last names으로 테이블을 정렬하려고 합니다

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 73: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1 Last 칼럼명 부분을 클릭하면 그 칼럼이 전부 반전이 됩니다

2 메뉴옵션에서 XML | Table | Ascending sort를 선택하거나 ldquoAscending sortrdquo아이콘을 클릭하세요칼럼과 테이블은 알파벳순으로 정렬 되었습니다(칼럼은 그대로 반전상태 임)

이 정렬에 의해서 text view의 소스도 변하게 됩니다(Text view아이콘을 클릭해서 확인해 보십시오)

3 메뉴옵션에서 XML | Validate를 선택하거나 F8키를 누르세요ldquoThis file is not valid Value does not match facet maxInclusive = ldquo99rdquo in element lsquoPhoneExtrsquo라는 에러메시지가 나타납니다

잘못된 엘리먼트는 자동으로 Databasetable view에 표시됩니다 결과는 전화 확장을 적을 범위를 초과했다는 메시지 입니다 그 범위를 넓혀야 됩니다

스키마 정의 수정하기

여기서 우리는 두 자리의 전화 확장이 분명히 충분하지 않다는 것을 알았습니다 그리고 세 자리까지 허용하도록 하고싶어 합니다 그렇게 하려면 바탕을 이루고 있는 스키마 문서를 바꿔야 합니다

1 메뉴옵션에서 DTDSchema | Go to definition이나 ldquoGo to definitionrdquo아이콘을 클릭하세요 이 경우 관련된 스키마 문서인 AddressLastxsd는 스키마

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 74: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

목록창에 열려있습니다

2 global Person 엘리먼트의 ldquocomponentrdquo아이콘 을 클릭하세요 그리고 PhoneExt 엘리먼트를 클릭하세요 여러분은 facets 탭에서 facet 데이터를 볼수 있습니다

3 facet데이터를 포함하는 ldquomaxInclrdquo칸을 클릭해서 lsquo999rsquo를 입력하고 엔터키를 치세요

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 75: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 CTRL + TAB키를 쳐서 XML문서로 돌아오세요5 XML문서의 재검증을 위해서 ldquoRevalidaterdquo버튼을 클릭하세요

ldquoThis file is validrdquo라는 메시지가 나타납니다 XML문서는 지금 수정된 스키마 정의를 따르고 있습니다

6 메뉴옵션에서 File | Save As hellip를 선택하고 문서에 CompanyLastxml 이름을 입력하세요7 CTRL + TAB을 눌러 스키마 문서로 이동한후 스키마 문서를 저장하세요

XML문서는 튜터리얼 폴더에서 lsquoCompanyLastxml로 사용 가능합니다

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 76: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

6 XSL 변환

이장의 목표공식적인 웹사이트에 게시될 Company HTML문서 생성하기

이장에서 하게될 것미리 만든 Companyxsl파일을 XML 문서에 할당하기XML파일을 HTML문서로 변환하는 XSL파일 사용하기

이장에서 사용할 아이콘과 그기능들XSL | Assign XSL XSL파일을 XML문서에 할당합니다XSL | Go to XSL XML문서가 참조할 XSL파일을 엽니다 XSL | XSL Transformation XML문서를 XSL Transformation 문서에 의해 특정한 파일로 변환시킵니다 이장에는 HTML파일로 변환됩니다 단축키 F10

참고만약 여러분이 HTML파일을 생성하는데 문제가 발생하면 테이블명과 XML데이터존재여부를 확인하세요 그리고 다음의 component 다운로드 센터에서 MSXML Parser 30(649kB)를 다운로드후 인스톨하십시오httpwwwxmlspycomdownload_componentshtml

1) XML에서 HTML로의 변환

XSL파일을 CompanyLast XML파일에 할당하기1 메인윈도우의 CompanyLastxml 탭을 클릭하여 활성화 문서로 만드세요2 메뉴옵션의 XSL|Assign XSL을 선택하세요3 Browse버튼을 클릭해서 Companyxsl파일을 선택하고 Open을 눌러서 확인하세요

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 77: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 OK버튼을 클릭하여 XSL파일을 XML문서로 할당하세요

XML 스타일시트 참조는 XML문서내에 위치합니다

XML문서를 HTML로 변환하기

1메뉴옵션의 XSL | XSL Transformation을 클릭하거나 아이콘을 클릭하세요(단축키 F10) 이것은 ldquoXSL Outputhtmlrdquo이라는 이름으로 Browser view에서 새로운 문서를 자동으로 만듭니다Company데이터를 왼쪽 아래 한 블록으로 보여주고 Person데이터를 테이블형식으로 그아래 보여주고 있습니다

결과를 HTML파일로 바꾸기여러분은 바탕이 되는 XSL파일을 편집함으로써 HTML파일의 형태를 바꿀 수 있습니다여기서 우리는 테이블의 배경색을 lime색에서 노란색으로 바꾸고 싶습니다

1 CompanyLastxml탭을 클릭해서 문서를 활성화 하세요2 메뉴옵션의 XSL | Go to XSL을 선택하세요

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 78: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

명령은 XML문서에서 참조하고있는 CompanyXSL파일을 열고 있습니다

3 라인 lsquolttable border=rdquo1rdquo bgcolor=rdquolimerdquogtrsquo을 찾아서 입력된 bgcolor= ldquolimerdquo을 bgcolor= ldquoyellowrdquo로 바꾸세요

4 바뀌어진 XSL파일의 저장을 위해 옵션메뉴의 File | Save를 선택하세요

5 CompanyLastxml 탭을 클릭해서 XML문서를 활성화 하고 XSL | XSL Transformation을 선택하던지 단축키 F10을 누르세요

새로운 XSL Outputhtml파일이 메인창에 나타나고 테이블의 배경색이 지금 노란색으로 나타나고 있습니다

6 메뉴옵션에서 File|Save를 선택하고 Companyhtml로 문서를 저장하세요

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 79: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

7 데이터베이스 데이터의 Importing 과 Exporting이장의 목표우리의 주소 목록에서 MS Access로 Person 데이터를 export하기 그리고 XML Spy로 Person 테이블을 재 import 하기

이장에서 수행될 것들

메뉴옵션의 Convert를 사용하면서 export 나 import 사용하기

이장에서의 기능과 아이콘들

Convert | Export to Text filesDatabase 다른 데이터 베이스를 사용하기 위해 XML데이터를 text로 export를 가능하게 합니다

Convert | Import Database data XML Spy로 데이터 베이스 데이터를 import를가능하게 합니다

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 80: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1) 외부 데이터베이스에 XML데이터 Export

데이터베이스에 데이터 Export하기

1 메인 윈도우의 CompanyLastxml tab을 클릭해서 문서를 활성화 하세요2 메뉴옵션에서 ConvertExport to Text filesDatabase를 선택하세요 이 대화창에는 기본적으로 모든 elements attributes를 데이터베이스로 보내고 primary key와 foreign key들을 생성하도록 셋팅되어 있습니다

3 Export to Database 버튼을 클릭하세요

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 81: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

이 대화 창에서는 여러분이 새로운 Access table을 만들거나 현재 데이터베이스나 다른 데이터베이스로 데이터를 보낼 수 있도록 합니다Namespace Options에서 Exclude Namespace는 default입니다

4 Destination database의 선택사항 중 Create a new Microsoft Access database를 클릭하고 OK를 누르세요

5Save as 대화창에서 새로운 데이터베이스의 이름(예 Companymdb)을 적고 저장하세요 처리 과정이 보여지고 성공적으로 실행 되었다는 메시지가 보입니다

6 여러분이 방금 저장한 Companymdb 파일을 열면 보내진 엘리먼트(element)에 대한 테이블이 자동으로 만들어졌을 것입니다

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 82: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

7 Person 아이콘을 더블 클릭하면 xml파일로부터 Person 데이터를 보여주고 테이블은 데이터베이스 index에 사용될 수 있는 Automatic fields Primary Key 와 Foreign Key를 가집니다

참조만약 여러분이 데이터베이스 데이터를 export 할 때 Create a new Microsoft Access database를 선택한다면 xml spy는 new Access 2000 database를 만드는 것입니다

만약 여러분이 Access 97 database로 데이터를 보내길 원한다면 먼저 빈 Access 97 database를 만들고 난 후 대화창에서 Choose an existing Access database를 선택하세요어떠한 Access database에서라도 데이터를 import할 때에는 제약이 없습니다

2) 데이터베이스 데이터 Import

XML Spy로 데이터 Import하기1 메뉴옵션에서 Convert | Import Database data를 선택하세요

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 83: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

2 Choose file 버튼을 누르고 Companymdb 파일을 선택하세요커서가 Selection statement text box로 위치합니다

3 Choose database table버튼을 클릭한 후 Person을 선택하고 OK를 누르면 text box에 Select from [Person]문장이 보입니다 여러분은 가져온 데이터를 standard SQL statements를 사용하여 select문을 추가할 수 있습니다

4 여러분이 import 하려는 table data를 미리 보려면 Preview를 click하세요미리 보기 윈도우는 선택한 것을 수행하여 데이터를 보여줍니다

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 84: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

속성별 엘리먼트별 Import 또는 Import취소미리 보기 윈도우에서는 즉시 여러분이 가져오려는 field 데이터를 선택하고 정의할 수 있게 합니다

element 명의 왼쪽에 element symbol ltgt을 계속 클릭하여 여러분이 원하는 것으로 선택할 수 있습니다 다음의 항목이 반복적으로 나타납니다

ltgt field를 Element로 정의하고 import한다= field를 Attribute로 정의하고 import한다times Skip field를 import 하지 않는다

5 Skip 표시가 나타날 때까지 Primary Key column과 Foreign Key column를 클릭하세요6 attribute symbol 표시가 나타날 때까지 Degree column Manager column Programmer column을 클릭하세요

7 OK 버튼을 클릭해서 import를 시작하세요8 메뉴옵션에서 File | Save를 선택해서 XML 문서에 이름을 입력(Person-Importxml)하고 저장하세요

XML Spy는 Person table data를 포함하는 이름없는 XML file을 생성합니다The root element는 Import가 되고 각 Person element는 Row element가 됩니다

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 85: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

Import된 데이터를 Text로 보려면 Text view 아이콘을 클릭하세요

8 데이터베이스 스키마 생성

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 86: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

XML Spy는 외부 데이터베이스 file에 기반을 둔 스키마를 만들 수 있으며 ADO ODBC 와 호환하는 databases뿐만 아니라 Microsoft Access databases을 지원합니다

이장의 목표같은 테이블 구조를 가지는 기존의 MS Access database를 스키마 파일로 변환하기

이장에서 수행될 것들 XML Spy에서 스키마를 생성하기 위해 메뉴옵션에서 Convert | Creat Database Schema 사용하기

이 예제는 tutorial에서 제공한 DB2Schemamdb file을 사용합니다DB2Schemamdb file의 관계도는 아래 다이어그램에서 보여지는 바와 같습니다 관계도를 보기 위해선 MS Access에서 menu option Tools | Relationships를 사용하세요

1) 데이터베이스를 스키마로 변환

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 87: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

데이터베이스 파일에서 스키마를 생성하기1 메뉴옵션에서 Convert | Create Database Schema를 선택하세요

2 Microsoft Access database를 선택하고 Choose file 버튼을 클릭하세요3 XML Spy에서 제공된 DB2schemamdb 파일을 선택하고 Open 버튼을 클릭하세요4 the Create Database Schema 대화창에서 OK 버튼을 클릭하여 변환과정을 시작하세요

생성된 스키마는 Schema Design View에 나타납니다 각 elements의 keyref와 key fields를 보기 위해서 Identity constraints tab을 클릭하세요

5 content model을 보기 위해서 Altova global element 앞에 있는 component 아이콘 을 클릭하세요

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 88: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

6 메뉴옵션의 File | Save as를 선택해서 새로운 스키마를 ldquoDB2schemaxsdrdquo이름으로 저장하세요7 Display all globals icon 을 클릭해서 스키마 over view로 돌아가세요

참조스키마를 생성할 때 모든 네임스페이스 접두사 콜론은 자동으로 underscore 문자로 변환합니다

키와 키 참조 필드를 지원하는 데이터베이스MS Access와 몇몇 다른 databases는 databases를 생성할 때 사용하는 ADO driver에 key와 keyref 정보를 자동으로 제공합니다

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 89: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

참조다음 내용은 다른 types 의 databases를 사용하기 위해 database schema를 만드는 방법을 간결한 형태로 설명하고 있습니다 이 것은 tutorial 과제의 범위를 벗어나긴 하지만 필요에 의해 추가 되었습니다이러한 databases를 설치하고 사용하는 방법에 대해 더 많은 정보를 얻으려면 database 관리자에게 연락을 취하십시오

Access가 아닌 데이터베이스 관계 생성하기1 the Create Database Schema 대화창에서 ADO connection string radio 버튼을 클릭하세요

2 현재 활성화된 Build 버튼을 클릭하면 Data Link Properties 대화창이 열립니다3 일반 드라이버들 중에 선택하지 말고 여러분이 사용하는 database에 적합한 Microsoft OLE DB Provider(or vendor specific provider)를 선택하세요이 장의 끝부분에서 To convert from list를 보세요

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 90: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

4 Next를 클릭해서 Connection tab으로 이동한 후 해당 정보를 입력하세요data source user name password Allow saving password(암호저장 허용) 체크 하세요5 Test Connection button(연결테스트)를 클릭해서 연결을 확인하고 OK를 클릭하세요

6 Create Database Scheam 대화창에서 OK를 클릭해서 스키마를 만드세요

SQL server databases에서 변환하기 Microsoft OLE DB provider for SQL server provider를 선택하세요

Oracle databases에서 변환하기 Microsoft OLE DB provider for Oracle provider를 선택하세요

MS Access에서 변환하기 Create Database Schema dialog box에서 Microsoft Access Database radio 버튼을 클릭하고 ADO connection string 과 Data Link Properties dialog box를 사용할 필요 없이 올바른 provider를 선택합니다 만약 여러분이 직접 connection string을 만들려고 한다면 MicrosoftJet40 OLE DB provider를 사용하세요

다른 databases에서 변환하기 the Data Link Properties dialog box에서 the corresponding Microsoft OLE DB 또는 vendor specific provider를 선택하세요

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 91: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

특정 provider없는 databases에서 변환하기다른 databases는 모든 테이블과 그 테이블의 datatypes을 포함하는 flat structured schema를 생성할 것입니다

import한 element 사이의 필수관계를 만들기 위해서 the schema overview에서 drag and drop을 사용하세요 element 계층을 생성하려면 the identity constraints tab에 보이는 key 와 keyref fields를 바로 편집 해야 합니다 더 많은 정보를 얻으려면 Reference manual에 있는 Create identity Constraints를 보세요

9 프로젝트 생성

이장의 목표

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 92: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

윈도우에 열려있는 파일 모두를 포함하는 XML Spy 프로젝트 만들기

이장에서 수행될 것들 메뉴옵션의 Project를 사용해서 프로젝트 폴더 만든다 프로젝트에 파일들을 추가하기 위해 특정 Project commands를 사용한다

이장에서 쓰이는 기능 및 아이콘들Project | New ProjectProject | Add active and related files to projectProject | Add active file to project

프로젝트의 장점

파일들과 URLs 는 일반확장과 다른 표준들에 의해 폴더로 그룹화 될 수 있습니다 일괄처리는 특정폴더에 적용되거나 프로젝트 전체에 적용될 수 있습니다 DTD나 스키마는 즉각적인 검증을 허용하는 특정폴더에 할당될 수 있습니다 XSL Transformations은 즉각적인 변환을 허용하는 특정폴더에 할당될 수 있습니다 XSL 변환 파일들이 위치할 폴더를 지정할 수 있습니다

이 setting들은 메뉴옵션의 Project | Project Properties 를 사용해서 정의 할 수 있습니다

메뉴옵션의 Project | Source control | Add to source control을 사용해서 XML파일을 Source control 아래에 위치시킬 수 있습니다(더 많은 정보를 얻으려면 참조 매뉴얼이나 온라인 도움말을 보세요)

개인용 네트워크 그리고 웹 폴더에 프로젝트를 추가할 수 있고 일괄검증을 할 수 있습니다

1) 프로젝트에 파일 추가

프로젝트에 파일 추가 및 생성현재 메인 창에 열린 많은 다른 파일들이 있습니다 여러분은 XML Spy로 이것들을 그룹화 함으로써 이 파일들에 접근할 수 있습니다

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 93: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

1 메뉴옵션의 Project | New Project을 선택하세요

프로젝트 창은 현재 New Project folder아래 몇 개의 폴더를 포함하고 있습니다2 CompanyLastxml tab을 클릭해서 메인 창에서 활성화 시키세요3 메뉴옵션의 Project | Add active and related files to project를 선택하세요

3개의 파일이 New Project 폴더에 추가된 것을 볼 수 있습니다 CompanyLastxml Companyxsl AddressLastxsd

4 Person-importxml 탭을 클릭하고 메뉴옵션의 Project | Add active file to project를 선택하세요

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 94: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

5 같은 방법으로 Companyhtml 과 DB2schemaxsd 파일을 추가하세요 프로젝트가 아래 다이어그램처럼 보일 것입니다

6 메뉴옵션의 Project | Save Project을 선택하고 프로젝트 명으로 Tutorial을 입력하세요

프로젝트에서 파일 삭제하기1 프로젝트 윈도우에서 삭제 하고자 하는 파일을 클릭하고 Delete키를 누르세요

프로젝트에 새 폴더 추가하기1 메뉴옵션의 Project | Add folder to Project를 선택하고 Properties 대화 창에 해당항목을 채우세요

특정폴더에 파일 추가하기1 파일을 클릭해서 main창에 활성화시키세요2 파일을 넣으려는 폴더의 마우스 오른쪽 버튼을 클릭하고 메뉴에서 ldquoAdd active file을 선택하세요이 방법은 현재 진행하는 프로젝트에서 어떤 폴더에 파일을 추가할 때 사용됩니다

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차
Page 95: 1 소개pds.devpia.com/MAEUL/25/xml_lec/1000/155/XMLSpy4.4_IDE... · Web view여러분은 HTML이나 Word문서를 생성 할수있고, 이것은 스키마 엘리먼트(자식 엘리먼트,

10 마치면서여기까지 하나 하나 모두 따라 해 줘서 고맙습니다

우리는 이 튜토리얼이 XML Spy의 기본을 이해하는데 충분한 도움이 되었으리라 믿습니다여러분이 더 많은 정보를 얻으려면 online help system 이나 여러분의 XML Spy버전에 맞는 tutorial PDF파일을 인쇄하여 보도록 하세요

여러분이 tutorial에 대해서 궁금한 사항이 있으면 언제든지 아래의 메일로 연락하기 바랍니다lyuhyxmltoxmlcom

  • 목 차