• 검색 결과가 없습니다.

CML 마크업 언어 PML 마크업 언어

N/A
N/A
Protected

Academic year: 2022

Share "CML 마크업 언어 PML 마크업 언어"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

XML Namespace

2006-05-08

영남대학교 지능 및 시스템 제어 연구실 이인근

email) terminator800@hanmail.net

(2)

Namespace의 필요성

여러 가지 마크업 언어로 작성된 XML 문서

한 개의 XML 문서는 한 개의 마크업 언어로 작성하는 것이 일반적 HTML 문서 : HTML 마크업 언어로 작성

(무선인터넷에서 사용되는) WML 문서 : WML 마크업 언어 (Wireless Markup Language)

한 개의 XML문서를 여러 가지 마크업 언어의 혼용 작성도 가능

CML(Customer Markup Language) : 고객정보를 표현하는 마크업 언어 PML(Product Markup Language) : 상품의 정보를 표현하는 마크업 언어 OML(Order Markup Language) : 주문 정보를 표현하는 마크업 언어

필요정보 주문정보 고객정보 주문된 상품정보

CML과 PML을 혼용해서 사용할 수 있도록 구성가능함

즉, OML 로 작성된 문서 내에 CML의 엘리먼트와 PML의 엘리먼트를 혼용해서 사용가능

CML 마크업 언어 PML 마크업 언어

OML 로 작성된 문서

(3)

Namespace의 필요성 CML 문서

PML 문서

OML 문서

OML

CML

PML

문제점 : 엘리먼트 이름 충돌

XML 문서 내를 여러 가지 마크업 언어로 작성할 때, 동일 한 이름을 가지고 있는 엘리먼트가 각기 다른 마크업 언어 에서 같이 사용될 경우에 발생함

(4)

Namespace의 필요성

“정보” 엘리먼트 고객정보 ? 상품정보?

XML파서는 “정보”라는 이름의 엘리먼트만으로 고객정조와 상품정보를

구별할 수 없음

문서 통합

CML 문서 PML 문서

OML 문서

(5)

Namespace 개념

네임스페이스로 이름 충돌 방지 방법

방법 : 엘리먼트 이름 충돌의 문제점은 엘리먼트 이름을 모두 다르게 해 주면 해결된다??

문제점 : 엘리먼트 이름을 고유하게 주기 위해 마크업 언어를 개발하는 개발자는 고유이름을 찾는 데만 많은 시간을 투자해야 함 해결방안 : XML Namespace

기본 개념

네임스페이스로 이름 충돌 방지

엘리먼트의 이름이 같더라도 접두사가 다르면 엘리먼트를 구별할 수 있지 않을까?

[이인근]

[이인근]

A University B Company

[이인근]

[이인근] [이인근]

A University | 이인근 B Company | 이인근

Namespace !

(6)

Namespace 사용

OML

CML

PML

고객:고유번호 고객 :이름 고객:고유번호 고객

:이름

고객 그룹(고객 이름 공간) 고객 그룹(고객 이름 공간)

상품:고유번호 상품 :이름 상품:고유번호 상품

:이름

상품 그룹(상품 이름 공간) 상품 그룹(상품 이름 공간)

(7)

Namespace

접두사를 첨가하는 것만으로 불충분한 이유

서로 다른 사용자가 동일한 접두사를 사용할 수 있음 Î 유일성이 보장되는 요소를 접두사 만드는데 이용하자

유일성이 보장되는 요소

인터넷 도메인 이름 (URI – Uniform Resource Locator)

Îhttp://www.w3.org/2001/XMLSchema

[이인근]

[이인근]

A University A University

[이인근] [이인근]

A University | 이인근 B Company | 이인근

http://www.a.ac.kr http://www.a-univ.ac.kr

http://www.a.ac.kr | 이인근 http://www.a-univ.ac.kr | 이인근

(8)

Namespace

네임스페이스 선언은

마크업 언어가 네임스페이스 이름을 가지고 있을 때 네임스페이스 이름을 접두사 자리에 바로 사용할 수 없음 네임스페이스 이름은 URL 형태를 가지고 있기 때문

ex) <http://isac.yu.ac.kr: Name>이인근</http://isac.yu.ac.kr: Name> ? 네임스페이스 이름을 대신하는 접두사를 따로 만들어 사용해야 함

ex) [isac = http://isac.yu.ac.kr] <isac:Name>이인근</isac:Name>

네임스페이스 선언이란?

네임스페이스 이름과 그 이름을 대신하여 사용할 접두사와 연관 짓는 것을 말함

<?xml version="1.0" encoding="euc-kr"?>

<yu:University xmlns:yu="http://www.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="yu.xsd">

<yu:Student>

<yu:Name>이인근</yu:Name>

<yu:ID>20650099</yu:ID>

</yu:Student>

<yu:Student>

<yu:Name>서석태</yu:Name>

<yu:ID>20650098</yu:ID>

</yu:Student>

</yu:University>

yu01.xml

Internet Explorer

(9)

Namespace

네임스페이스 사용 범위

네임스페이스 접두사를 붙일 수 있는 영역

네임스페이스를 선언했다고 해서 XML문서 내의 어느 엘리먼트에나 접두사를 붙일 수 는 없다.!!

네임스페이스 선언을 한 엘리먼트를 포함해서 그 엘리먼트의 자손 엘리먼트들 내에서 사용가능함

<?xml version="1.0" encoding="euc-kr"?>

<yu:University

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="yu.xsd">

<yu:Studentxmlns:yu="http://www.yu.ac.kr">

<yu:Name>이인근</yu:Name>

<yu:ID>20650099</yu:ID>

</yu:Student>

<yu:Student>

<yu:Name>서석태</yu:Name>

<yu:ID>20650098</yu:ID>

</yu:Student>

</yu:University>

루트 엘리먼트 University 는 yu 접두사를 사용할 수 없음

루트 엘리먼트University 는 yu 접두사를 사용할 수 없음

두번째 Student 엘리먼트는 yu 접두사를 사용할 수 없음

두번째Student 엘리먼트는 yu 접두사를 사용할 수 없음

yu02.xml

(10)

Namespace

속성 이름의 네임스페이스 적용

네임스페이스 이름을 가지고 있는 마크업 언어에 엘리먼트 및 속성이 선언되어 있을 경우에, XML 문서 작성시 엘리먼트 및 속 성에도 네임스페이스를 적용해야 함

<?xml version="1.0" encoding="euc-kr"?>

<isac:Lab xmlns:isac="http://isac.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="isac.xsd">

<isac:Equipment

isac:orderNo="01">

<isac:Name>오실로스코프</isac:Name>

<isac:ID>00524214</isac:ID>

</isac:Equipment>

<isac:Equipment

isac:orderNo="02">

<isac:Name>프린터</isac:Name>

<isac:ID>4452142</isac:ID>

</isac:Equipment>

</isac:Lab>

isac01.xml

(11)

Default Namespace

디폴트 네임스페이스란?

접두사를 포함하지 않는 모든 엘리먼트들이 기본적으로 속하는 네임스페이스를 말함

네임스페이스 이름이 있는 마크업 언어를 가지고 XML 문서를 작성할 경우에는 반드시 네임스페이스를 선언하고 XML문서를 작 성함

한 개의 마크업 언어로만 작성된 경우, 접두사를 생략하고 엘리먼트를 작성한 다음, XML 문서 내에 있는 모든 엘리먼트가 특정 네임 스페이스에 속함을 지정해 줌

<?xml version="1.0" encoding="euc-kr"?>

<University xmlns="http://www.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="yu.xsd">

<Student>

<Name>이인근</Name>

<ID>20650099</ID>

</Student>

<Student>

<Name>서석태</Name>

<ID>20650098</ID>

</Student>

</University>

XML문서가 한 개의 마크업 언어로만 작성될 경우, 접두 사는 오히려 거추장스러움

접두사를 생략하고 엘리먼트를 작성한 다음, XML 문서 내에 있는 모든 엘리먼트가 특정 네임 스페이스에 속함

을 지정해 줌

yu.xml

다른 마크업 언어와 구분할 필요가 없으므로

다른 마크업 언어와 구분할 필요가 없으므로

(12)

Default Namespace

디폴트 네임스페이스 사용 해지 영역

디폴트 네임스페이스가 사용되는 범위에서 일부분을 사용 해지 영역을 만들고, 그 사용 해지 영역에 엘리먼트를 작성하면, 해당 엘리먼트는 디폴트 네임스페이스에 속하지 않는 엘리먼트가 됨

<?xml version="1.0" encoding="euc-kr"?>

<University

xmlns="http://www.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="yu.xsd">

<Student>

<Name>이인근</Name>

<ID>20650099</ID>

</Student>

<!-- Default Namespace 해지 영역 -->

<html xmlns="">

html 본문내용

</html>

<!-- - - -->

<Student>

<Name>서석태</Name>

<ID>20650098</ID>

</Student>

</University> 파란색 마킹 부분은디폴트 네임스페이스 해지 영역

Æ 이 영역에서 작성된 엘리먼트는

“http://www.yu.ac.kr”

라는 네임스페이스 이름에 속하지 않는 엘리먼트

yu03.xml

(13)

Default Namespace

모든 element는 Default Namespace에 적용되지만 attribute는 Default Namespace에 적용되지 않는다

<?xml version="1.0" encoding="euc-kr"?>

<Lab xmlns="http://isac.yu.ac.kr"

xmlns:isacattri="http://isac.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="isac.xsd">

<Equipment isacattri:orderNo="01">

<Name>오실로스코프</Name>

<ID>00524214</ID>

</Equipment>

<Equipment isacattriorderNo="02">

<Name>프린터</Name>

<ID>4452142</ID>

</Equipment>

</Lab>

<?xml version="1.0" encoding="euc-kr"?>

<Lab xmlns="http://isac.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="isac.xsd">

<Equipment orderNo="01">

<Name>오실로스코프</Name>

<ID>00524214</ID>

</Equipment>

<Equipment orderNo="02">

<Name>프린터</Name>

<ID>4452142</ID>

</Equipment>

</Lab> 모든 엘리먼트는 디폴트 네임스페이스에 적용됨

Equipment 엘리먼트의 속성인orderNo는 어느 네임스페이스에도 속하지 않음

(14)

Multiple Namespace

복수 개의 Namespace를 선언

여러 형식의 문서를 하나의 문서로 통합하고자 할 경우 유용

<?xml version="1.0" encoding="euc-kr"?>

<University xmlns="http://www.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="yu.xsd">

<Student>

<Name>이인근</Name>

<ID>20650099</ID>

</Student>

<Student>

<Name>서석태</Name>

<ID>20650098</ID>

</Student>

</University>

<?xml version="1.0" encoding="euc-kr"?>

<Lab xmlns=http://isac.yu.ac.kr

xmlns:isacattri="http://isac.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="isac.xsd">

<Equipment isacattri:orderNo="01">

<Name>오실로스코프</Name>

<ID>00524214</ID>

</Equipment>

<Equipment isacattri:orderNo="02">

<Name>프린터</Name>

<ID>4452142</ID>

</Equipment>

</Lab>

<?xml version="1.0" encoding="euc-kr"?>

<Rent xmlns="http://www.rent.org"

xmlns:isac="http://isac.yu.ac.kr"

xmlns:yu="http://www.yu.ac.kr"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

schemaLocation="rent.xsd">

<isac:Equipment isac:orderNo="01">

<isac:Name>오실로스코프</isac:Name>

<isac:ID>00524214</isac:ID>

<yu:Student>

<yu:Name>이인근</yu:Name>

<yu:ID>20650099</yu:ID>

</yu:Student>

</isac:Equipment>

</Rent>

yu.xml

rent.xml

isac.xml

(15)

XML Namespaces Recommendation

Namespace Recommendation Namespaces in XML 1999년 1월 14일

W3C에서는 이름 충돌을 해결하기 위해 엘리먼트와 속성 이름을 세계적으로 유일하게 식별할 수 있는 새로운 매커니즘을 개발 하여 그에 대한 규격을 공포함

네임스페이스를 선언하는 문법 및 사용하는 방법에 대해 기술됨

http://www.w3.org/TR/REC-xml-names/

참조

관련 문서

변형된 물체가 원래 모양으로 되돌아가려는 힘 을 탄성력이라고 하며, 탄성력의 크기는 작용한 힘의 크기 와 같고, 작용하는 힘의 방향과

03 언어마다 똑같은 의미의 표현을 다르게 말하는 것을 통해 언어의 자의성을 알 수 있으며, 이는 언어의 말소리와 의미 의

[r]

부적절한

반면 관례 신호는 신호를 만들기 위한 비용이 거의 들지 않 으며, 신호와 발신자의 속성 간에 아무런 관계가 없는 신호를 말한다.. 관례 신호는 발신자가 신호를 만들기 위하여

만해문학상, 대산문학상, 중앙문화대상, 캐나다 그리핀 시인상 평생공로상, 마케도니아 스트루가 시 축제 황금화관 상, 로마재단 국제시인상 등

이 때문에 일찍부터 많은 학자의 주목을 받았고 , 모용선비에 대해 다방면으로 연구가 진행되었다.. 선비 관련 연구에 있어 탁발선비 관련 연구와 함께 모용선비와

[r]