목차 일부
Part 1 : XML 기초 편
제1장 XML 소개 ... 25
1.1 XML 소개 ... 27
1] XML의 어원적 뜻 ... 27
2] 마크업 언어 ... 27
3] 확장 가능한의 의미 ... 28
4] XML은 메타언어 ... 30
5] SGML과 XML 비교 .....
더보기
목차 전체
Part 1 : XML 기초 편
제1장 XML 소개 ... 25
1.1 XML 소개 ... 27
1] XML의 어원적 뜻 ... 27
2] 마크업 언어 ... 27
3] 확장 가능한의 의미 ... 28
4] XML은 메타언어 ... 30
5] SGML과 XML 비교 ... 31
6] W3C에서 하는 일 ... 32
7] W3C의 XML 권고안(Recommendation) ... 33
1.2 XML 문서 사용 용도 ... 34
1] 데이터 전달용 문서 ... 34
2] XML 문서의 적용 분야 ... 38
3] HTML에 대한 잘못된 오해 ... 41
제2장 XML 학습 준비하기 ... 43
2.1 XML을 사용하기 위해 준비해야 할 것들 ... 45
2.2 XML 브라우저 ... 46
1] XML 브라우저란? ... 46
2] XML 브라우저 설치 ... 47
2.3 Visual Studio 2005 ... 51
1] Visual Studio 2005 XML 에디터 ... 51
2] Visual Studio 2005 설치 ... 53
2.4 소스 코드 다운로드 및 설치 ... 61
제3장 XML 문서 작성 방법 ... 65
3.1 XML 문서의 종류 ... 67
1] 잘 짜인 문서 (Well - Formed XML Document) ... 67
2] 유효한 문서 (Valid Document) ... 67
3.2 EBNF 표기법 ... 68
1] EBNF 문법 형태 ... 68
2] 패턴 결합 ... 69
3.3 XML 문서 구조 ... 71
1] XML 문서 구조 ... 71
2] XML 문서 작성 맛보기 ... 73
3.4 XML 선언 ... 77
1] XML 선언의 문법 ... 77
2] XML 선언에서 사용되는 속성들 ... 79
3.5 인코딩 및 유니코드 ... 83
1] 인코딩 ... 83
2] KS C 5601과 EUC-KR 인코딩 ... 85
3] 유니코드(Unicode) ... 86
4] XML 문서 인코딩 ... 88
3.6 엘리먼트 ... 91
1] 엘리먼트 작성 문법 ... 91
2] 엘리먼트의 종류 ... 92
3] 엘리먼트 작성시 주의할 점 ... 93
3.7 엘리먼트 내용 ... 95
1] 엘리먼트 내용으로 올 수 있는 것들 ... 95
2] 문자 데이터 ... 95
3] 자식 엘리먼트 ... 98
4] 엔티티 참조 ... 98
5] 문자 참조 ... 98
6] CDATA 섹션 ... 100
7] 프로세싱 지시자 ... 102
8] 공백 문자열 ... 102
3.8 속성 ... 104
1] 속성 작성 문법 ... 104
2] 속성명을 정하는 방법 ... 104
3.9 주석 ... 105
3.10 프로세싱 지시자 ... 106
제4장 DTD를 이용한 마크업 언어 개발 ... 107
4.1 마크업 언어 개발의 의미 ... 109
4.2 유효한 문서의 개념 ... 111
4.3 DTD의 물리적 구조 ... 113
4.4 내부 DTD 서브셋 ... 114
1] 내부 DTD 서브셋 작성 위치 ... 114
2] 내부 DTD 서브셋 구성 요소 ... 114
4.5 외부 DTD 서브셋 ... 116
1] 외부 DTD 서브셋 작성 위치 ... 116
2] 외부 DTD 서브셋 구성 요소 ... 116
3] 외부 DTD 서브셋 작성 맛보기 ... 117
4.6 문서 유형 선언하기 ... 120
1] 문서 유형 선언이란? ... 120
2] 외부 DTD 서브셋에 대한 문서 유형 선언 ... 120
3] 내부 DTD 서브셋에 대한 문서 유형 선언 ... 125
4.7 DTD 유효성 검사 ... 127
1] 유효성 검사의 필요성 ... 127
2] XML 문서 작성 시의 유효성 검사 ... 128
3] XML 문서 처리 시의 유효성 검사 ... 128
4.8 텍스트 선언 ... 129
4.9 주석 ... 131
4.10 엘리먼트 선언 ... 132
1] 엘리먼트 선언 문법 ... 132
2] 엘리먼트의 종류 ... 133
3] 콘텐트로 문자 데이터만 갖는 엘리먼트 선언 ... 134
4] 콘텐트로 자식 엘리먼트를 갖는 엘리먼트 선언 ... 135
5] 자식 엘리먼트 리스트 표현 방법 ... 137
6] 콘텐트를 갖지 않는 빈(Empty) 엘리먼트 선언 ... 144
7] 혼합 형태의 콘텐트를 갖는 엘리먼트 선언 ... 146
8] ANY 유형의 콘텐트를 가지는 엘리먼트 선언 ... 148
4.11 속성 선언 ... 150
1] 속성 선언 문법 ... 150
2] 디폴트 선언의 종류 ... 152
3] IMPLIED 디폴트 선언 ... 152
4] REQUIRED 디폴트 선언 ... 153
5] FIXED 디폴트 선언 ... 155
6] 디폴트값이 있는 디폴트 선언 ... 157
7] 속성 유형의 종류 ... 159
8] CDATA 속성 유형 ... 159
9] ENUMERATION 속성 유형 ... 161
10] ID 속성 유형 ... 163
11] IDREF / IDREFS 속성 유형 ... 164
12] NMTOKEN / NMTOKENS 속성 유형 ... 167
13] NOTATION 속성 유형 ... 168
14] ENTITY / ENTITIES 속성 유형 ... 168
4.12 엔티티 선언 ... 169
1] 엔티티 개념 ... 169
2] 엔티티 용도 ... 170
3] 엔티티 분류 ... 171
4] 빌트인(Built - in) 엔티티 ... 172
5] 내부 일반 파스드 엔티티 ... 173
6] 외부 일반 파스드 엔티티 ... 176
7] 외부 일반 언파스드 엔티티 ... 179
8] 내부 파라미터 엔티티 ... 179
9] 외부 파라미터 엔티티 ... 182
4.13 노테이션 선언 ... 185
1] 노테이션이란? ... 185
2] 노테이션 선언 문법 ... 185
3] NOTATION 속성 유형의 값으로 사용 ... 185
4] 외부 일반 언파스드 엔티티의 포맷을 지정할 경우 사용 ... 187
4.14 컨디셔널 섹션 ... 191
1] 컨디셔널 섹션이란? ... 191
2] 컨디셔널 섹션 정의 문법 ... 191
3] 컨디셔널 섹션 사용 예제 ... 193
4.15 BML (Book Markup Language) 개발 예제 ... 196
1] 마크업 언어 개발 절차 ... 196
2] BML 개발 목적 ... 196
3] BML의 구조 설정 ... 196
4] BML의 DTD 작성하기 ... 198
5] XML 문서 작성 ... 199
제5장 XML 네임스페이스 ... 201
5.1 여러 가지 마크업 언어로 작성된 XML 문서 ... 203
5.2 엘리먼트 이름 충돌 ... 206
5.3 네임스페이스로 이름 충돌 방지 ... 208
5.4 네임스페이스 권고안 ... 210
5.5 네임스페이스 이름 ... 211
5.6 네임스페이스 선언 ... 212
5.7 네임스페이스 사용 ... 217
5.8 네임스페이스 사용 범위 ... 218
5.9 디폴트 네임스페이스 ... 221
5.10 디폴트 네임스페이스 사용 해지 영역 ... 224
5.11 네임스페이스와 속성 ... 226
제6장 XML 스키마 언어 ... 229
6.1 스키마 언어의 탄생 배경 ... 231
6.2 스키마 언어 권고안 ... 232
6.3 스키마 문서의 물리적 구성 ... 233
1] 주 스키마 문서 및 외부 스키마 문서 ... 233
2] 스키마 문서의 작성에서부터 사용까지 ... 234
3] 스키마 문서 작성 맛보기 ... 235
4] 스키마 인스턴스 지정 방법 ... 241
5] 스키마 인스턴스 지정 맛보기 ... 243
6.4 스키마 인스턴스의 유효성 검사 ... 248
1] 유효성 검사의 필요성 ... 248
2] XML 문서 작성 시의 유효성 검사 ... 249
3] XML 문서 처리 시의 유효성 검사 ... 249
6.5 스키마 문서의 루트 엘리먼트 ... 250
1] 루트 엘리먼트 ... 250
2] 루트 엘리먼트의 자식 엘리먼트 ... 250
6.6 주석 ... 252
1] XML 주석 ... 252
2] annotation(주석) 엘리먼트 사용하기 ... 252
6.7 엘리먼트 선언 ... 254
1] 데이터를 갖는 엘리먼트 선언 ... 254
2] 자식 엘리먼트를 갖는 엘리먼트 선언 ... 256
3] 자식 엘리먼트와 속성을 동시에 갖는 엘리먼트 선언 ... 261
4] 속성만 갖는 빈(empty) 엘리먼트 선언 ... 263
5] 데이터 및 속성을 동시에 갖는 엘리먼트 선언 ... 265
6] 엘리먼트 선언의 종류 ... 268
7] 글로벌 엘리먼트 참조 ... 271
8] null 값을 가지는 엘리먼트 ... 272
9] 엘리먼트의 다형성(polymorphism) ... 273
6.8 속성 선언 ... 276
1] 속성 선언 문법 ... 276
2] 속성 선언 예제 ... 277
3] 속성 선언의 종류 ... 279
6.9 데이터 타입 ... 283
1] 데이터 타입이란? ... 283
2] 데이터 타입의 분류 ... 283
6.10 빌트인(Built-in) 심플 타입 ... 287
1] 빌트인(Built-in) 심플 타입 용도 ... 287
2] 빌트인(Built-in) 심플 타입 계층도 ... 287
3] 기본 데이터 타입 (Primitive Datatype) ... 288
4] 파생된 데이터 타입 (Derived Datatype) ... 289
5] 빌트인 심플 타입 사용 방법 ... 291
6.11 사용자 정의 심플 타입 ... 293
1] 사용자 정의 심플 타입 용도 ... 293
2] 사용자 정의 심플 타입 정의 문법 ... 293
3] 심플 타입을 제한하여 새로운 심플 타입 정의 ... 296
4] 공백으로 분리된 여러 데이터를 가지는 심플 타입 정의 ... 307
5] 여러 개의 심플 타입을 결합한 심플 타입 정의 ... 309
6.12 콤플렉스 타입 ... 313
1] 콤플렉스 타입 용도 ... 313
2] 콤플렉스 타입 문법 ... 313
3] 순차적으로 자식 엘리먼트들이 오는 콤플렉스 타입 정의 ... 314
4] 선택적으로 자식 엘리먼트들을 사용할 수 있는 콤플렉스 타입 정의 ... 317
5] 자식 엘리먼트와 속성을 동시에 갖는 콤플렉스 타입 정의 ... 319
6] 속성만 갖는 콤플렉스 타입 정의 ... 322
7] 데이터 및 속성을 동시에 갖는 콤플렉스 타입 정의 ... 324
6.13 콤플렉스 타입의 확장 및 제한 ... 328
1] 콤플렉스 타입의 확장 및 제한의 의미 ... 328
2] 심플 타입 콘텐트를 갖는 콤플렉스 타입을 확장 ... 328
3] 심플 타입 콘텐트를 갖는 콤플렉스 타입을 제한 ... 331
4] 자식 엘리먼트와 속성을 갖는 콤플렉스 타입의 확장 ... 335
5] 자식 엘리먼트와 속성을 갖는 콤플렉스 타입의 제한 ... 337
6] 콤플렉스 타입의 다형성(polymorphism) ... 340
6.14 모델 그룹과 속성 그룹 ... 344
1] 모델 그룹과 속성 그룹의 필요성 ... 344
2] 모델 그룹 ... 344
3] 속성 그룹 ... 347
6.15 유일 제약 정의 ... 350
1] 유일 제약이란? ... 350
2] ID 속성 타입을 이용한 유일 제약 구현 ... 350
3] key 엘리먼트를 이용한 유일 제약 구현 ... 354
4] unique 엘리먼트를 이용한 유일 제약 구현 ... 361
6.16 임의의 엘리먼트 및 속성 사용 ... 363
1] 임의의? ... 363
2] any 엘리먼트 ... 363
3] anyAttribute 엘리먼트 ... 367
6.17 노테이션(notation) 선언 ... 368
1] 노테이션이란? ... 368
2] 노테이션 선언 문법 ... 368
6.18 스키마 문서의 결합 ... 372
1] 스키마 문서의 결합이란? ... 372
2] 같은 네임스페이스를 가지는 스키마 문서의 결합 ... 373
3] 다른 네임스페이스를 가자는 스키마 문서의 결합 ... 376
6.19 네임스페이스를 갖는 스키마 ... 380
제7장 XPath ... 383
7.1 XPath 소개 ... 385
7.2 XPath 데이터 모델 ... 386
1] 트리(Tree) 구조 ... 386
2] 노드와 노드셋의 이해 ... 386
7.3 Location Path ... 389
1] 절대 경로 ... 389
2] 상대 경로 ... 389
7.4 Location Step 작성 문법 ... 390
1] Axis 종류 ... 390
2] NodeTest에 올 수 있는 것들 ... 396
3] Predicate에 올 수 있는 표현 ... 397
7.5 단축형 Location Step 작성 문법 ... 399
7.6 XPath 함수 ... 401
1] XPath 함수의 종류 ... 401
2] 노드의 정보를 반환하는 함수들 ... 401
3] 문자열과 관련된 함수들 ... 403
4] 참 또는 거짓을 반환하는 함수들 ... 404
5] 숫자와 관련된 함수들 ... 405
7.7 XPath를 이용하는 스펙들 ... 406
제8장 XSL로 XML 문서 구조 변경 ... 407
8.1 XSL 소개 ... 409
1] XML 문서의 변환의 필요성 ... 409
2] XSL 구성 파트 ... 410
8.2 XSL 처리 과정 이해 ... 414
1] XSL 처리 과정 종류 ... 414
2] Transformation 처리 과정 ... 414
3] Formatting 처리 과정 ... 415
4] XSL 프로세서(Processor) ... 416
8.3 XSL 변환 프로세싱 지시자 ... 417
8.4 Transformation 처리 과정 맛보기 ... 418
1] 인터넷 익스플로러를 이용 ... 419
2] Visual Studio 2005 이용 ... 421
8.5 XSL 문서의 루트 엘리먼트 ... 424
1] 루트 엘리먼트 ... 424
2] 루트 엘리먼트의 자식 엘리먼트 ... 425
8.6 결과 트리의 문서 종류 결정 ... 426
1] output 엘리먼트 ... 426
2] 다른 구조의 XML 문서로 변환 ... 428
3] HTML 문서로 변환 ... 431
8.7 템플릿 룰 ... 434
1] 템플릿 룰의 개념 ... 434
2] 노드 및 노드셋의 개념 ... 435
3] 템플릿 룰의 정의 ... 436
4] 템플릿 룰의 적용 ... 439
5] 템플릿 룰의 name 속성 ... 444
6] 템플릿 룰의 priority 속성 ... 447
7] 템플릿 룰의 mode 속성 ... 450
8.8 원본 XML 문서의 내용 가져오기 ... 454
1] 엘리먼트의 콘텐트 내용 및 속성값 가져오기 ... 454
2] 엘리먼트 및 속성을 복사해서 가져오기 ... 457
8.9 정렬시키기 ... 460
8.10 번호 매기기 ... 466
8.11 제어 엘리먼트 ... 469
1] xsl:if 엘리먼트 ... 469
2] xsl:choose 엘리먼트 ... 472
3] xsl:for - each 엘리먼트 ... 475
8.12 변수와 파라미터 ... 478
1] 변수 ... 478
2] 파라미터 ... 482
8.13 XSL 문서의 결합 ... 486
1] XSL 문서 결합의 의미 ... 486
2] xsl:include 엘리먼트 ... 486
3] xsl:import 엘리먼트 ... 489
Part 2 : XML 프로그래밍 편
제9장 XML 문서 읽기 ... 493
9.1 System.Xml 네임스페이스 ... 495
1] .NET Framework에서 지원하는 XML 관련 표준 ... 495
2] XmlReader와 XmlWriter 클래스 ... 495
3] DOM ... 496
4] XPath ... 496
5] XSLT ... 496
9.2 .NET과 MSXML ... 497
9.3 XML 판독기 만들기 ... 498
1] XmlReader 추상 클래스 ... 498
2] XmlReader.Create 메소드 ... 499
3] URL 경로에 있는 XML 문서 읽기 ... 501
4] 로컬 XML 문서 파일 읽기 ... 505
5] 문자열 XML 문서 읽기 ... 506
6] DTD 유효성 검사 ... 507
7] XML 스키마 유효성 검사 ... 508
9.4 XML 문서 데이터 얻기 ... 510
1] XmlNodeType의 종류 ... 510
2] 공백 문자의 처리 ... 511
3] 문자 데이터 읽기 ... 512
4] 프로세싱 지시자 읽기 ... 514
5] 속성 읽기 ... 514
6] 네임스페이스 처리 ... 517
제10장 XML 문서 작성 ... 519
10.1 XML 작성기 만들기 ... 521
1] XmlWriter 추상 클래스 ... 521
2] XmlWriter.Create 메소드 ... 521
3] 로컬 파일로 XML 문서 작성 ... 523
4] 문자열 스트림으로 XML 문서 작성 ... 524
10.2 XML 내용 작성 ... 525
1] 엘리먼트 작성 ... 525
2] 문자 데이터 작성 ... 527
3] 속성 작성 ... 529
4] 프로세싱 지시자 쓰기 ... 531
5] 네임스페이스 지원 ... 532
제11장 DOM을 이용한 XML 문서 처리 ... 535
11.1 DOM 소개 ... 537
1] 개체를 이용하는 응용 프로그램 ... 537
2] 일관된 개체 유형의 필요성 ... 538
3] DOM 역사 ... 539
4] DOM 스펙 ... 539
5] DOM Core 파트의 구조 ... 541
6] .NET Framework의 DOM 구현 클래스 ... 545
7] XmlReader와 DOM 구현 클래스의 용도 ... 548
11.2 DOM 개체 생성 ... 549
1] Load와 LoadXml 메소드 ... 549
2] URL 경로에 있는 XML 문서로부터 생성 ... 549
3] 로컬 XML 문서 파일로부터 생성 ... 550
4] 문자열 XML 문서로부터 생성 ... 551
11.3 XML 문서 정보 얻기 ... 552
1] 루트 엘리먼트 정보 얻기 ... 552
2] 첫 번째와 마지막 자식 엘리먼트 정보 얻기 ... 553
3] 자식 노드 목록 얻기 ... 555
4] 다음 및 이전 형제 엘리먼트 정보 얻기 ... 556
5] 문자 데이터 얻기 ... 558
6] 속성값 얻기 ... 558
7] 태그 이름으로 엘리먼트 검색 ... 560
8] ID로 엘리먼트 검색 ... 561
11.4 XPath를 이용하여 XML 문서 검색 ... 563
1] XmlDocument 개체를 이용한 검색 ... 563
2] XPathDocument 개체를 이용한 검색 ... 564
11.5 XML 문서 수정 ... 567
1] 새 내용 추가 ... 567
2] 내용 수정 ... 570
3] 내용 삭제 ... 573
11.6 새 DOM 개체 생성 ... 575
제12장 XSLT 프로세싱 ... 577
12.1 XSLT 프로세싱이란? ... 579
12.2 XslCompiledTransform 클래스 ... 580
12.3 XML 문서 변환 ... 581
제13장 ADO.NET과 XML ... 583
13.1 ADO.NET 소개 ... 585
13.2 XML 문서와 DataSet의 구조 비교 ... 586
13.3 SQL Server 설치 및 데이터베이스 생성 ... 588
1] SQL Server 설치 ... 588
2] 데이터베이스 생성 ... 595
13.4 DataSet으로 XML 읽고 쓰기 ... 599
1] GetXml과 GetXmlSchema 메소드 ... 599
2] WriteXml과 WriteXmlSchema 메소드 ... 601
3] ReadXml 메소드 ... 603
4] ReadXmlSchema, InferXmlSchema 메소드 ... 606
13.5 DataSet과 XML 문서 동기화 ... 612
1] XmlDataDocument 소개 ... 612
2] DataSet 개체를 XML 문서처럼 액세스하기 ... 612
3] 지연 변경을 반영하기 ... 614
제14장 SQL Server와 XML ... 619
14.1 SQL Server에서 지원하는 XML 기능 ... 621
14.2 FOR XML을 사용하여 XML 문서 얻기 ... 623
1] RAW 모드 사용 ... 623
2] AUTO 모드 사용 ... 624
3] EXPLICIT 모드 사용 ... 626
4] 쿼리 결과를 응용 프로그램에서 이용하기 ... 635
14.3 OPENXML을 사용하여 데이터베이스에 저장 ... 638
1] XML 문서를 데이터베이스에 저장하는 방법 ... 638
2] sp_xml_preparedocument, sp_xml_removedocument ... 640
3] OPENXML 사용 방법 ... 641
4] OPENXML을 이용한 데이터 저장 예제 ... 643
제15장 XML 주문 처리 프로그램 ... 647
15.1 주문 처리 프로그램 개요 ... 649
15.2 서버 측 클래스 ... 651
1] 서버 측 클래스의 종류 ... 651
2] OrderServer 클래스 ... 652
3] ListAction 클래스 ... 659
4] OrderAction 클래스 ... 663
5] OrderViewAction 클래스 ... 667
6] ValidErrorAction 클래스 ... 670
15.3 클라이언트 측 클래스 ... 672
1] OrderClient 클래스 ... 672
2] btnProductList_Click 메소드 ... 673
3] btnProductOrder_Click 메소드 ... 675
4] btnOrderView_Click 메소드 ... 677
5] XmlView 메소드 ... 678
6] btnSendRequestXml_Click 메소드 ... 682
15.4 주문 처리 프로그램 실행 ... 685
더보기 닫기