XML 개념
HTML의 장점 이식성 누구나 쉽게 배우고 사용할 수 있다. 싸다 (편집기, 뷰어등을 무료로 다운로드) 쉽고, 강력한 브라우저 인터페이스 실제로 동작하는 하이퍼텍스트
HTML의 문제점 태그가 한정되어 있다. HTML은 표현을 위한 기술이다. 데이터의 계층 구조를 표현할 수 없다.
SGML의 장점 이식성 안정된 ISO 표준 고정된 태그셋이 아닌 일련의 규칙 모듈화/재사용 기능이 내장 형식과 구조가 분리
SGML의 문제점 너무 복잡하고, 비용이 높다 브라우저 업체들이 SGML을 완전하게 지원하지 않을 것이 명백하다 소수 전문가들만이 이용하는 언어 요구사항 분석 비용이 너무 높다 SGML 사양: 500 페이지 이상 XML 사양 : 26 페이지
뭔가 새로운 것이 필요하다! 이식성 싸고,빠르고,쉽고 확장성 (표준화된 방법으로) HTML과의 호환성 SGML과의 호환성 문서의 생성, 처리, 정보의 표현 확장성 (표준화된 방법으로) 일련의 규칙, 고정되지 않은 태그 셋 HTML과의 호환성 현존하는 문서들과 쉽게 호환 SGML과의 호환성 SGML의 장점을 수용
XML은… The Extensible Markup Language W3C 기술 권장 이식성 있고, 단순하며 배우기 쉽다. 무료 마크업 메타-언어 선언적 언어를 만들어 내기 위해 사용하는 문법 W3C 기술 권장 W3C에서 표준을 소유하고 있다. 이식성 있고, 단순하며 배우기 쉽다. 도구를 작성하기 쉽다. 인터넷에서의 사용을 위해 최적화 무료
왜 XML이 좋은가… 단순하다 상호연동성, 유니버설 스키마가 존재. 개방된 스키마 표현 계층과 로직에서 데이터를 분리 스키마가 존재. 개방된 스키마 표현 계층과 로직에서 데이터를 분리 강력한 기능의 탐색과 필터를 위한 구조를 제공 애플리케이션을 구축하기 위한 강력한 기반
XML에 대한 MS의 계획 지식관리의 기반 기술 개발자들을 위한 중요한 도구 마이크로소프트 제품에 통합 지식은 조직화 되고, 접근 가능하며, 탐색 가능해야 한다. 개발자들을 위한 중요한 도구 간단한 커스텀 애플리케이션 기본적으로 제공되는 것을 쉽게 확장 마이크로소프트 제품에 통합 공통의 XML 스키마를 사용
XML 전송 모델 네트워크 서버 HTML/ DHTML 클라이언트 브라우저 ASP XSL 저장소 XML Parser XML
기본적인 XML의 형태 (1) 계층적, 내포(Nested) 관계 각 컨테이너 요소는 시작과 끝이 있어야 한다 : 문서는 오직 하나의 루트 요소를 가진다. 엄격한 문법을 통해 예측 가능한 파스 트리를 가능하게 한다. – 특정 태그를 이해할 필요가 없다. 각 컨테이너 요소는 시작과 끝이 있어야 한다 : <mycontainer> contents </mycontainer> 공백 요소는 독자적으로 종료할 수 있다 : <flag/>
기본적인 XML의 형태 (2) 문서 선언 XML 요소들은 속성을 가질 수 있다: <?xml version=“1.0”?> XML 요소들은 속성을 가질 수 있다: <count dt=“int” ref=“foo”> 14 </count>
XML의 예 <?xml version=“1.0”?> <propfind> <prop> <href>http://mysrv/exchange/lisal/msg1.eml </href> <subject>Re:Your Proposal</subject> <to>Lisa Lippert</to> <from>Sean Lyndersay</from> <cc/> </prop> </propfind>
XML DTD 문서 원형 정의(DTD,Document Type Definition)를 통해; 특정 태그들을 정의하여 서로간의 관계를 명시 속성에 대한 기본값을 정의 별도의 표기법을 이용하여 부수적인 문자열과 바이너리 등을 정의 시작(루트) 요소를 가리킨다 DTD는 데이터 생성을 제어하기 위해 사용
문서 원형 정의(DTD) <!DOCTYPE cdlib [ <!ELEMENT cdlib (cd+) <!ELEMENT cd (artist+, title+, format?, description?) > <!ELEMENT artist (#PCDATA) > <!ELEMENT title (#PCDATA) > <!ELEMENT format (#PCDATA) > <!ELEMENT description (#PCDATA) > ]>
XSL (확장 스타일 시트 언어)
XSL(Extensible Stylesheet Language) XSL은 XML 문서를 변환한다. HTML 페이지로 다른 XML 문서로 필터링, 정렬, 재 배열, 요소 이름 재정의 XSL은 HTML, CSS와 함께 사용 HTML: 정적, 데이터와 보기가 혼합 CSS: 데이터의 구조를 변경할 수 없다.
XSL의 장점 적은 사이즈, 유연성 하나의 데이터 형식에서 여러가지의 보기를 생성 다양한 웹 페이지를 생성 흥미있는 데이터를 추출 다중 XML 소스로 부터 데이터에 대한 정렬, 필터 데이터의 형식화
XSL 형식 XSL은 XML 스키마 특별한 요소들을 이용하여 변환을 제어 더 자세한 내용은 <xsl:for-each select=> 루프 <xsl:value-of select=> 데이터연결 <xsl:template> 템플릿 적용 더 자세한 내용은 http://msdn.microsoft.com/xml/
XSL의 사용 1 <?xml version="1.0"?> <html xmlns:xsl="http://www.w3.org/TR/WD-xsl" > <head></head><body><h1>Contacts</h1> <table> <xsl:for-each select="contacts/contact"> … </xsl:for-each> </table></body></html>
XSL의 사용 2 <xsl:for-each select="contacts/contact"> <tr><td> <div style="background-color:#ffffb0;border-color:#00d0d0;border-style:groove"> <h3><xsl:value-of select="name" /></h3> <h4><xsl:value-of select="phone" /></h4> <h4><xsl:value-of select="addr" /></h4> </div> </td></tr> </xsl:for-each>