1.49k likes | 1.75k Views
eXtensible Markup Language. 전혜영 (peridot@suned.co.kr). Web Technology. 인터넷이 급속히 확산되면서 방대하고 복잡한 자료 관리 정의된 문서의 저작과 관리가 용이 좀더 질의 (Qyery) 에 근접한 검색 결과 필요 멀티 미디어의 필요성 (SGML) 전자상거래 분야 기업간의 데이터 교환이나 문서교환에 효율성. Web Application. SGML (1986). XML (1998 년 2 월 ). HTML (1992).
E N D
eXtensible Markup Language 전혜영(peridot@suned.co.kr)
Web Technology • 인터넷이 급속히 확산되면서 방대하고 복잡한 자료 관리 • 정의된 문서의 저작과 관리가 용이 • 좀더 질의 (Qyery)에 근접한 검색 결과 필요 • 멀티 미디어의 필요성 (SGML) • 전자상거래 분야 • 기업간의 데이터 교환이나 문서교환에 효율성
Web Application SGML (1986) XML (1998년2월) HTML (1992)
ML(=Meta Language) • 메타 언어란? • 일반적으로 사용될 언어를 정의할때사용하는 언어 • 메타언어 자체가 사용되는 것이 아니다 • 메타언어를 이용하여 사용자가 원하는 형식으로 정의한 언어들을 사용
원 고 출 판 ML의 발전 과정 <?> Markup? • 문서의 내용을 조직화, 구조화 시켜 내용을 정확히 이해 • 원래의 내용에 추가적인 정보를 표시하는 모든 것 마크업 언어의 기원 서 식 원고 교정 서식 지정
절차적 마크업 공통코딩 일반화마크업 ML의 발전 과정 -1 • 절차적 마크업이란? 워드 프로세싱에서 텍스트의 외형을 지정하고 텍스트의 위치를 지정하기 위해 사용 텍스트와 같이 특정 코드로 저장 • 절차적 마크업의 문제점 문서의 구조정보를 기록하지 않음(문서 외형을 위해 사용) 유연성이 없다.(이식성 결여) 처리가 늦고 오류발생이 잦다.
절차적 마크업 공통코딩 일반화마크업 ML의 발전 과정 -2 • 공통코딩이란? (Text 등) 외부 포맷팅 절차들을 프로시져 호출로 제어하는 매크로 기능 추가 (외형 변화를 위해 매크로만 수정) • 공통코딩 장점 문서의 이식성, 유연성을 많이 갖는다. 마크업은 구조를 기술하는데 친숙
절차적 마크업 공통코딩 일반화마크업 ML의 발전 과정 -3 • 일반화 마크업이란? (SGML, XML) 문서 외형이 아닌 문서의 구조를 기술하는 데이터 베이스 스키마와 유사한 모델 일반화 마크업의 예 <! DOCTYPE memo SYSTEM “memo.dtd”> <memo> <header> <from>Jeongwoon Kim <to>GEC <subject>Let’s get XML <body> <contents> Have you guys ever heard about ner technology, XML? It looks like promissing. It is simillar to HTML, but it is extensible. All the big names(MS, IBM, Oracle) are
ML의 발전 과정 -4 문서의 물리적정보, 논리적 구조정보 혼재 양식 내용 구조 웹 기반 문서 (HTML) -> CSS(물리적 논리적 정보 분리 시도) 설계된 문서 정보 생성(논리적, 물리적 정보 분리) 표준에 의한 문서처리 접근 문서의 논리적 구조(SGML, XML) 문서의 물리적 구조(DSSSL, XSL, CSS) 문서의 링크 구조(HyTime, Xlink, Xpointer) 내용 구조 Formatter 양식
ML의 발전 과정 -5 • 1960년, IBM에서 GML(Generalized Markup Language) 발표 • 1986년, ISO8879, SGML(Standard Generalized Markup Language) 공개 • 1990년대 초, HTML1.0(Hypertext Markup Language) 공개 • 1996년 W3G 워킹그룹에서 XML공개 • 1998년 2월, W3C, Rec. XML 1.0 발표 • 2000년 10월 XML 두번째 권고안 발표 SGML HTML XML
SGML 한계성 • 1980년대 등장. • Meta언어 – Markup Language를 만들기 위한 • SGML은 많은 선택적 특성과 복잡한 사용법 • Well-format과 관련된 어떤 정보도 지원하지 않는다 • Hyper-link기능 등 web에 관련된 기능을 전혀 고려안함 • 전용 Browser 필요
HTML 한계성 • 한정된 TAG • 중첩구조 지원못함 • 단순구조로 인한 전문검색 용이하지 못함 • 기존 스타일을 제외한 다른 형식을 지원 할 수 없다 • 단일 링크구조 • 수학적 공식, 특수문자에 대한 지원 부족 • HTML의 정보를 재사용하기 어렵다 • 순수 데이터 부분 추출 어렵다 • 순수 데이터 간의 의미 및 관계 불명확
XML을 사용한 한계 극복 • 문서의 요소와 속성, 개체를 선언할 수 있다. • CSS, XSL 등 스타일 시트를 사용 다양한 문서 형태 지원 • SGML 중 자주 사용되지 않는 복잡한 부분 축소 • XML은 HTML 보다는 SGML의 경량급이라고 볼 수 있다 • 기존 웹 환경의 데이터 시스템의 단점 해결. (비효율성, 불명확성, 공통 표준의 부재) • 일관성 있는 데이터 교환 방식필요
XML is Structured & Intergrated Data 마크업 언어의 상호계층 구조도 SGML XML mathML MusicML VoiceXML SMIL… HTML 1.0 HTML 4.0 Rosetta Net ebXML XML/EDI
HTML=>확장성 결여 SGML=>고비용 저효율 새로운 것에 대한 요구 이동성이 뛰어나고 기술습득, 확장 용이하며 개발, 유통비용 저렴하고 HTML, SGML과 호환되는 언어로의 요구 XML 탄생
준비물 • XML editer • notepad, EditPluse, UltraEdit … • XMLSpy(http://www.xmltoxml.com) • XML viewer • InternetExployer5.x • XML Parser • MSXML • JAXP • apache parser • IBM parser • …
XML 정의 • World Wide Web Consortium (W3C) 1996 • XML Spec 1.0 Recommended • Structure, Semantic of Document (Not a StyleSheet) • Meta Tag Language • 목적 : Infrastructure for e-Business 환경에서 표준문서 규약을 이용또는 정의하여 사용함으로써 Platform에 종속적이고 않은원활한 정보교환을 목표로 한다.
XML의 기본 구성 양식 DTD 내용 구조 XML 내용 구조 XSL Formatter 양식
XML과 관련된 표준 • XML(eXtensible Markup Language)- DTD 기술방법에 대한 표준- SGML 추가 (선택적 사용자정의 DTD, UNICODE) • XSL(eXtensible StyleSheet Language) - DSSL의 간소화- 포맷팅 객체로부터 생성되는 포맷팅 트리에 의해 생성 • XLL(XML Linking Language)- Xlink(HyTime)와 Xpointer(TEI)로 구성
문서 형 정의 • DTD(Document Type Definition)-태그의 종류, 순서, 발생횟수 등 문서 구조 정보 정의- 같은 구조로 문서를 작성하기 원할 때- SGML과는 달리 시작 태그와 종료태그를 생략할수 없음 • DTD가 필요한 예- 학회지에 실리는 논문 형식- 전자상거래시 기업간 주문서- 관공서에서 사용되는 공문 양식
presentation정의 • XSLT(eXtensible Stylesheet Language Transformation)- xml문서를 다른 문서로 변환하기 위한 기본 규칙 정의 • XSL-FO(XSL Formatting Object) - 문서를 원하는 형태로 출력 - 문서 전체의 Layout 정의 • CSS (Casscading StyleSheet) - html의 기본 스타일 - 페이지의 Layout 정의
문법에 맞는 문서 • Well-Formed Documemt- XML 문서에 쓰인 용서들은 시작태그와 종료태그가 존재 • XML parser의 종류- 검증용 파서(validating parser) : DTD가 있는 문서의 유효성 검증- 비검증용 파서(non-validating parser) : XML문서가 문법에 맞는지만 검사
유효한 문서 • 유효성 검증(validating) - XML문서가 DTD의 정의대로 올바로 작성되었는지 검사 • Valid Document - DTD가 있는 XML문서를 검증용 파서를 사용해 파싱하여 아무런 오류도 발생하지 않는 문서
XML 특성 • 읽기 쉽고, 배우기 쉽다. • HTML을 XML로 변환, SGML사용자가 쉽게 사용 가능 • TAG의 확정성 제공 : 문서 관리 • 문서 구조의 연속적인 중첩의 허용 : 자료의 구조화 • Multi-Point Connection : E-commerce • DTD와 Content의 분리/병합 : 유지/보수의 편리 및 확장성 • 다양한 XML Process 는 표준을 따르고 있고, 무료 • .
XML 응용분야 • XML의 응용 가능성 : 문서응용, 데이터 응용 -XML은 HTML 문서를 간단하게 생성 (문서의 관리) - 큰 웹사이트 관리 (웹사이트 아키텍처) - 조직간의 정보교환 (B2B) - 데이터베이스에 정보를 적재, 불러오기 - 다른 웹사이트들에서 사용가능하도록 정보를 배포용 컨텐츠 제작 - 전자상거래 응용프로그램 - 수학 및 화학 공식을 위한 마크업 제공 (MathML) - 저작권 및 소유권 표현의 마크업을 통한 e-Book 응용에 활용 - 최적화된 새로운 마크업 언어를 적용한 휴대장치
XML응용분야-1 • 문서 출판 • XML은 문서구조에 대하여 중심적, 매체에 대하여 독립적 • XML로 문서를 편집하고 유지하는 것이 가능하고, 다른 매체로 자동 변환 가능 Post script XML 문서 HTML WML
XML응용분야-2 • 데이터응용 • 데이터베이스와 같이 데이터 관리 < > < > < > < > < > < > < > < > . . . . < > < > < > < > < > < > < > < > . . . . <XML로 표현된 데이터베이스> <XML로 표현된 문서구조>
XML응용분야-3 • 데이터응용 • 조직사이의 데이터교환 : 웹서비스로의 응용 인터넷 기존 응용 프로그램 응용 프로그램 서버 기존 응용 프로그램 응용 프로그램 서버 클라이언트(브라우저)
XML 설계목표 • 인터넷 상에서 바로 사용가능해야 한다 • 다양한 응용을 지원해야 한다. • SGML과 호환이 있어야 한다. • XML문서를 처리하는 프로그램을 작성하기 쉬어야 한다. • XML에 있는 선택사항의 수는 최소한으로 유지해야 한다. • 문서는 사람이 읽을 수 있어야 하며, 명확해야 한다. • XML 설계는 빠르게 준비될 수 있어야 한다. • XML 설계는 형식에 맞고 간결해야 한다. • XML 문서는 만들기 쉬어야한다. • 태그 생략하는 간결성은 구조의 명확성을 해치지 않는 범위내에서 허용
A Rule of XML Document • XML선언으로 문서시작 • 데이터를 포함하는 엘리먼트는 시작/종료 태그를 갖고 있다. • 데이터를 포함하지 않고 하나의 태그만을 사용한는 엘리먼트는 />으로 끝난다. • 문서는 다른 모든 엘리먼트를 포함하는 하나의 엘리먼트만을 갖는다. • 엘리먼트는 다른 엘리먼트를 둘러 쌀 수는 있지만 중첩은 안된다. • <,& 문자는 시작태그에만 사용되고, 필요한 다른 경우에는 엔터티 레퍼런스를 사용한다.
Document 구성요소 Prolog - XML Declaration ex. <?xml version = “1.0” encoding=“enc-kr”?> <?xml:stylesheet type=“text/xsl” href = “aaa.xsl”> - Document Type Declaration ex. <!DOCTYPE 책방 SYSTEM “aaa.dtd”> Body - 한 개 이상의 엘리먼트로 구성됨 - 트리 구조를 갖는다. - 주석 Prolog Xml version, encoding Xml stylesheet Xml Doctype <root> BODY <root>
Markup Syntax Element 구조 <이름 lang = “KOR”> 전 혜 영 </이름> startTag Attribute Content endTag Element
ML(Markup Language)의 특징 • 유형적 ML –정보 공유 위해 (프리젠 테이션) HTML • 구조적 ML – Tree 구조 (사용자 구조 정의 가능 : SGML(필수), XML(선택)) • 의미적 ML – TAG name 임의 결정 (SGML, XML)
XML Declaration <?xml version =“1.0” encoding=“UTF-8” ?> xml 소문자로 표시 version 필수 속성으로 향후 버전 지원을 위해 사용. encoding 언어를 선택 ( UTF- 8 or euc-kr ) • DTD • External Subset References • <!DOCTYPE root_element SYSTEM “system_id”> • Internal Subset References • <!DOCTYPE root_element[ • … • ] >
Well-formed & Valid Documents • Well-formed • 문서가 하나 이상의 element들 포함하여야 함. • 전체 문서에 대한 유일한 root element가 있어야 함. • 모든 엘리먼트는 start-tag, end-tag 로 구성. • overlap 불가. • Valid • 반드시 DTD가 있어야 함 • DTD 에 정의된 엘리먼트의 구조 순서 등에 따라 엘리먼트를 사용해야한다.
Names • Letter, underscore(_), colon으로 시작되어야 함. - 시작시 첫 문자가 XML 이름 으로 시작하면 안 됨. • 대, 소문자 구분을 함. • 숫자로 시작하면 안됨. • 올바르지 못한 Names ex) XmlDate, XML_Type, -Book, 44Book • 바른 Names ex) Book, _Book, B123, _XML, _42book
Empty – Element • Content가 없는 경우에도 속성값은 갖는다. <제목></제목> <제목 /> <제목 lang=“eng”></제목> <제목 lang=“eng” />
Attributes • Attributes value는 XML paser에 의하여 웹 브라워저에 인식되어짐 • 여러 개의 attributes는 공백을 이용하여 각각의 attributes를 구분한다. <이름 사원번호=“123”사진=“전혜영사진.jpg”>전혜영</이름>
Comments • <!-- 주석 내용 --> 태그 안에는 올 수 없다. 주석 내용에 -- 나올 수 없다. ex) <태그>…….내용………</태그<!-- 주석 -->> <!-- 주석 -- 내용 -->
Entity Reference • XML에서 entity는 문서의 단위 • 한글자에서 문서 전체 참조
CDATA Section • 문서 내에서 파싱되지 않는 영역 • 문자열속에 엔티티 레퍼런스 문자를 쓸 수 있음 • <?xml version="1.0" encoding="euc-kr"?> • <예제> • 이 문서는 예제 파일입니다.i<4 • <![CDATA[ • <예제_1> • for(int i=0 : i<5: i++){…} • </예제_1> • ]]> • </예제>
Table of Contents • DTD ? • Elements • Attributes • CDATA, ID, IDREF, ENTITY, NOTATION • Processing Instruction • Parameter Entity Reference • Comment • Space • Conditional Section
DTD가 왜 필요한가? • 프로그램 관점에서 보면 구조화되어 있지 않은 XML은 다루기가 어렵움 • XML을 명시적으로 선언해줄 문서 타입 정의가 필요 • 문서를 공유하기 위해서는 문서 폼을 일치 시켜야 함 • 정보전달 차원에서 문서의 통일화—업무의 복잡성 제거, 업무처리 자동화 시스템 개발 시간단축 예) 논문, 보고서, 법령, 주문서 등
DTD의 역할 • 문서의 구조를 사용자가 정의 - DTD • 자신의 문서가 갖을 Formal Structure를 표현 • Valid Document • DTD가 선언된 문서에 대해서는 파서가 자동적으로 DTD에 기술된 문서구성 • 규칙에 따라 문서가 구성되어있는지를 체크함. • 문서를 처리할 응용 시스템으로 넘겨주기 전에 Valid여부를 체크함으로써 처리 효율을 향상 시킴 • Business Document의 추진 • 정형화, data type check등이 강화되어야 함 XML 문서의 규칙 강화 • DB에서 사용되어지는 data type까지 DTD에 정형화 하는 작업 추진
DTD와 XML Document • External Subset References <?xml version =“1.0” encoding =“UTF-8”> <!DOCTYPE aaa SYSTEM “c:\ddd.dtd”> • Internal Subset References <?xml version =“1.0” encoding =“UTF-8”> <!DOCTYPE aaa[ ] > <aaa> </aaa>