01 XML에 대하여 1.1 전자 문서의 개요 ... 12 1.2 마크업(Markup)이란? ... 16 1.2.1 전통적인 마크업 ... 16 1.2.2 전자적 마크업(electronic markup) ... 17 1.2.3 절차적 마크업(procedural markup) ... 18 1.2.4 서술적 마크업(descriptive markup)과 범용 마크업(generalized markup) ... 19 1.3 XML 개요 ... 22 1.3.1 발생 배경 ... 22 1.3.2 기존 표준과의 비교 ... 23 1.3.3 XML의 기술적 요소 ... 27 1.3.4 XML 관련 표준 ... 29 1.3.5 XML의 응용 분야 ... 31 1.3.6 XML과 e-Business ... 34 02 XML문서 작성 및 검증 프로젝트 2.1 XML 문서의 종류 ... 40 2.1.1 Well-Formed XML 문서 ... 40 2.1.2 유효한 문서(Valid Document) ... 40 2.2 XML 문서의 구조 ... 41 2.3 XML 문서의 구성요소 ... 43 2.3.1 XML 선언 ... 43 2.3.2 엘리먼트(ELEMENT) ... 54 2.3.3 PCDATA ... 64 2.3.4 속성 ... 66 2.3.5 공백 엘리먼트 ... 68 2.3.6 주석 ... 69 2.3.7 처리 지시자(PI) ... 69 2.3.8 CDATA 섹션 ... 70 2.4 파서 설치 및 검증 예제 ... 73 03 여러 가지 마크업 언어로 작성된 XML 문서 이해하기 3.1 마크업 언어(Markup Language) ... 84 3.1.1 마크업 언어의 문제점과 대처 방법 ... 84 3.2 XML 어플리케이션의 종류 ... 85 3.3 Mathematical Markup Language (MathML) ... 87 3.3.1 MathML Element - (프리젠테이션 마크업) ... 92 3.4 WML(Wireless Markup Language) ... 104 3.4.1 WML 문서의 구조 ... 107 3.4.2 Nokia 모바일 브라우저 시뮬레이터 4.0 ... 107 3.4.3 WML에서 사용하는 엘리먼트들 ... 111 04 XSLT를 이용한 문서 변환 프로젝트 4.1 XSL, XSLT의 개념 ... 130 4.1.1 XSLT의 주요 용어 ... 131 4.2 XPath 이해하기 ... 131 4.2.1 문서 루트(document root) ... 133 4.2.2 XPath의 문법 ... 133 4.2.3 위치 경로(location path) ... 134 4.2.4 XPath 함수 ... 137 4.3 XSLT의 기본 엘리먼트 ... 139 4.3.1 XML문서와 XSLT의 결합 방법 ... 139 4.3.2 xsl:stylesheet 엘리먼트 ... 139 4.3.3 xsl:template 엘리먼트 ... 140 4.3.4 템플리트 규칙(template rules) ... 140 4.3.5 지명 템플리트(named template) ... 141 4.3.6 템플리트 우선 순위 ... 141 4.3.7 기본 템플리트(default template) ... 142 4.3.8 xsl:apply-templates 엘리먼트 ... 143 4.3.9 mode 속성 ... 143 4.3.10 xsl:value-of 엘리먼트 ... 144 4.4 XSLT의 출력 엘리먼트 ... 144 4.4.1 xsl:output 엘리먼트 ... 144 4.4.2 xsl:element 엘리먼트 ... 145 4.4.3 xsl:attribute 엘리먼트 ... 147 4.4.4 xsl:attribute-set 엘리먼트 ... 148 4.4.5 xsl:text 엘리먼트 ... 148 4.4.6 xsl:pi 엘리먼트 ... 149 4.4.7 xsl:comment 엘리먼트 ... 149 4.5 XSLT의 고급 엘리먼트 ... 150 4.5.1 xsl:if 엘리먼트 ... 150 4.5.2 xsl:choose 엘리먼트 ... 151 4.5.3 xsl:for-each 엘리먼트 ... 152 4.5.4 xsl:copy-of 엘리먼트 ... 153 4.5.5 xsl:copy 엘리먼트 ... 153 4.5.6 xsl:sort 엘리먼트 ... 154 4.5.7 xsl:variable 엘리먼트 ... 154 4.5.8 xsl:param 엘리먼트 ... 155 4.5.9 xsl:strip-space 엘리먼트 ... 156 4.5.10 xsl:preserve-space 엘리먼트 ... 156 4.6 복수의 문서를 이용하여 XSLT 작성하기 ... 156 4.6.1 xsl:import 엘리먼트 ... 156 4.6.2 xsl:include 엘리먼트 ... 157 4.7 XSLT 문서 생성 예제 ... 157 4.7.1 구매요구서 작성 예제 ... 157 4.7.2 이력서 작성 예제 ... 162 05 문서 타입 정의를 사용한 유효한 XML 문서 만들기 프로젝트 5.1 DTD의 이해 ... 166 5.1.1 DTD의 사용 여부 ... 166 5.2 DTD 만들기 ... 168 5.2.1 일반 DTD와 시스템 DTD ... 172 5.2.2 외부와 내부, 일반과 시스템 DTD의 조합 ... 173 5.2.3 외부 DTD와 내부 DTD ... 174 5.2.4 DTD의 기본 예약어 ... 175 5.3 엘리먼트 정의하기 ... 176 5.3.1 순서 규칙(Sequence Rule) ... 178 5.3.2 선택 규칙(Choice Rule) ... 179 5.3.3 수량 제어 ... 180 5.3.4 텍스트 ... 181 5.3.5 모델 그룹 모호성 ... 182 5.4 속성 정의하기 ... 183 5.4.1 속성 이름과 값 타입 ... 184 5.4.2 기본 속성 값들 ... 187 5.4.3 예약된 속성 ... 189 5.4.4 다중 선언들 ... 189 5.5 엔티티 선언하기 ... 190 5.5.1 일반 엔티티 선언 ... 190 5.5.2 매개변수 엔티티 선언 ... 191 5.5.3 문자 엔티티 ... 193 5.5.4 내부 엔티티 및 외부 엔티티 ... 193 5.6 조건부 섹션 정의하기 ... 195 5.7 표기법 선언하기 ... 197 5.8 처리 명령어 정의하기 ... 198 5.9 DTD 문서 생성 예제 ... 199 5.9.1 DTD 설계 ... 199 5.9.2 DTD 생성시 참고사항 ... 200 5.9.3 DTD 작성시 유의사항 ... 201 5.9.4 DTD 작성 ... 201 5.9.5 DTD 디버깅 ... 204 06 XML 스키마를 사용하여 유효한 XML 문서 만들기 프로젝트 6.1 XML 스키마의 소개 ... 212 6.1.1 XML 스키마의 장점 ... 212 6.1.2 DTD와 XML스키마의 비교 ... 213 6.2 XML 스키마의 기초 ... 215 6.2.1 XML 문서와 XML 스키마의 결합 ... 216 6.2.2 XML 스키마의 루트 엘리먼트(schema) ... 217 6.2.3 엘리먼트 선언(element) ... 218 6.2.4 속성 선언(attribute) ... 230 6.2.5 내용 모델 ... 236 6.2.6 전역 그룹 참조 선언 ... 240 6.3 XML 스키마 데이터형 ... 241 6.3.1 내장형(built-in type) ... 242 6.3.2 파생형 ... 243 6.3.3 사용자 정의 데이터형 ... 245 6.4 XML 스키마의 고급 활용 ... 245 6.4.1 다른 형식으로부터 상속받는 방법 ... 246 6.4.2 복수의 문서를 이용하여 XML 스키마 작성법 ... 251 6.4.3 노테이션(notation) 선언 ... 253 6.5 XML 스키마의 문서화 ... 254 6.5.1 주해(annotation) ... 254 6.5.2 주석(comment) ... 256 6.6 XML 스키마 문서 생성 예제 ... 256 07 이벤트 구동방식 프로그래밍 프로젝트 7.1 XML 프로세서와 API ... 262 7.2 SAX(Simple API for XML)의 개요 ... 264 7.2.1 SAX 소개 ... 264 7.2.2 SAX 파서 ... 265 7.2.3 SAX의 필요성 ... 266 7.3 SAX 인터페이스 ... 267 7.3.1 환경 설정 ... 268 7.3.2 SAX 파서에 의한 XML문서 처리 ... 276 7.3.3 SAX 2.0 API ... 282 7.3.4 이벤트 핸들러 ... 288 7.3.5 ErrorHandler ... 299 7.4 SAX 실습 예제 ... 303 7.4.1 특정 데이터 검색 예제 ... 304 7.4.2 XML 문서 수정 예제 ... 308 08 문서 오브젝트 모델 프로그래밍 프로젝트 8.1 DOM 개요 ... 316 8.2 W3C DOM ... 318 8.2.1 document 오브젝트 ... 322 8.2.2 node 오브젝트 ... 350 8.2.3 nodeList 오브젝트 ... 357 8.2.4 parseError 오브젝트 ... 359 8.3 XML 문서 적재하기 프로젝트 ... 364 8.4 XML 문서 분석 프로젝트 ... 370 09 XML 데이터베이스의 데이터 관리와 프로그래밍 프로젝트 9.1 데이터베이스 소개 ... 380 9.2 SQL의 이해 ... 382 9.2.1 삽입(INSERT) 구문 ... 382 9.2.2 선택(SELECT) 구문 ... 384 9.2.3 수정(UPDATE) 구문 ... 387 9.2.4 삭제(DELETE) 구문 ... 388 9.3 XML파일로 데이터 관리 ... 389 9.4 Access 파일에서 데이터 관리 ... 389 9.4.1 데이터베이스 만들기 ... 390 9.4.2 테이블 만들기 ... 391 9.4.3 테이블에 데이터 삽입하기 ... 393 9.4.4 테이블에서 데이터 삭제하기 ... 393 9.5 XML 파일을 Access 파일로 변환하기 ... 394 9.6 MS-SQL 서버 2000에서 데이터 관리 ... 406 9.6.1 데이터베이스 만들기 ... 407 9.6.2 테이블 만들기 ... 409 9.6.3 데이터 삽입하기 ... 412 9.7 MS-SQL 서버 2000과 XML의 상호 연동 ... 415 9.7.1 FOR XML절을 이용하여 XML 작성 ... 416 9.7.2 OPENXML 구문을 이용하여 XML를 SQL 서버 2000에 저장 ... 425 10 XML상의 링크 만들기 프로젝트 10.1 XLink와 XPointer의 개념 ... 434 10.1.1 XLink ... 435 10.1.2 XPointer ... 435 10.2 XLink Link 기술하기 ... 437 10.2.1 예약어 xml:link속성 ... 437 10.2.2 Link의 타입 ... 437 10.2.3 단순 링크 ... 438 10.2.4 확장 링크 ... 441 10.2.5 링크 작성 간략히 하기 ... 442 10.3 XPointer 생성과 사용하기 ... 444 10.3.1 문서 프래그먼트 ... 444 10.3.2 XPointer Locator 생성하기 ... 447 10.4 링크 만들기 예제 ... 458 11 그래픽으로 XML 표현하기 프로젝트 11.1 XML 그래픽 개요 ... 464 11.2 XML 기반 그래픽과 애니메이션 ... 465 11.3 SVG의 개요 ... 466 11.4 SVG 기초 ... 467 11.5 SVG 구성 엘리먼트 ... 470 11.5.1 SVG 구성 엘리먼트(Element) ... 470 11.6 기본 도형 그리기 ... 471 11.6.1 사각형 그리기 ... 471 11.6.2 모서리가 둥근 사각형 ... 473 11.6.3 원 그리기 ... 474 11.6.4 타원 그리기 ... 475 11.6.5 선 그리기 ... 476 11.6.6 연결선 그리기 ... 477 11.6.7 다각형 그리기 ... 479 11.6.8 문자(Text) ... 480 11.6.9 Font 선택 속성 ... 484 11.6.10 패스 설정하기 ... 485 11.6.11 SVG 이벤트 ... 487 11.6.12 애니메이션 ... 493 11.7 SVG 뷰어 ... 497 11.8 애니메이션을 이용한 SVG 프로젝트 예제 ... 498 12 .NET 프레임워크에서의 XML 프로젝트 12.1 .NET 프레임워크 소개 ... 504 12.1.1 언어와 코드 위치에 상관없는 객체 지향 프로그래밍 환경 ... 504 12.1.2 프로그래밍 환경의 개선 ... 504 12.1.3 표준 방식을 통해 .NET 프레임워크에서 실행되는 코드와 다른 실행 코드의 연동 ... 505 12.1.4 .NET 프레임워크에서의 XML ... 506 12.2 XMLReader 클래스로 XML 문서 읽기 ... 507 12.3 XML 구조 정의와 유효성 검사 ... 515 12.4 XMLWriter 클래스로 XML 문서 쓰기 ... 525 12.5 XML 문서 개체 모델(DOM)의 사용 ... 533 12.6 XML 문서 변환 ... 540 12.6.1 XML 문서를 읽는 클래스 ... 541 12.6.2 XSL 문서 읽기 ... 543 12.6.3 XML 문서를 생성하는 클래스 ... 545 부록(www.ehan.co.kr에서 PDF 파일로 제공합니다) 01 XML의 활용 02 SOAP과 웹 서비스 03 XSLT 스타일시트를 사용해서 XML 문서 표시하기