24
웹 웹웹웹웹 웹웹웹 웹웹 XML 인인인인인인인 인인인 2006.01.24

웹 서비스를 말하는 언어 XML

Embed Size (px)

DESCRIPTION

웹 서비스를 말하는 언어 XML. 인공지능연구실 한기덕 2006.01.24. 목차. 1. 왜 XML 을 사용하는가 ? 2. 웹 서비스 관련 XML 기술은 무엇인가 ? - 네임스페이스 - XML 스키마 3. 요약. 1. 왜 XML 을 사용하는가 ?. XML 과 HTTP 웹 서비스가 사용하는 대표적인 두 가지 표준 기술 HTTP 웹 서비스에서 전송 네트워크로서 메시지를 전송하고 받는 역할을 수행 XML - PowerPoint PPT Presentation

Citation preview

Page 1: 웹 서비스를 말하는 언어  XML

웹 서비스를 말하는 언어 XML

인공지능연구실한기덕

2006.01.24

Page 2: 웹 서비스를 말하는 언어  XML

2

목차

1. 왜 XML 을 사용하는가 ?

2. 웹 서비스 관련 XML 기술은 무엇인가 ?- 네임스페이스- XML 스키마

3. 요약

Page 3: 웹 서비스를 말하는 언어  XML

3

1. 왜 XML 을 사용하는가 ? XML 과 HTTP

– 웹 서비스가 사용하는 대표적인 두 가지 표준 기술– HTTP

• 웹 서비스에서 전송 네트워크로서 메시지를 전송하고 받는 역할을 수행

– XML• 웹 서비스에서 서비스를 등록 , 검색 , 기술 , 호출하는 방법을

정의하는 중요한 요소• 웹 서비스의 핵심 프로토콜인 SOAP, WSDL, UDDI 가 모두

XML 로 기술됨

Page 4: 웹 서비스를 말하는 언어  XML

4

1. 왜 XML 을 사용하는가 ? 썬의 XML 설계자이며 W3C 의장이었던 존 보삭 (Jon B

osak) 은 XML 을 다음과 같이 설명

향후 XML 은 웹 기술에서 가장 핵심적인 진보를 가져오고 , 웹의 근본을 송두리째 바꿀 것이다 . XML 은 안전한 전자 상거래 구축을 가능하게 하며 , 새로운 분산 애플리케이션 시대를 이끌어갈 것이다 . 또한 소프트웨어 개발자와 고객의 관계를 새롭게 변화시킬 것이다 . 또한 소프트웨어 개발자와 고객의 관계를 새롭게 변화시킬 것이다 . 다시 말해 , XML 은 어떤 플랫폼에서나 읽을 수 있는 형식을 제공하기 때문에 특정 회사의 제품과 관련된 특정 환경에 얽매지 않아도 된다 .

Page 5: 웹 서비스를 말하는 언어  XML

5

1. 왜 XML 을 사용하는가 ? A 와 B 라는 프로그램이 사용자 아이디 , 비밀번호 , 이름을

교환하기로 합의하고 그에 따른 메시지를 정의해 놓았다면 다음과 같은 XML 메시지 형식이 가능

이런 메시지는 이해하기 쉽고 , 전달하려는 데이터의 의미가 메시지 안에 있기 때문에 XML 파서를 통해 쉽게 사용자 아이디나 비밀번호 , 이름을 추출 가능 ( 자기 기술 , self-describing)

<?XML version=“1.0” encoding=“EUC-KR”?><user_information><ID>test</ID><password>password</password><name> 홍길동 </name></user_information>

Page 6: 웹 서비스를 말하는 언어  XML

6

1. 왜 XML 을 사용하는가 ?

XML 데이터 교환의 장점– 데이터의 의미 표현이 가능– 교환되는 데이터 변경이 용이– 기존의 파싱 프로그램의 이용이 가능

Page 7: 웹 서비스를 말하는 언어  XML

7

2. 웹 서비스 관련 XML 기술은 무엇인가 ?

네임스페이스– 정의

• XML 네임스페이스는 URI 참조 (Reference) 로 구분될 수 있으며 XML 문서에서 요소 유형 (Element type) 과 속성 이름 (Attribute name) 으로 사용되는 이름 (Name) 의 집합

– 네임스페이스를 쓰는 이유 ?• XML 문서 안에 선언된 요소나 속성 이름을 구별할 수 있는

수단을 제공하는 것

Page 8: 웹 서비스를 말하는 언어  XML

8

네임스페이스 네임스페이스 사용하기

– 기본 네임스페이스의 사용 예

– 접두사와 연관지어 네임스페이스를 사용하는 예

<table xmlns=“http://freddynfellows.com/furniture”> <name> 한빛 탁자 </name> <width>100</width> <length>140</length></table>

<r:table xmlns:r=“http://freddynfellows.com/furniture”> <r:name> 한빛 탁자 </r:name> <r:width>100</r:width> <r:length>140</r:length></r:table>

Page 9: 웹 서비스를 말하는 언어  XML

9

네임스페이스

Soap 메시지에서의 네임스페이스 (XML 로 표현되는 전송 규약 )

01 POST /rpcrouter HTTP/1.1

02 Host: 127.0.0.1

03 Content-Type: text-xml; character=“utf-8”

04 Content-Length: 559

05 SoapAction:

06

07 <SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

08 SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”

09 <SOAP-ENV:Header>

10 <m:anthentication xmlns:m=“http://freddynfellows.com/soap/authentication”

11 SOAP-ENV:mustUnderstand=“1”>

12 <m:userID>testID</m:userID>

13 <m:password>password</m:password>

14 </m:anthentication>

15 </SOAP-ENV:Header>

16 <SOAP-ENV:Body>

17 <cmd:getUserInformation xmlns:cmd=“http://freddynfellows.com/soap/cmd”>

18 <social-number xsi:type=“xsd:string”>123456-7890123</social-number>

19 </cmd:getUserInformation>

20 </SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 10: 웹 서비스를 말하는 언어  XML

10

2. 웹 서비스 관련 XML 기술은 무엇인가 ?

XML 스키마– 정의

• 데이터의 비즈니스 조건을 표현하기 위한 XML 어휘집 ( 사전 )

– 관련 정보• XML 스키마는 XML 1.0 과 XML 네임스페이스를 필수적으로

요구• XML 스키마는 DTD 의 단점을 보완하기 위해 만들어짐

– XML 스키마를 쓰는 이유• 유효한 XML 문서를 만들기 위해 사용

Page 11: 웹 서비스를 말하는 언어  XML

11

XML 스키마

유효한 XML 문서의 검증

– 위 데이터에 대한 제약조건• “ 위치” 데이터는 “위도”와 “경도”로 이루어진다 .

• “ 위도”와 “경도” 데이터의 범위는 -90 에서 90 사이이다 .

• “ 위도”와 “경도” 데이터의 소수점 아래 자리는 총 6 자리이다 .

< 위치 > < 위도 >32.904237</ 위도 > < 경도 >73.620290</ 경도 ></ 위치 >

Page 12: 웹 서비스를 말하는 언어  XML

12

XML 스키마

DTD 와 XML 스키마의 차이점– DTD 는 XML 문서와 서로 다른 표기법을 사용

• XML 문서의 구조나 타입을 기술하기 위해 다른 표기법을 사용하는 것은 XML 문서나 프로그램 개발에 이중 노력이 필요

– DTD 는 10 가지의 데이터를 지원하지만 , XML 스키마는 44가지 이상의 데이터를 지원

• DTD 에서는 어느 한 요소가 0 부터 9999 까지의 정수만 포함하도록 표현하는 것은 불가능하다 .

– DTD 와 달리 , XML 스키마는 XML 과 마찬가지로 확장이 가능• 개발자 자신만의 데이터 타입을 정의할 수 있으며 , 한 XML 문서에서 여러

개의 XML 스키마를 참조 가능

Page 13: 웹 서비스를 말하는 언어  XML

13

XML 스키마

XML 스키마 사용법– XML 스키마의 데이터 타입

• Bulit-In Type : 미리 정의된 데이터타입• Derived Type : 응용을 통해 만든 데이터타입

Bulit-in Typesxs:string

xs:decimal

xs:integer

Derived Types

Simple Types

Complex Types

Page 14: 웹 서비스를 말하는 언어  XML

14

XML 스키마의 데이터 타입 Simple Type (Derived Type)

– “age” 라는 element 에 대한 데이터 타입을 정의– “age” element 는 정수 (integer) 를 가지고 , 최소값은 0,

최대값은 100 까지 가진다 .<xsd:element name=“age”>

<xsd:simpleType>

<xsd:restriction base=“xsd:integer”>

<xsd:minInclusive value=“0”/>

<xsd:maxInclusive value=“100”/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<age>50</age> : 유효하다<age>200</age> : 유효하지 않다 .

Page 15: 웹 서비스를 말하는 언어  XML

15

Simple Type (Derived Type)

Simple Type 이 선언할 수 있는 제한 조건제한 조건 설명

enumeration 요소가 가질 수 있는 값의 집합fractionDigits 요소가 가질 수 있는 최대 소수 자리

length 요소가 가질 수 있는 문자의 개수나 리스트 값의 개수 (list items)

maxExclusive 숫자 값의 최대 값 ( 요소가 가질 수 있는 값 > 정의된 값 )

maxInclusive 숫자 값의 최대 값 ( 요소가 가질 수 있는 값 >= 정의된 값 )

maxLength 요소가 가질 수 있는 문자의 최대 개수 및 리스트 값의 최대 개수minExclusive 숫자 값의 최소 값 ( 요소가 가질 수 있는 값 < 정의된 값 )

minInclusive 숫자 값의 최소 값 ( 요소가 가질 수 있는 값 <= 정의된 값 )

minLength 요소가 가질 수 있는 문자의 최소 개수 및 리스트 값의 최소 개수Pattern 요소가 가질 수 있는 문자들의 패턴을 정의

totalDigits 요소가 가질 수 있는 숫자 값의 최대 자리 수whiteSpace 요소가 어떻게 공백을 처리하는지를 정의

Page 16: 웹 서비스를 말하는 언어  XML

16

Simple Type (Derived Type)

제한 조건 중 enumeration 의 사용<xsd:element name=“car”>

<xsd:simpleType>

<xsd:restriction base=“xsd:string”>

<xsd:enumeration value=“sonata”/>

<xsd:enumeration value=“sm5”/>

<xsd:enumeration value=“tico”/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

Page 17: 웹 서비스를 말하는 언어  XML

17

XML 스키마의 데이터 타입 Complex Type (Derived Type)

– 지시자• Order 지시자 : 요소가 나타내는 순서에 대한 지시자

• Occurrence 지시자 : 요소가 나타내는 빈도 수에 대한 지시자

• Croup 지시자 : 요소들의 집합을 나타내고 참조하기 위한 지시자

Any 요소의 자식 노드를 임의의 순서로 표현

All 요소의 자식 노드를 모두 임의의 순서로 표현

Choice 요소의 자식 노드를 선택적으로 임의의 순서로 표현

Sequence 요소의 자식 노드를 스키마에 정의된 순서로 표현

maxOccurs 요소가 나타내는 빈도 수 ( 최대 )

minOccurs 요소가 나타내는 빈도 수 ( 최소 )

Group name 임의로 여러 개의 요소를 묶어준다 .

Group reference Group name 을 다른 요소가 참조할 수 있도록 한다 .

Page 18: 웹 서비스를 말하는 언어  XML

18

Complex Type (Derived Type)

XML 스키마 ( 지시자 All)– 어떤 요소가 All 지시자를 가지면 그 요소는 자식 요소로

선언된 모든 요소를 반드시 포함해야 한다 . 이때 나타나는 순서는 상관하지 않는다 .

<xsd:element name=“person”>

<xsd:complexType>

<xsd:all>

<xsd:element name=“firstname” type=“xsd:string/>

<xsd:element name=”lastname” type=“xsd:string”/>

</xsd:all>

</xsd:complexType>

</xsd:element>

Page 19: 웹 서비스를 말하는 언어  XML

19

Complex Type (Derived Type) XML 스키마 ( 지시자 Sequence)

– Sequence 지시자는 자식 요소의 순서가 XML 스키마에서 선언된 순서대로 나타남<?xml version=“1.0”?>

<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>

<xsd:element name=“message”>

<xsd:complexType>

<xsd:sequence>

<xsd:element name=“from” type=“xsd:string/>

<xsd:element name=”to” type=“xsd:string”/>

<xsd:element name=“subject” type=“xsd:string”/>

<xsd:element name=“content” type=“xsd:string”/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

Page 20: 웹 서비스를 말하는 언어  XML

20

Complex Type (Derived Type)

앞장의 XML 스키마에 따르는 XML 문서<?xml version=“1.0”?>

<message xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation=“http://www.w3schools.com/schema/message.xsd”>

<from> 홍길동 </from>

<to> 성춘향 </to>

<subject> 편지 </subject>

<content> 내용… </content>

</message>

Page 21: 웹 서비스를 말하는 언어  XML

21

Complex Type (Derived Type)

<xsd:element name=“employee” type=“fullpersoninfo”>

<xsd:complexType name=“personinfo”>

<xsd:sequence>

<xsd:element name=“firstname” type=“xsd:string”/>

<xsd:element name=“lastname” type=“xsd:string”/>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name=“fullpersoninfo”>

<xsd:complexContent>

<xsd:extension base=“personinfo”>

<xsd:sequence>

<xsd:element name=“address” type=“xsd:string”/>

<xsd:element name=“city” type=“xsd:string”/>

<xsd:element name=“country” type=“xsd:string”/>

</xsd:sequence>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

XML 스키마 (element 확장 )

Page 22: 웹 서비스를 말하는 언어  XML

22

Complex Type (Derived Type)

<employee>

<firstname> 홍 </firstname>

<lastname> 길동 </lastname>

<address>lycos Korea</address>

<city> 서울 </city>

<country>Korea</country>

</employee>

앞장의 XML 스키마에 따르는 XML 문서

Page 23: 웹 서비스를 말하는 언어  XML

23

Complex Type (Derived Type) Simple Content and Attributes

<xsd:element name=“elevation”>

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base=“xsd:integer”>

<xsd:attribute name=“units” type=“xsd:string” use=“required”/>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<elevation units=“feet”>5440</elevation>

Page 24: 웹 서비스를 말하는 언어  XML

24

3. 요약

XML 은 데이터를 표현하고 구조화하는 업계 표준으로 , 이를 통해 필요한 정보를 표준화된 방식으로 구조화할 수 있으며 , 이러한 XML 표준을 지원하는 다양한 파서를 사용하여 , 작성된 XML 문서를 쉽게 읽어 들일 수 있다 .

개발자는 데이터를 기술하거나 파싱 프로그램을 개발하지 않아도 되기 때문에 그만큼 프로젝트에서 해결해야 할 비즈니스 로직에만 집중할 수 있다 .

네임스페이스는 XML 문서 안에서 사용된 요소 (Element) 나 속성 (Attribute) 을 URI 와 연계함으로써 이를 검증하기 위한 방법 (XML 어휘집 ) 을 제공한다 .

XML 스키마는 XML 문서의 유효성을 검사할 수 있는 방법을 제시하고 , 문자 중심의 XML 문서 안에서 다양한 데이터 타입을 표현할 수 있는 방법을 제공한다 .