XML (eXtensible Markup Language) -...

106
XML (eXtensible Markup Language) 이규철 충남대학교 컴퓨터공학과 [email protected]

Transcript of XML (eXtensible Markup Language) -...

Page 1: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML(eXtensible Markup Language)

이 규 철

충남대학교컴퓨터공학과

[email protected]

Page 2: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Contents

SGML & HTML & XML

XML DTD & Schema

XLL

XSL

2 / 100

Page 3: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Slides’ title here

SGML & HTML & XML

Page 4: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

마크업(Markup)의 기원

출판업계에서원고교정및식자작업을위해주석을첨가함

Markup Languages: RTF, LaTex, SGML, XML, ….

원고작성 서식작성 출판

서식지정을위해마크업사용

원고교정을위해마크업사용

4 / 100

Page 5: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

절차적(Procedural) 마크업

워드프로세서에서텍스트의외형과위치를지정하기위해사용(예: MS Word의 RTF)

텍스트와같이특정코드로저장

문제점 문서의구조정보를기록하지않음(문서외형을위해 사용)

유연성이 부족(이식성결여)

처리가 늦고, 오류 발생이잦다.

절차적마크업

공통코딩일반화마크업

5 / 100

Page 6: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

공통코딩

외부포맷팅프로시듀어호출로제어하는매크로기능추가

장점 문서의 이식성, 유연성

(외형 변화를 위해매크로만 수정)

마크업은 구조를기술하는데 친숙

LaTex의예

\documentclass[12pt]{article}

\title{\LaTeX}

\date{}

\begin{document} \maketitle \LaTeX{} is a document preparation system for the \TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of

6 / 100

Page 7: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

일반화(Generalized) 마크업

문서의외형이아닌구조를기술

마크업은데이터베이스스키마와유사한모델

예: SGML, XML

<!DOCTYPE memo SYSTEM "memo.dtd">

<memo>

<header>

<from>John Doe

<to>Jack Smith

<subject>XML at WhizBang

<body>

<para>Have you heard of this new technology, XML? It looks promising.It is similar to HTML but it is extensible. All the big names (Microsoft, IBM,Oracle) are

7 / 100

Page 8: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

SGML 정의

정의

Standard Generalized Markup Language, ISO 8879, 1989

문서에서 논리구조와내용 구조를 기술하기위한 메타언어(meta language)

SGML은다음을제공

기술적 문서마크업생성 기법

문서의 내용모델이나구조를 정의하기위한 언어

다양한 응용들사이 구조화된 데이터교환을 위한 도구

8 / 100

Page 9: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

SGML 특징

SGML 단점 S/W를개발하기 어렵다(SGML의복잡성)

Web에서 S/W 제한과 Instance의 이식성 결여

산업계의지원

논리구조 작성의어려움(DTD 작성 어려움)

SGML 장점 유연성

개방 표준

시스템이나 플랫폼에독립적

재사용성

9 / 100

Page 10: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

HTML 개요

HyperText Markup Language

W3C의명세

웹상에서 Hypertext 문서를생성할수있는간단한마크업언어

SGML의한응용

ASCII Text 양식의문서

HTML = SGML + a DTD

HTML

HEAD BODY

10 / 100

Page 11: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

HTML 특징

HTML 단점 고정된 태그집합

다양한 페이지포맷

임의구조화능력부족

효과적인 검색및 재사용 어렵다

HTML 장점 이식성과 사용이편리

HTML Instance를 Web에서 손쉽게 다운로드 가능

11 / 100

Page 12: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 역사

1960년대,IBM의 GML(Generalized Markup Language)

1986년, ISO 8879, SGML(Standard Generalized Markup Language)

1990년대초, HTML(HyperText Markup Language)

1996년, W3C WG에서 XML 공개

1998년 2월, W3C, Rec. XML 1.0 발표

2006년 8월, W3C, Rec. XML 1.1 발표

12 / 100

Page 13: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 표준

eXtensible Markup Language Meta Language

W3C working group에서 1996년도에작성

Web상에서구조화된전자문서를전송가능토록설계된표준화된텍스트형식

SGML/HTML과 Interoperability

일반 Web 응용 S/W에의해처리되고사용자정의문서를다양하게배치가능

새로운웹혁명을예고

새로운웹응용창출

13 / 100

Page 14: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML의 특징

간단성(SGML보다선택특성이적다)

지금까지경험에기본(SGML, HTML)

확장성(태그에제한없음)

링크의자동생성이가능

차세대하이퍼텍스트기능을제공

문서의재사용용이

웹사이트들의간단한시스템관리제공

표준화된스타일시트제어

Primary character set으로 8-bit ASCII와 Unicode 사용

플랫폼, 프로그래밍언어, Vendor에독립적: 모두 Text 이니까

14 / 100

Page 15: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML vs. SGML

생략태그, SGML 선언

논리적결합(&)

inclusion(+), exclusion(-)

NAME, NAMES

NUMBER, NUMBERS

NUTOKEN, NUTOKENS

CURRENT, etc

문서형선언

element 선언

문자 entity

외부 entity

SGML로부터제거된기능

- Style sheet

- XLINK, XPointer

- Query Language

- DOM, RDF

- Namespace, etc

XML에추가된기능

SGML에서계승된기능

확장성, 구조, 검증

Internet 지향XML SGML

15 / 100

Page 16: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

다른 표준들 간의 관계

ISO/IEC W3C

HyTime

DSSSL

SGML

SDIF

XML논리구조

XSL물리구조

XLL링크구조

MIME교환구조

16 / 100

Page 17: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML & HTML 차이점

다중하이퍼링크의사용

인터넷이나인트라넷에서임의정보유형을 정의가능

문서의외형을정의하는것이아니라문서의구조를정의: 검색도가능

HTML XML

<dl>

<dt><b> XML 문서 관리 시스템

(XML 시리즈)</b></dt>

<dd>이 규 철 / 1998

<br>가격 : 10, 000원/ISBN=#

0-07-9137098-5</dd>

</dl>

<book>

<title> XML 문서 관리 시스템</title>

<series>XML 시리즈</series>

<author>이 규 철</author>

<pub-date>1998</pub-date>

<price type=“Won”>10,000</price>

<isbn>ISBN=#0-07-9134098-5</isbn>

</book>

17 / 100

Page 18: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

18

Possible Advantages of Using XML

Truly Portable Data

Easily readable by human users

Very expressive (semantics near data)

Very flexible and customizable (no finite tag set)

Easy to use from programs (libs available)

Easy to convert into other representations

(XML transformation languages)

Many additional standards and tools

Widely used and supported

18 / 100

Page 19: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

19

App. Scenario 1: Data Exchange

Legacy System

(e.g., SAP R/2)

Legacy System (e.g.,

Cobol)

XML Adapter

XML Adapter

XML

(ebXML, RosettaNet, BizTalk, …)

SupplierBuyer

Order

Page 21: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

21

App. Scenario 3: XML for Metadata<rdf:RDF

<rdf:Description rdf:about="http://www-dbs/Sch03.pdf">

<dc:title>A Framework for…</dc:title>

<dc:creator>Ralf Schenkel</dc:creator>

<dc:description>While there are...</dc:description>

<dc:publisher>Saarland University</dc:publisher>

<dc:subject>XML Indexing</dc:subject>

<dc:rights>Copyright ...</dc:rights>

<dc:type>Electronic Document</dc:type>

<dc:format>text/pdf</dc:format>

<dc:language>en</dc:language>

</rdf:Description>

</rdf:RDF>

Page 22: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

22

App. Scenario 4: Document Markup<article>

<section id=“1“ title=“Intro“>

This article is about <index>XML</index>.

</section>

<section id=“2“ title=“Main Results“>

<name>Weikum</name> <cite idref=“Weik01“/> shows the

following theorem (see Section <ref idref=“1“/>)

<theorem id=“theo:1“ source=“Weik01“>

For any XML document x, ...

</theorem>

</section>

<literature>

<cite id=“Weik01“><author>Weikum</author></cite>

</literature>

</article>

Page 23: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

23

App. Scenario 4: Document Markup Document Markup adds structural and semantic

information to documents, e.g.

Sections, Subsections, Theorems, …

Cross References

Literature Citations

Index Entries

Named Entities

This allows queries like

Which articles cite Weikum‘s XML paper from 2001?

Which articles talk about (the named entity) “Weikum“?

Page 24: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Slides’ title here

XML DTD & Schema

Page 25: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 문서

Well-formed Documents

- 문서가 XML 구문규칙에의해작성

- 논리구조는 validate 되지않음

- 하나의가장바깥엘리먼트

(root, document element) 요구

Valid Documents

DTD를가지며, DTD에따라작성된문서

25 / 100

Page 26: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Well Formed

문서실례는 XML 문서에대한문법을따름

하나의최상위엘리먼트(루트, 문서엘리먼트)를가진다

엘리먼트가중첩되지않음

모든태그는 EMPTY 엘리먼트를제외하고시작태그와종료태그가균형을

이루어야함

EMPTY 엘리먼트는 <tag/> 형식으로 표현

모든속성은 quotes으로표현

모든엔티티들은선언되어야함

문자데이터내에마크업문자를포함하지않음

26 / 100

Page 27: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Well_Formed 문서 예

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

<대학>공과대학</대학><학부>정보통신공학부</학부><전공>컴퓨터공학전공</전공><학생>

<이름>홍길동</이름><학번>11111</학번><전화>042-555-6666</전화><팩스>042-666-5555</팩스><주소>대전광역시 서구 도마2동 439-6번지</주소><hp>011-222-3333</hp>

</학생> </학교>

XML 처리 명령(PI)

브라우징

사용자가 정의한엘리먼트

한글 2바이트 완성형

27 / 100

Page 28: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

스타일 적용 예

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

<?xml:stylesheet type=“text/css” href=“test1.css”?>

<school><univ>공과대학</univ> <div>정보통신공학부</div>

<depart>컴퓨터공학전공</depart>

<student><name>홍길동</name><no>11111</no><tel>042-555-6666</tel><fax>042-666-5555</fax><address>대전광역시서구

도마2동 439-6번지

</address><hp>011-222-3333</hp>

</student></school> test1.xml

univ, div, depart {display: block;font-size: 20pt; font-weight: bold;

}student name {

dispaly: block;font-size: 18;font-weight: bold;color: blue;

}student no, tel, fax, address, hp {

display: block;font-size: 10pt; font-style: italic;color: red;

} test1.css

브라우징

28 / 100

Page 29: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Valid XML 문서

XML valid 문서는 DTD를포함

XML DTD는다음구성요소들을포함하는태그에대한문법규칙들의집합제공 Processing Instructions

Elements

Attribute

Entities

Notations

Comments

CDATA Section

29 / 100

Page 30: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Processing Instructions

응용프로그램들에정보를제공하기위해사용

형식 : <?name pidata?>

name : PI target(응용에 PI를 정의)

pidata : 선택사항

XML 표준에서 PI name은 XML로 시작

XML PI 선택사항 version

standalone

yes - 내부 선언으로 처리

no – 외부 선언으로 처리

encoding

UTF-8, UTF-16, ISO-10646, EUC-*

예 : <?XML version=“1.0” encoding=“euc-kr”?>

30 / 100

Page 31: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엘리먼트

Element content

엘리먼트 이름과내용 특성을 정의

시작태그(<element>)로 시작, 종료태그(</element>)로 종료

Parsed Character data(#PCDATA)

character data(text)로 첫번째 선언

다른 엘리먼트를 포함하지 않는다

Other elements : subelement, children

Specific Keyword

EMPTY : 내용을포함하지 않는 엘리먼트

(<tag-name/>)

ANY : 임의 유형의 자식엘리먼트를 갖는다

<!ELEMENT 제목 (#PCDATA) >

<제목>인터넷에서의마크업기술</제목>

31 / 100

Page 32: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

문자데이터와 엘리먼트 내용의 혼합

발생지시자 의 미

+ 한번이상발생

? 발생할수도안할수도있음

* 0번이상발생

연결자 의미 예

, A 다음에 B (A,B)

| A 또는 B (A|B)

<!ELEMENT 명부 (#PCDATA | (name, birthdate?, phone))* >

32 / 100

Page 33: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엘리먼트

사진 ?이력

생년월일

이름

대학

전공

연락처

관심분야

애인이름*

EMPTY

#PCDATA

#PCDATA

집전화

사무실전화

EMAIL

#PCDATA|

,

33 / 100

Page 34: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엘리먼트

<?xml version="1.0" encoding="euc-kr" ?><!ELEMENT 이력 (사진?, 생년월일, 이름, 대학, 전공, 연락처, 관심분야, 애인이름*)><!ELEMENT 사진 EMPTY><!ELEMENT 생년월일 (#PCDATA)><!ELEMENT 이름 (#PCDATA)><!ELEMENT 대학 (#PCDATA)><!ELEMENT 전공 (#PCDATA)><!ELEMENT 연락처 (집전화|사무실전화|EMAIL)+><!ELEMENT 집전화 (#PCDATA)><!ELEMENT 사무실전화 (#PCDATA)><!ELEMENT EMAIL (#PCDATA)><!ELEMENT 관심분야 (#PCDATA)><!ELEMENT 애인이름 (#PCDATA)>

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

<!DOCTYPE 이력 SYSTEM "test.dtd"><이력>

<사진/><생년월일>111111-1009313</생년월일><이름>홍길동</이름><대학>공과대학</대학><전공>컴퓨터공학전공</전공><연락처>

<집전화>042-111-2222</집전화><사무실전화>042-1111-3333

</사무실전화><EMAIL>[email protected]

</EMAIL></연락처><관심분야>XML</관심분야><애인이름>여자1</애인이름><애인이름>여자2</애인이름>

</이력>test.dtd test2.xml

34 / 100

Page 35: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

속성

엘리먼트에대한추가적인정보를제공

DTD나시작태그내에지정

모든속성값들은 quote(‘ ’, “ ”)

3 부분으로구성 : 이름, 유형, 디폴트값

속성선언 <!ATTLIST 관련-엘리먼트명 attribute-list >

35 / 100

Page 36: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

속성유형

String attribute : CDATA, 임의텍스트 <!ATTLIST ELEMENTNAME

ATTRIBUTENAME CDATA #IMPLIED/#REQUIRED/#FIXED>

<item href=“http://dblab.cnu.ac.kr”>데이터베이스시스템연구실

</item>

Tokenized attributes

ID, IDREF, IDREFS, ENTITY, ENEITIES, NMTOKEN, NMTOKENS

<!ATTLIST ELEMENTNAME ATTRIBUTENAME TOKENTYPE

#IMPLIED/#REQUIRED /#FIXED>

<!ATTLIST chapter id ID #REQUIRED>

<chapter id=“ch01”>…. </chapter>

36 / 100

Page 37: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

속성 유형

Enumerated attributes

<!ATTLIST ELEMENT ATTRIBUTENAME (A|B|C|..) “DEFAULT”

#REQUIRED/#FIXED>

<!ATTLIST chapter align (left|center|right) “left” >

<chapter align=“left”>….. </chapter>

37 / 100

Page 38: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

속성유형

ID

ID의 값은 name

문서내에서 각엘리먼트 ID 값은고유

IDREF / IDREFS

IDREF : 지정된 ID로 엘리먼트를 가리킨다

IDREFS : white space로 구분되는 IDREF 값들

ENTITY / ENTITIES

ENTITY : external entity

ENTITIES : white space로 구분되는 ENTITY 값들

NMTOKEN / NMTOKENS

NMTOKEN : 단일워드로 구성

38 / 100

Page 39: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Attribute Default Value

#REQUIRED

엘리먼트선언시 반드시 값이지정

#IMPLIED

속성값이요구되지 않고 디폴트값을 제공하지 않는다

값이지정되지 않으면 XML 처리기는값 없이 처리

“value”

디폴트로임의 적절한 값이지정

#FIXED “value”

고정된값을갖는다

속성이요구되지 않지만, 발생시 지정된 값을갖는다

39 / 100

Page 40: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Attribute 사용 예

<?xml version="1.0" encoding="euc-kr" ?><!DOCTYPE 이력 [<!ENTITY % d.types "(1 | 2 | 3 | 4 | 5 | 6)"><!-- 1 : 2000, 2=mm-dd-yy, 3=mm/dd/yy, 4=dd-mm-yy, 5=month day year --><!ELEMENT 이력 (사진?, 생년월일, 이름, 대학, 전공, 연락처, 관심분야, 애인이름*)><!ELEMENT 사진 EMPTY><!ELEMENT 생년월일 (#PCDATA)><!ELEMENT 이름 (#PCDATA)><!ELEMENT 대학 (#PCDATA)><!ELEMENT 전공 (#PCDATA)><!ELEMENT 연락처 (집전화|사무실전화|EMAIL)+><!ELEMENT 집전화 (#PCDATA)><!ELEMENT 사무실전화 (#PCDATA)><!ELEMENT EMAIL (#PCDATA)><!ELEMENT 관심분야 (#PCDATA)><!ELEMENT 애인이름 (#PCDATA)><!ATTLIST 이력 status (draft|final) “draft”

id ID #REQUIRED ><!ATTLIST 생년월일 type %d.types; #IMPLIED><!ATTLIST 전공 h.align (left | center | right) #IMPLIED><!ATTLIST 애인이름 rid IDREF #IMPLIED>]>

40 / 100

Page 41: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Attribute 사용 예

<?xml version="1.0" encoding="euc-kr"?><!DOCTYPE 이력 SYSTEM “test.dtd”><이력 status=“final” id=“his01”>

<사진/><생년월일 type=“2”>01-20-99</생년월일>

<이름>홍길동</이름><대학>공과대학</대학><전공 h.align=“center”>컴퓨터공학전공</전공>

<연락처><집전화>042-111-2222</집전화><사무실전화>042-1111-3333</사무실전화><EMAIL>[email protected]</EMAIL>

</연락처><관심분야>XML</관심분야><애인이름 rid=“his01”>애인1</애인이름><애인이름 rid=“his01”>애인2</애인이름>

</이력>

41 / 100

Page 42: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엔티티

반복, 교체되는텍스트나문서구조를참조하는데사용

특수문자들(XML 예약문자들)을표현하는데사용

유일한이름을가진다

EntitiesMostly in DTDs

Entity 사용시장점 : consistency, changeability, efficiency

general

42 / 100

Page 43: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엔티티

Character reference

특수기호, 예약기호 등을 표현

&#38; (&), &#x3c (<), &lt;(<), &gt;(>), &amp;(&), &apos;(’), quot;(”)

General entities

“&” 사용

블럭이나 텍스트를참조 시 사용

Parameter entities

“%”사용

자주 사용되는내용 모델이나 속성을참조 시 사용

- DTD에서 : <!ENTITY univ “Paichai”>

- 실제문서에서 : &univ; university

<!ENTITY % m.addr (집전화|사무실전화|EMAIL)>

<!ELEMENT 연락처 (% m.addr;)+ >

43 / 100

Page 44: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엔티티

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

<!DOCTYPE 이력 [<!ENTITY univ “배재대학교”><!ELEMENT 이력 (이름, 대학, 전공, 특징)><!ELEMENT 이름 (#PCDATA)><!ELEMENT 대학 (#PCDATA)><!ELEMENT 전공 (#PCDATA)><!ELEMENT 특징 (#PCDATA)>]><이력><이름>홍길동</이름><대학>&univ;</대학><전공>컴퓨터공학</전공><특징>본 &univ;는 정보화를 선도하는

대학으로서…. &#38;, &#x3c;, &lt;, &gt;,

&amp;, &apos;, &quot; </특징></이력>

General Entity

Character Entity

44 / 100

Page 45: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

엔티티

<?xml version="1.0" encoding="euc-kr" standalone="yes"?><!DOCTYPE 논문 [<!ENTITY % m.name "이름, 대체이름?, 역활?, 회원구분?, 이력?"><!ENTITY % m.org "소속기관, 소속부서?, 소속기관주소?, 직책?"><!ENTITY % a.id "id ID #IMPLIED"><!ENTITY % a.sizes "SIZEX CDATA #IMPLIED

SIZEY CDATA #IMPLIED UNIT CDATA #IMPLIED">

…..<!ELEMENT 저자 (%m.name;) ><!ELEMENT 소속 (%m.org;) ><!ATTLIST 사진 %a.id;

%a.sizes;ho.align %h.align; #IMPLIEDve.align %v.align; #IMPLIED

NAME ENTITY #IMPLIEDSCALE CDATA #IMPLIED >

]><논문> ….</논문>

Parameter Entity

45 / 100

Page 46: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

주석

의미를가지지않으며 ‘<!--’로시작, ‘-->’로종료

선언이나태그내에올수없다.

문자열 “--”를제외한임의데이터를포함

XML 처리기는이를처리하지않는다.

예<?xml version="1.0" encoding="euc-kr" standalone="no"?><!-- 이부분은 주석 부분입니다 --><!-- 본문서는 XML 문서로서엘리먼트에 대한예 입니다 --><이력>

<이름>홍길동</이름><대학>공과대학</대학><전공>컴퓨터공학전공</전공><연락처>042-111-2222</연락처><관심분야>놀기</관심분야><애인이름>애인</애인이름>

</이력>

46 / 100

Page 47: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

표기법

멀티미디어, 워드프로세서정보등의비XML 데이터(NDATA)의데이터내용표기를정의

(적절한 S/W가데이터를처리)

응용처리기에정보를전달

External entities를이용

<!NOTATION a-w PUBLIC “-//addison --wesley //NOTATION maths //EN//XML”>

<!NOTATION tex PUBLIC “-//Local //NOTATION Tex Fomula //EN//XML”>

<!NOTATION hwp SYSTEM “hwp.exe”>

<!NOTATION tiff SYSTEM “C:\PROGRAM FILES\PaintShop Pro 5\psp.exe”>

<!ATTLIST eqn type NOTATION (a-w | tex | hwp | tiff) “a-w” >

<eqn type=“hwp”>%test.hwp;</eqn>

47 / 100

Page 48: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

CDATA 섹션

파서에마크업문자를무시하도록지시

문자데이터의모든곳에위치가능

모든문자데이터는응용에직접전달

중첩되지않는다

CDATA 부분내주석은인식되지않음

주로프로그램소스등을표현시에사용

<![CDATA[

*p=&q;

b=(i <= 3);

]]>

48 / 100

Page 49: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

CDATA 섹션

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

kr" standalone="yes"?>

<cdatatest>

<![CDATA[

<!DOCTYPE 이력 [

<!ENTITY univ “배재대학교”>

<!ELEMENT 이력 (이름, 대학, 전공)>

<!ELEMENT 이름 (#PCDATA)>

<!ELEMENT 대학 (#PCDATA)>

<!ELEMENT 전공 (#PCDATA)>

<!ELEMENT 특징 (#PCDATA)>

]]>

</cdatatest>

49 / 100

Page 50: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마

XML 문서의구조와컨텐츠를정의

데이터타입이나 Namespace 등을표현하기어려운 DTD 문제점을보안

DTD 보다유연한구조정의를갖는다

다양한데이터타입

integer, float, date, time, boolean, …

사용자정의타입

확장정의가능한데이터타입

Grouping

Namespace 지원

50 / 100

Page 51: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 vs. DTD

구분 DTD XML Schema

문법 EBNF + 의사(pseudo) XML XML 1.0을 만족

툴(Tool)풍부함 (기존의 SGML툴을사용할 수 있음)

XML툴을 거의 모두 사용할 수있음

DOM 지원 못함DOM을통해 조작되거나디스플레이 될 수 있음

컨텐츠모델

약함 – 간단한 순차 리스트 및선택 리스트만 제공.

요소들이나타날 수 있는회수를 정확히 말할 수 없음

강함 – 좀더 상세한 컨텐츠모델은 ‘혼합된 컨텐츠’에서도상호 배타적이지 않음.

나타나는 횟수를 정확히 지정할수 있음

51 / 100

Page 52: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

데이터타입정의

약함 – 문자열,이름토큰,ID와그 밖의 몇몇 데이터 타입

강함 – 문자열,숫자,날짜/시간및 널리 쓰이는 데이터 타입포함

상속 불가능 가능

확장성제한됨 – 확장을 위해서는XML 1.0 권고안을 바꿔야 함

제한 없음 – XML의 확장성을기반으로 함

기존의제약조건들

있음 – SGML과의호환성을유지하려 하기 위함

없음 – DTD의 것을 유지,

대부분은 최신의 프로그래밍언어와 기술에 근거하고 있음

복수어휘집지원

불가능 – 다큐먼트마다하나의 DTD

가능 – 필요한 만큼 사용할 수있고, XML 네임스페이스를기반으로 함

52 / 100

Page 53: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – End of DTD?

DTD

광범위하게 사용되고지원됨.

많은 기존응용프로그램과 문서가 있다.

많은 시간과비용이투자됨.

경험이 풍부한프로그래머와 전문가가 있다.

NO!

53 / 100

Page 54: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – 구성요소(1)

Declarations

엘리먼트와 속성

인스턴스에서 사용됨

Types

엘리먼트와 속성에서사용

각각의 선언은고유한 타입을 갖음

Type Definitions

내용모델 정의

54 / 100

Page 55: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – 구성요소(2)

Declarations Types Type Definitions

a

b

c

aType

integer

string

aType=‘(b,c)’

<element name=“a” type=“aType”/>

<element name=“b” type=“integer”/>

<element name=“c” type=“string”/>

<complexType name=“aType”>

<element ref=“b” minOccurs=“1”/>

<element ref=“c” minOccurs=“1”/>

</complexType>

55 / 100

Page 56: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – Complex Types

Complex Types

자식 엘리먼트허용

속성을 가질수 있다.

<xsd:comlpexType name=“KRAddress”>

<xsd:sequence>

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

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

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

<xsd:element name=“zip” type=“xsd:decimal”/>

</xsd:sequence>

<xsd:attribute name=“country” type=“xsd:NMTOKEN” fixed=“KR”/>

</xsd:complexType>

56 / 100

Page 57: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – Simple Types

Simple Types

자식 엘리먼트를가질 수 없다

속성을 가질수 없다

XML Schema의 Simple Types 구성

string

normalizedString

token

byte

unsignedByte

hexBinary

integer

positiveinteger

Negativeinteger

int

unsignedInt

long

unsignedLong

short

decimal

float

double

Boolean

time

dateTime

duraion

date

Name

QName

anyURI

……

57 / 100

Page 58: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 – Datatypes 생성

기존의데이터타입에서새로운데이터타입을생성할수있다.

“base” 사용

새로운데이터타입에대해하나이상의값을지정할수있다.

58 / 100

Page 59: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Datatypes 생성 형식

<simpleType name=“name” base=“source”>

<facet value=“value”/>

<facet value=“value”/>

</simpleType>

minInclusive maxInclusive minExclusive maxExclusive length minlength maxlength pattern enumeration

string boolean float double decimal timeDuration recurringDuration uriReference

59 / 100

Page 60: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Datatypes 생성 예

“전화번호”라는새로운데이터타입생성

엘리먼트는 문자열 값을 갖는다.

문자열의 길이는 8개

문자열의 형태 : ddd-dddd

‘d’ 는 10진수를 의미

문자열길이는여유있게표현한다.

<simpleType name=“전화번호” base=“string”>

<length value=“8”/>

<pattern value=“\d{3}-\d{4}”/>

</simpleType>

60 / 100

Page 61: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 스키마 예제

<?xml version="1.0" encoding="UTF-8"?>

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

<xsd:element name="person">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="name"/>

<xsd:element ref="age" minOccurs='0' maxOccurs='1'/>

<xsd:element ref="hobby" minOccurs='1' maxOccurs='unbounded'/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="name" type="string"/>

<xsd:element name="age" type="integer"/>

<xsd:element name="hobby" type="string"/>

</xsd:schema>

<!ELEMENT person (name, age?, hobby+)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT age (#PCDATA)>

<!ELEMENT hobby (#PCDATA)>

61 / 100

Page 62: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Multi namespace declarations

Can declare compound namespace in element

Child element applies necessary namespace selectively

<?xml version=“1.0”?>

<bk:books xmlns:bk =“urn:books”

xmlns:isbn=“urn:ISBN:0-007-23-5”>

<bk:title> XML and Webservice</bk:title>

<isbn:no> 156739495 </isbn:no>

</bk:book>

62 / 100

Page 63: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Slides’ title here

XLL & XSL

Page 64: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XLL(XML Linking Language)

TEI(Text Encoding Initiative)와 HyTime(Hypermedia/Time-based

Structuring Language) 표준에기본

양방향, 다중방향링크기능제공

XLL은두부분(XLink, XPointer)으로표현

XML-LINK Type(선언가능한값)

SIMPLE, EXTENDED, LOCATOR, GROUP, DOCUMENT

64 / 100

Page 65: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XLL의 특징

어떤엘리먼트로도링크표현가능

링크를어떻게처리하는가에대한정보를지정가능

XML 문서에포함되지않은리소스를포함가능

한개의링크가 3개이상의리소스를갖는것이가능

리소스와링크를분리가능

쌍방향링크를기술가능

65 / 100

Page 66: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

HTML vs. XML Link

HTML

URL은 하나의 문서만을 가르킬수 있다.

문서간의연관성, 기록을보관하는 개념 없음

XML

다방향링크 가능

모든 element를 linking element화 가능

링크하는문서와 동일한파일에저장불필요

HTML의 <A>태그수용

66 / 100

Page 67: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Simple Links

두리소스사이연결(HTML link와유사)

<TEST XML-LINK=“SIMPLE”

HREF=“http://dblab.cnu.ac.kr”>Link Text</TEST>

- Locator : other resource - a URL, a query, an XPointer

DTD <!ELEMENT TEST ANY ><!ATTLIST TEST

XML-LINK CDATA #FIXED “SIMPLE”ROLE CDATA #IMPLIEDHREF CDATA #REQUIREDTITLE CDATA #IMPLIEDCONTENT-ROLL CDATA #IMPLIEDCONTENT-TITLE CDATA #IMPLIEDSHOW (EMBED | REPLACE | NEW) “REPLACE”ACTUATE (AUTO | USER) “USER”BEHAVIOR CDATA #IMPLIED

>

67 / 100

Page 68: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Simple Link 예

<!ELEMENT search-engine-list (search-

engine)+>

<!ELEMENT search-engine (#PCDATA)>

<!ATTLIST search-engine

XML-LINK CDATA #FIXED "SIMPLE"

ROLE CDATA #IMPLIED

HREF CDATA #REQUIRED

TITLE CDATA #IMPLIED

INLINE (TRUE|FALSE) "TRUE"

CONTENT-ROLE CDATA #IMPLIED

CONTENT-TITLE CDATA #IMPLIED

SHOW

EMBED|REPLACE|NEW) "REPLACE“

ACTUATE (AUTO|USER) "USER"

BEHAVIOR CDATA #IMPLIED

>

<?xml version="1.0" encoding="EUC-KR"?>

<?xml:stylesheet type="text/xsl"

href="simple.xsl"?>

<!DOCTYPE search-engine-list SYSTEM

"slink.dtd">

<search-engine-list>

<search-engine

HREF="http://www.simmani.com"

TITLE="심마니홈페이지"> 심마니</search-engine>

<search-engine

HREF="http://www.yahoo.co.kr"

TITLE="야후! 코리아홈페이지">

야후! 코리아</search-engine>

</search-engine-list>

slink.dtd

slink.xml

68 / 100

Page 69: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Extended links

Extended links DTD 예

<!ELEMENT EXTENDED ANY

<!ATTLIST EXTENDED

XML-LINK CDATA #FIXED “EXTENDED“

ROLE CDATA #IMPLIED

TITLE CDATA #IMPLIED

INLINE (TRUE | FALSE) "TRUE"

CONTENT-ROLE CDATA #IMPLIED

CONTENT-TITLE CDATA #IMPLIED

SHOW (EMBED | REPLACE | NEW) "REPLACE"

ACTUATE (AUTO | USER) "USER"

BEHAVIOR CDATA #IMPLIED

>

69 / 100

Page 70: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Extended links

Extended Links : 두개이상의 리소스사이관계표현

<예제>

<단락>내가 즐겨 찾는 곳은<확장링크 xml:link="extended">여기

<확장할곳주소명="배재대학교“HREF="http://www.paichai.ac.kr"/>

<확장할곳주소명="컴퓨터공학과“HREF="http://cs.paichai.ac.kr"/>

<확장할곳주소명="멀미연구실“HREF="http://mie.paichai.ac.kr"/>

</확장링크>를 누르세요</단락>

</예제>

70 / 100

Page 71: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XLL(Extended links 예)

71 / 100

Page 72: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPointer

문서의계층적인엘리먼트트리구조에서위치와관계를정의하는문법을제공

XPointer 구조 번지지정의기본 단위

인수 : (Instance, NodeType, (Attr, Val)* )

child(2,CHAP).(4,SEC).(3, Par)

child(1,CHAP,LANG,EN)

72 / 100

Page 73: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPointer(Location Terms)

Absolute Location Terms

ROOT()

문서의 최상위 엘리먼트를 지정, 즉 문서 전체를 지정

HERE()

링크하는 엘리먼트 자체를 지정

ID(NAME)

문서 내에서 ID 값을 갖는 엘리먼트

DITTO()

한 쌍의 XPointer 중 두 번째 XPointer의시작에만 사용가능하고, 단순히 첫번째 항의 표기를 복제한다

HTML(NAMEVALUE)

HTML A 요소의 NAME 속성과 일치하는 값을 취하여, HTML의 구역 식별자와 같은서비스를 제공

73 / 100

Page 74: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPointer(Location Terms)

Relative Location Terms

child()

위치 소스의 자식(직접 아래) 엘리먼트들을 선택

descendant()

위치 소스에 포함된 모든 엘리먼트(1단계이상)

ancestor ()

위치 소스의 부모 엘리먼트들을 선택

preceding ()

위치 소스 이전에 나오는 엘리먼트들을 선택

following()

위치 소스 다음에 나오는 엘리먼트들을 선택

psibling()

위치 소스 이전에 나오는 형제 엘리먼트들을 선택

fsibling()

위치 소스 다음에 나오는 형제 엘리먼트들을 선택

74 / 100

Page 75: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPointer(Location Terms 예)

Spanning Location Term

id(a23).span(child(1), child(3))

String Location Term

id(a27).string(1, worms, 4) --- ‘s’

id(a27).string(5, ’!’, 1, 1)

75 / 100

Page 76: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XLL(XPointer 사용 예)

<SPEECH ID="a27"><SPEAKER>Polonius</SPEAKER> (LF)

<DIRECTION>crossing downstage</DIRECTION>Fare you well,

my lord. <DIRECTION>To Ros. </DIRECTION>

You go to seek Lord Hamlet? There he is. </SPEECH>

• ID(a27).CHILD(2,DIRECTION) : "To Ros."

• ID(a27).CHILD(2,.) : "crossing downstage".

– . : candidate elements of any type are matched

• ID(a27).CHILD(2,*CDATA) : "Fare you well, my lord."

– *CDATA : selects only untagged(pseudo-element) sub-portions of an element

• ID(a27).CHILD(2,*)

– * : selects among child elements and pseudo-elements

– selects the second element or pseudo-element among the children, the line-break between the "SPEAKER" and "DIRECTION" elements.

76 / 100

Page 77: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPath

Define

As XML Path Language (XPath), with XML separate language spec.

Question notation that do XML documents' elements and text to do filtering

with addressing .

Declarative expression to be not procedural notation

77 / 100

Page 78: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XPath's action principle

<booklist>

<book>

<title>XPath</title>

<writer>HK Jubg</writer>

<publish>MIE</ publish>

</book>

</booklist>

Document Root

booklist

book

title

writer

publish

XPath

HK Jung

MIE

<xsl:template match = “/booklist/book/title”>

78 / 100

Page 79: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Location Expression

/ : Child Operator of present node return.

// : In Document to Recursive Descent Operator all relevant node returns.

. :current context

* :Regardless of element name by Wildcard all node conversions

@ : Attribute's attribute node return.

@* : Wildcard that replace all attribute nodes of node.

: : As Namespace Operator, Namespace's Prefix return.

() : Group Operator

[] : filters

79 / 100

Page 80: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Finding Node

General method to get node that want at node

expression : “/”

Appoint position using relative pass from present node using "/"

that is child operator mainly.

Form : <xsl:template match=“00/00/00”>

Finding writer node

<xsl:template match =“booklist”>

<xsl:value-of select =“./book/writer”/>

</xsl:template>

80 / 100

Page 81: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Finding Attribute

Expression that find Attribute at node

Expression : “@”

Form : <xsl:template match=“/@attribute_name”>

Finding books attribute

<xsl:template match =“book”><xsl:value-of select =“./@catalogue”/>

</xsl:template>

81 / 100

Page 82: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Recursive Descent Operator

In element name regardless of Context Node's position path

appointment

expression : “//”

"//" Operator replaces node that escape relative route and have

name of appropriate element been in what position of present

document.

<xsl:template match =“booklist”><xsl:value-of select =“//title”/>

</xsl:template>

82 / 100

Page 83: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

스타일시트

CSS(Cascading Style Sheet)

XSL(eXtensible Style sheet Language)

XML 데이터 및문서와 함께 사용하도록설계된 스타일시트언어

XSLT, XSL-FO

CSS/XSL 처리

HTML,

RTF,

raw text,

etcCSS/

XSL

HTML/

XMLformatting

Processor

83 / 100

Page 84: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Using CSS with XML

Why use CSS with XML?

Easy to learn and implement

Already at work in the Web community

Works with HTML

CSS does have a downside

Can’t generate text

Can’t grab an item from one place and use it again in another place

Isn’t programming language

Use a simple box-oriented formatting model

84 / 100

Page 85: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Example

TITLE URL {

font-family: verdana;

font-size: 70%;

font-weight: bold;

list-style-type: square;

cursor: default;

}

TITLE {

margin: 10% 10% 10% 10%

}

TITLE {

margin: 10% 10%

}

85 / 100

Page 86: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

What is XSL?

eXtensible Style sheet Language

XML provide information about the structure of a document

XSL create style sheets for XML document

Formatting information

How to format the element, contents for viewing by user (ex, web browser)

The following design

Over the internet, XML syntax, subset of DSSSL

Mapping of CSS into XSL, ease to create

DSSSL의서브셋으로구성 XML 문서를 다른 XML 또는 비 XML 문서로변환

(Transformation) : XSLT

XML 문서의 구조를변경 (Formatting Object)

86 / 100

Page 87: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Why Stylesheet?

Reuse

the same content can look different in different contexts

Multiple output formats

different media (paper, online), different sizes (manuals, reports), different

classes of output devices (workstations, hand-held devices)

Styles tailored to the reader's preference

print size, color, simplified layout for audio readers

Standardized styles

corporate stylesheets can be applied to the content at any time

Freedom from style issues for content authors

technical writers needn't be concerned with layout issues because the

correct style can be applied later

87 / 100

Page 88: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL

특정엘리먼트가어떻게디스플레이가능한출력으로변환되는지기술

서식규칙구성 패턴(Pattern) : XML 문서의 엘리먼트 위치, 유형을 정의

표현정보(Action) : 서식규칙내의 패턴과 정합되는엘리먼트가 어떻게 표현되는지 기술

rule

pattern

action

XML XSL HTML/XML/RTF/…

88 / 100

Page 89: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

A construction rule

Patterns

Choose which elements to apply which style rules to

Have a target-element (matched in document)

Supply a type attribute (matched in element)

Actions

Objects to create in the output tree

Directly create flow objects, add literal text

89 / 100

Page 90: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSLT example

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="14-5.xsl"?>

<PERIODIC_TABLE>

<ATOM STATE="GAS">

<NAME>Hydrogen</NAME>

<SYMBOL>H</SYMBOL>

<ATOMIC_NUMBER>1</ATOMIC_NUMBER>

<ATOMIC_WEIGHT>1.00794</ATOMIC_WEIGHT>

<BOILING_POINT UNITS="Kelvin">20.28</BOILING_POINT>

<MELTING_POINT UNITS="Kelvin">13.81</MELTING_POINT>

<DENSITY UNITS="grams/cubic centimeter">

0.0899

</DENSITY>

</ATOM>

<ATOM STATE="GAS">

<NAME>Helium</NAME>

<SYMBOL>He</SYMBOL>

<ATOMIC_NUMBER>2</ATOMIC_NUMBER>

<ATOMIC_WEIGHT>4.0026</ATOMIC_WEIGHT>

<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>

<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>

<DENSITY UNITS="grams/cubic centimeter”>

0.1785

</DENSITY>

</ATOM>

</PERIODIC_TABLE>

PI

root

Child node

attribute

element

90 / 100

Page 91: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL templates

Template rule is important part of XSL style sheet

xsl:template element

Have the “match” attribute : node identification

xsl:apply-templates element : Use to handle child node

<xsl:template match=“atom”>

<xsl:apply-templates select=“name”/>

</xsl:template>

Template ruleattribute

91 / 100

Page 92: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL Example

report.xslreport.xml

92 / 100

Page 93: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL Example

93 / 100

Page 94: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL Example

XSL Example

94 / 100

Page 95: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 문서 예

<?xml version="1.0" encoding="EUC-KR"?>

<?xml:stylesheet type="text/xsl" href="ex1.xsl"?>

<memo>

<body>

<p> 오늘의 차세대 인터넷 언어(XML)에 대한 수업은 아마도흥미있고, 보람된 수업이 될 것입니다. 많은 학생들의 참여를바랍니다.</p>

<p> 수업시간은 월요일 7,8 교시이고요, 장소는 매체원원격강의실입니다. 감사합니다 !</p>

</body>

</memo>

95 / 100

Page 96: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL 문서예

<?xml version="1.0" encoding="EUC-KR"?><xsl:stylesheet

xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:template match="/"><xsl:apply-templates />

</xsl:template><xsl:template match="memo"><HTML>

<HEAD><TITLE> 메모 </TITLE>

</HEAD><BODY><DIV><xsl:apply-templates /></DIV>

</BODY></HTML>

</xsl:template>

<xsl:template match="body">

<DIV>

<xsl:apply-templates />

</DIV>

</xsl:template>

<xsl:template match="p">

<DIV>

<xsl:value-of />

</DIV>

</xsl:template>

</xsl:stylesheet>

XML + XSL

96 / 100

Page 97: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSLT 문서예

<xsl:template match="memo">

<HTML><HEAD>

<TITLE> 메모 </TITLE></HEAD><BODY><DIV><xsl:apply-templates /></DIV></BODY>

</HTML></xsl:template>

<HTML><HEAD>

<TITLE> 메모 </TITLE></HEAD><BODY><DIV>

memo 엘리먼트의하위 엘리먼트

</DIV></BODY>

</HTML>

97 / 100

Page 98: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSLT 문서예

<xsl:template match="body">

<DIV>

<xsl:apply-templates />

</DIV>

</xsl:template>

<xsl:template match="p">

<DIV>

<xsl:value-of />

</DIV>

</xsl:template>

<p>는엘리먼트를만나면 <xsl:value-of/>

태그를실행하는데, 이는 <p> 태그내의문자열을가져와서 <DIV> 태그사이에

삽입한다.

Body 엘리먼트를만나면 <DIV>

태그를출력하고하위엘리먼트처리실행

98 / 100

Page 99: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSLT 문서예

<HTML>

<HEAD>

<TITLE> 메모 </TITLE>

</HEAD>

<BODY>

<DIV>

<DIV>

<DIV> 오늘의 차세대 인터넷 언어(XML)에대한 수업은 아마도 흥미있고, 보람된 수업이 될 것입니다. 많은 학생들의참여를 바랍니다.</DIV>

<DIV> 수업시간은 월요일 7,8 교시이고요, 장소는 매체원원격강의실입니다. 감사합니다 ! </DIV>

</DIV>

</DIV>

</BODY>

</HTML>

변환된문서

99 / 100

Page 100: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL:formatting object

XML 내용을사용자에게어떻게표현할지를나타내기위해사용하는어플리케이션

HTML+CSS 보다더복잡한레이아웃모델제시

더일반적인이용을위해설계

100 / 100

Page 101: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL:formatting object

XSL 포맷팅모델은사각형영역에기본

4개의다른종류의사각형영역으로구분 Area container

(머리글, 본문, 바닥글, 왼쪽/오른쪽여백)

Block area(단락, 리스트)

Line area(블록 내텍스트의 한 행)

Inline area(문자, 각주, 수학식과같은행의일부)

101 / 100

Page 102: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XSL:FO 처리

result tree Flow Object Tree

XSL

Processor

Display

Processor

Parser

XSLT

Processor

XML

DocumentXSL

StyleSheet

XSL Formatting Object

Flow Object Semantics

Engine

Output

XSLT, XPath

Specification

Formatted

result

Transform

102 / 100

Page 103: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 도구

XML 문서

Editor

Convert

DTDEditor

DataBase

Formatter

Viewer

Browser

Server

Parser+응용

(Java, JavaScript)

103 / 100

Page 104: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

XML 문서처리 모델

포맷팅처리 표시처리

스타일 설계처리 폰트

리소스

XSL

포맷지정

물리적구조정보

CSS 테이프

CD-ROM

책Style Editor

Browser/

Viewer

XML문서

편집처리

DTD 설계처리

DTD

DTD Editor

논리적구조정보

XML Editor

기존문서Converter/

Filter

문서정보검색

검색엔진

문서가공

EDI, CALS, 전자출판,

Workflow S/W

XML 문서

문서저장및 관리

104 / 100

Page 105: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

W3C’s long term goals

Web for Everyone

regardless of language, user capabilities, geographical location, device used for access,…

Web on Everything

not only PC, but Phones, PDA, Television,…

Knowledge Base, Advanced data searching and sharing

information for both human and machine processing

Trust and Confidence

technologies for collaborative environment

a Web with accountability, security, confidence, and confidentiality

105 / 100

Page 106: XML (eXtensible Markup Language) - KOCWcontents.kocw.net/KOCW/document/2015/chungnam/leekyuchul... · 2016-09-09 · 1960년대,IBM의GML(Generalized Markup Language) 1986년, ISO

Slides’ title here

Thank you for your attention!!