340 likes | 539 Views
XML 프로그래밍. Introducing XML. Index. Extensible 의 의미 HTML vs. XML Markup Language SGML 에서 XML 까지 XML 의 장점. What is XML?. XML 개요. XML(eXtensible Markup Language) 웹상에서 구조화된 문서를 전송하도록 설계된 마크업 언어 HTML 한계와 SGML 의 복잡함을 해결하기 위한 방안으로 제시
E N D
XML 프로그래밍
Index • Extensible의 의미 • HTML vs. XML • Markup Language • SGML에서 XML까지 • XML의 장점
What is XML? XML 개요 • XML(eXtensible Markup Language) • 웹상에서 구조화된 문서를 전송하도록 설계된 마크업 언어 • HTML 한계와 SGML의 복잡함을 해결하기 위한 방안으로 제시 • 1996년 W3C(World Wide Wed Consortium)에서 제안 • 1998년 2월 W3C에 의해 XML1.0에 대한 표준규약 제정 “XML은 SGML의 80%의 장점과 20%의 복잡성을 가지고 있다”
Extensible의 의미 XML 개요 • XML(eXtensible Markup Language) • 확장이 가능한 마크업 언어 • Extensible ???
Markup Language XML 개요 • 마크업(Markup)이란 본문, 즉 원래의 내용에 뭔가 특별한, 또는 추가적인 정보를 표시하는 모든 것을 말한다. • 마크업을 다른 사람에게 전달하려면 구성요소와 의미정보를 규정해야 한다. • 마크업 언어란 위와 같은 것들을 규정하는 규칙들의 집합이다 • 1) 양식적 마크업 (또는 유형적 마크업, Stylistic Markup) • 문서가 시각적으로(또는 외형적으로) 나타나는 방법에 관련된 것이다. • 2) 구조적 마크업 (Structual Markup) • 문서의 구성방식을 표현한 것이다. 예) <P>, <DIV> • 3) 의미적 마크업 (Semantic Markup) • 데이터의 내용 자체에 관한 마크업이다. 예) <TITLE>
HTML vs. XML XML 개요 HTML Example XML Example <HTML> <HEAD> <meta http-equiv=“content-type” content=“text/html;characterset=euc-kr” <TITLE>catalog</TITLE> <LINK href=“catalog.css” rel=“stylesheet” type=“text/css”> </HEAD> <BODY> <TABLE> <TR> <TD>product:</TD> <TD>냉장고</TD> </TR> <TR> <TD>price:</TD> <TD>1,000,000</TD> </TR> </TABLE> </BODY> </HTML> <?xml version=“1.0” encoding=“EUC-KT”?> <?xml:stylesheet type=“text/xsl” href=“cltalog.xsl”?> <!DOCTYPE catalog SYSTEM “catalog.dtd”> <catalog> <product_info> <product>냉장고</product> <price>1,000,000</price> </product_info> </catalog> “HTML: 보여주는 것에 초점, XML: 정보 자체에 중점”
DOC Vender C 사용 비구조화된 문서화일 문서생성 Vender B Vender C 데이터베이스 Vender A 구조편집기 Vender B 종이 Vender A CD-ROM 기존문서 XML 개요 • 특징 • 종이에 기반 • 저자의 기본 스타일에 따라 생성 • 정보가 단일 표현을 위해 구성 • 기존 문서 처리
Markup Language XML 개요
SGML 에서 XML 까지 XML 개요 SGML HTML XML
SGML 에서 XML 까지 XML 개요
XML의 장점 XML 개요 • HTML로는 표현할 수 없었던 문서의 구조를 임의의 DTD를 선언하고 Tag를 정의하므로써 문서을 표현할 수 있다. • 인터넷에서 곧바로 사용 가능하다. • SGML보다 구현이 쉽다. • 내용과 Presentation이 분리되어 있다. • 기계뿐만 아니라 사람도 이해할 수 있는 언어이다. • 문서의 내용에 접근이 가능하다. • XML 태그들은 검색을 효율적으로 할 수 있게 해준다. • 재활용이 가능하다. • 회사간 전자 문서의 교환이 쉬워진다. “이질적인 시스템이 존재하고 표준화가 요구되는 분야”
XML Structure XML 개요
XML Structure Hierarchy XML 개요 • An XML document is hierarchical • It can be (and usually is) parsed into a tree of nodes root element mydoc header body chapter chapter XML의 소개 및 활용분야 1. XML의 개요 … 2. XML의 구성 …
W3C XML 개요 • W3C(World Wide Web Consortium) • W3C는 1994년 WWW의 발전을 위해 구성된 전세계적 산업 컨소시움으로 HTML, CSS, XML 등의 WWW에 관련된 표준화 작업과 WWW 개발자/사용자를 위한 정보공유 및 신기술에 대한 다양한 프로토타입을 개발 • W3C의 표준화 단계 • Notes- W3C에서 표준으로 검토되기 위해 여러 업체에서 제안하는 단계 • Working Drafts- W3C에서 표준을 검토중인 단계로 스펙자체가 계속 추가되거나 변경이 발생 • Proposed Recommendations- W3C에서 표준으로 승인이 나기 전 검토중인 단계로 거의 표준화 되었다고 할 수 있다. • 4. Recommendations- W3C에서 표준으로 승인이 된 단계
적용방안(1) - 적용방안 • 문서교환 측면 • 분산된 이기종간의 데이터 교환 • 시스템과 벤더에 무관한 일관성 유지 • 정보의 호환성을 보장 • B2B HUB,e-marketPlace간의 Integration지원(XSLT) • 공통된 Schema 정의, 데이터 검증 • 기업간 전자상거래
적용방안(2) - 적용방안 • 데이터 통합 / 어플리케이션 통합 • 특정 벤더(H/W,S/W)에 종속적이지 않는 구조적 데이터 • 플랫폼이나 응용프로그램의 변동에 관계없이 재사용 가능 • 전자상거래, EDMS,KM,Legacy 시스템과의 연계가 필요한 시스템 이제까지 생성된 많은 정보가 H/W 수명보다 오래 지속되고 있는가? : 조직의 플랫폼, 응용프로그램의 변경에 따라 재사용이 어려웠다. 새로운 시스템과 Legacy 시스템간의 연계가 자유로운가? : 통합을 위하여 많은 시간과 값비싼 비용을 소비한다.
적용방안(3) - 적용방안 • 가독성(Readability) • 컴퓨터와 사람이 이해하는 언어 • 세계화(Globalization) 추세를 배경으로 한 기업 경쟁력 향상 • 메타데이타에 의한 구조화된 데이터 • 표준화된 XML Schema 공유 • 실질적인 검색/비교 기능 지원 • 전자상거래(e-Catalog, 검색엔진) <?XML Version=“1.0”?> <!doctype 제품 system “goods.dtd”> <상품> <분류코드>HS13579</분류코드> <품명>칩</품명> <용도>컴퓨터메모리</용도> <크기 단위=“mm”>0.3</크기> <무게 단위=“g”>0.007</단위> <제조>인텔</제조> <가격 유통단계=“도매가”>55,000</가격> </상품>
적용방안(4) - 적용방안 • 데이터 공유 / 보존 • 정형,비정형 문서의 통합관리(구조적 Data관리) • 시스템과 벤더에 독립적(W3C 표준안) • 커뮤니케이션의 표준화가 용이(XML Schema) • Meta Tag에 의한 검색(Data of Data) • 실질적인 검색/비교 기능 지원 • 문서의 위치를 지정해서 Viewing • EDMS, KM, 시스템 통합 많은 사람들이 XML에 열광하는 이유는 그것이 단지 새롭기 때문이 아니라 지난 것들을 새롭게 해 미래에 대비할 수 있게 해주기 때문이다.
적용방안(5) - 적용방안 • Data와 UI의 분리 • 데이터의 통합과 Presentation의 분리 • XML / XSL / XSLT • e-Business, EDMS XSL 영업 XML XQL,DOM XSLT XSL 관리 생산 XSL Schema (DTD)
Index well-formed xml • Document Definition • Element • Attribute • CDATA (Character DATA) • PI (Processing Instruction) • Comment
Prolog XML Declaration DocType Declaration <root> BODY </root> Document Definition well-formed xml • document ::= prolog element Misc* • XML 선언부(Declaration) • <?xml version="1.0" encoding="euc-kr" ?> • DTD 선언부 • <!DOCTYPE text SYSTEM "text.dtd"> • 본문(Body) • 한개 이상의 엘리먼트로 구성됨. • 트리구조를 갖는다. • <root>내용</root> • Misc • PI(Processing Instruction), 여백, 주석문 XML 문서 = XML 선언부 + 문서 타입 선언부 + 본문
Element well-formed xml • 요소 • 각각의 XML 문서는 하나 또는 그 이상의 요소들을 담고 있다. • 시작태그, 마침태그, 그사이의 내용(content) 으로 구성되어 진다. • 시작태그 문법: <태그이름 속성이름="값"속성이름="값"> • <A href="http://www.w3.org"> • 마침 태그 문법 : </태그 이름> • </A> • 비어있는 요소 태그(empty elements) • <img src="a.jpg"/>
Element well-formed xml • 태그 naming 규칙 • '문자', '_', ':' , '.' , '-' • XML 또는 xml 로 시작하는 이름은 사용할 수 없다. • '/'는 사용할 수 없다. • '문자', '_', ':' 로 시작할 수 있다. • 숫자는 처음에 올 수 없다. • 대소문자를 구분한다. • element는 적합하게 중첩될 수 있다.
Attribute well-formed xml • 엘리먼트가 특성을 포함할 때 속성이라 한다. • 속성은 엘리먼트의 특성을 표현하기 위해서 쓰여지는 정보를 의미한다 • Case-sensitive • Quote attribute values • DTD 안에 엘리먼트를 생성할 때, 속성과 속성값에 대해서도 정의해 주어야 한다. • 속성의 순서는 상관이 없다. • <table width="50" border="1" align="center">
Element vs. Attribute well-formed xml • 데이터 자체는 엘리먼트에 저장되어야 한다. • 데이터에 관한 정보(메타데이터)는 속성에 저장되어야 한다. • 확실한 판단이 서지 않을 때는, 엘리먼트에 정보를 저장하도록 한다. • 엘리먼트는 나중의 변화를 생각할 때 더 확장성이 있다.
CDATA 섹션 well-formed xml • CDATA : Character Data • 모든 텍스트는 문자 데이타가 된다. • CDATA 섹션은 모든 텍스트가 마크업이 아니라 문자 데이터로 해석되기 원할 때 사용된다. • 엘리먼트의 내용에만 나타날 수 있다. • CDATA섹션은 "<![CDATA["로 시작해서 "]]>"로 끝난다. • CDATA 섹션 안에서는 ']]>' 문자만이 마크업으로 인식되며 왼쪽 꺾쇠('<')나 앰퍼샌드('&')도 문서의 내용에 포함될 수 있다. • CDATA 섹션은 중첩할 수 없다. • <![CDATA[<greeting>Hello,world!</greeting>]]> “CDATA 는 파싱되지 않는 문자 데이타이다.”
PI (Processing Instructions) well-formed xml • 처리 명령어 • 외부 어플리케이션을 사용하기 위한 명령어 • 즉, 특정 어플리케이션에 처리 지시를 내리기 위해 사용한다. • PI는 명령어가 전달되어야 할 어플리케이션을 인식하기 위해 사용되는 타겟(PITarget)으로 시작한다. • <?processor specific_instruction = "value of instruction"?>
Comment well-formed xml • 문법 : <!-- 문자열--> • 마크업 표식이외의 어느 곳에서도 나타날 수 있다. • 주석을 사용할 때 따라야만 하는 규칙들 • 주석은 XML 선언 이전에는 올 수 없다. XML 선언은 문서의 최초에 있어야만 하기 때문이다. • 주석은 태그 사이에 있을 수 없다. • 주석은 태그를 둘러싸거나 숨길 수 있다. • 두 개의 하이픈 문자열 (--)은 시작 태그나 마침 태그의 일부일 때를 제외하고서는 주석 안에서 사용될 수 없다. • <!--declarationsfor<head>&<body>-->
DTD (Document Type Definition)
Well-Formed vs. Valid Document XML Documents • Well-formed Document • 하나 이상의 element가 존재 • Unique한 root element가 존재 • 모든 시작 Tag는 반드시 하나의 끝 Tag를 가져야 한다 • Tag들은 중첩되지 않아야 한다 • Valid Document • 반드시 DTD 또는 schema를 포함해야 한다 • DTD에 정의된 구조를 따라 문서가 작성되어야 한다
프로그램 소개 DTD memo.xml <?xml version="1.0" encoding=“euc-kr"?> <!DOCTYPE memo [ <!ELEMENT memo (body) > <!ELEMENT body (p+) > <!ELEMENT p (#PCDATA) > ]> <memo> <body> <p> 컴퓨터 시스템 구축을 위한 회의가 내일 오후 2시부터 시작될 예정으로 있으니 꼭 참석하여 주시기 바랍니다. </p> <p> 회의 참석 여부를 오늘 중으로 제게 알려 주시기 바랍니다. </p> </body> </memo>