Download presentation
Presentation is loading. Please wait.
1
XML 구조와 문법 ㅎㅎ XML 문서 구조 개체 참조, CDATA, 처리 명령어 네임스페이스 개념과 사용
2
학습목표 2장. XML 구조와 문법 XML 문서 구조를 이해 XML 문서 제작 방법 학습
네임스페이스 개념 이해 객체지향과 XML 설계 기법 학습
3
(DTD/ XML-schema 선언), (Namespace 선언)
Section 01 XML 문서 구조 XML 문서 구조 XML 문서 형태 XML 선언 (DTD/ XML-schema 선언), (Namespace 선언) XML 태그(요소,속성) & 데이타 XML 문서(document) <?xml version="1.0" encoding="euc-kr"?> <!-- XML 문서 구조 --> <students> <student sid=“100”> <name>홍 현</name> <age>30</age> <address>서울 면목동</address> <student> ... </students> XML 선언부 주석 최상위 요소 속성 요소
4
XML 선언부 XML 선언부 형식 Section 01 XML 문서 구조 반드시 입력해야 하며, 속성으로 버전과 인코딩 지정
태그 시작과 끝에 <? ~ ?> 태그를 붙여야만 함 문서 분석 애플리케이션이 해당 문서가 XML 문서임을 판단 XML 선언부 형식 ① <?xml로 시작하고, 공백이 없어야 함. ② 버전은 필수 속성 ③인코딩과 ④독립형 여부는 선택 속성 <?xml version="버전" encoding="문자 코드" standalone="yes or no"?> ① ② ③ ④
5
XML 선언문 규칙 Section 01 XML 문서 구조
XML 선언에서 <? (시작 태그)와 xml 문자 사이에 공백을 없앤다. XML 선언 속성에서 version 속성은 반드시 표기한다. XML 선언을 속성할 때는 xml, version 순으로 표현한다.
6
XML 주석 XML 주석 형식 Section 01 XML 문서 구조 ‘<!-- 와 -->’ 형태로 표기
DTD, XML 스키마 같은 문서 정의 문서에서도 사용가능 XML 주석 형식 잘못된 주석 형식 <!-- comment --> <!-- 잘못 사용한 주석 --> XML 선언 이전에 표현됨 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <students <!-- 잘못 사용한 주석 -->> 다른 요소의 내부에 표현 <!-- 잘못된 사용한 -- 주석 --> 주석 내부에 “—” 문자 사용
7
XML 요소 서식 Section 01 XML 문서 구조
<element_name> element context </element_name> 시작 태그 종료 태그 요소 내용 요소(element) PCDATA(Parsed Character DATA)
8
XML 정의와 사용법 Section 01 XML 문서 구조 시작 태그 다음에는 반드시 종료 태그가 있어야 한다.
모든 요소명은 대소문자를 구별한다. 요소와 텍스트 데이터를 함께(mixed) 나타낼 수 있다. 요소 내용이 없으면 빈 요소로 둘 수 있다. 태그를 겹쳐(overlap)서 쓰는 것을 허용하지 않는다. 최상위 요소(root element)는 하나만 가져야 한다. 요소명이 XML 이름 부여 규칙(naming convention)에 적합해야 한다.
9
XML 이름 부여 규칙 Section 01 XML 문서 구조
요소명의 첫 문자는 문자나 ‘_’ 기호로 시작해야 한다. 요소명 처음과 중간에는 공백을 사용할 수 없다(단, 공백 문자로 끝날 수는 있다). 예약어를 사용할 수 없다. (예: xml)
10
요소 내용 구성 Section 01 XML 문서 구조 요소 내용 여러 개를 나타낼 수 있음
요소 내용에 같은 구조의 요소를 포함하는 계층 구조 요소 내용에 다른 구조의 요소를 포함하는 계층 구조 students student sid name age address students student sid name age address cno cname credit course
11
XML 요소를 잘못 표현하는 사례 Section 01 XML 문서 구조
요소를 나타내기 위한 시작태그와 종료태그는 반드시 한 쌍으로 존재해야 한다. 다른 요소의 시작태그나 종료 태그를 겹치지 말아야 하며, 이름 부여 규칙에 적합해야 한다.
12
XML 속성 Section 01 XML 문서 구조 요소 내에 정보나 데이터를 표현하기 위한 방법
한 요소에 여러 속성을 표현할 수 있음 형식: 시작 태그 일부로 표현 구성 요소: 속성명과 속성값으로 표현 <element_name attribute="attribute_value" attribute="attribute_value"... > <student sid="100"> 요소명 속성명 속성값
13
속성을 선언할 때 주의할 사항 Section 01 XML 문서 구조 속성은 반드시 속성값을 가져야 함
빈 문자열을 포함할 수도 있다. 속성값은 큰 따옴표(“)나 작은 따옴표(‘) 사용해야 함 속성명 부여 방법은 요소명 부여 방법과 동일 대.소문자를 구별 ‘xml'이라는 문자열로 시작할 수 없음. 숫자로 속성명을 시작할 수 없음 한 요소에 같은 이름의 속성을 두 개 이상 선언할 수 없음
14
Section 02 개체 참조, CDATA, 처리 명령어
XML 문서에서 특수문자를 표현하는 방법 개체 참조 문자 참조 개체 참조 정의 미리 정해진 코드나 이름을 사용해서 표현할 때 쓰는 개념 개체에 할당된 이름이 개체명 &와 ;를 사용해서 나타냄 &entity_reference_name;
15
Section 02 개체 참조, CDATA, 처리 명령어
개체 참조명 사용 예 [표 2-1] 개체 참조 표현 문자 10진 문자 코드 개체 참조명 어 원 < < less then > > greater then ‘ ' ' apostrophe “ " " quotation marks & & & ampersand <students> <student> <sid>100</sid> <name>홍 현 </name> <study> <과목>XML </study> </student> </students>
16
Section 02 개체 참조, CDATA, 처리 명령어
문자 참조 ‘&’ 혹은 ‘<’, ‘>’ 이외에도 여러 가지 특수기호나 특수문자를 사용해야 할 때 유용(예. 회사 마크, 문자표 심볼 등) 사용되는 문자 코드는 ISO/IEC10646에 명시 사용 예 
진수 문자 코드; - 10진수로 문자 코드를 지정 진수 문자 코드; - 16진수로 문자 코드를 지정 (유니코드) <students> <student> <sid>100</sid> <name>홍 현 </name> <telephone> ☏ </telephone> <age> ♡ 30 </age> </student> </students>
17
Section 02 개체 참조, CDATA, 처리 명령어
..... ]]>
18
Section 02 개체 참조, CDATA, 처리 명령어
<students> <student> <sid>100</sid> <name>홍 현 </name> <activity> <![CDATA[ 1992년 "단국대" 입학. 1993년 학생회장 & 과대표. 1996년 "단국대" 졸업. 2000년 << WG 입사 >> 2003년 << 총동창 회장 & 국회의원 >> ]]> </activity> </student> </students>
19
Section 02 개체 참조, CDATA, 처리 명령어
CDATA 섹션 안에 CDATA 섹션을 포함하지 않아야 한다. 키워드 CDATA는 반드시 대문자를 사용한다. CDATA 구역은 요소 컨텐츠 내의 문자 데이터 어디에나 삽입할 수 있다. 단, XML 마크업(태그) 내에서는 사용할 수 없다.
20
Section 02 개체 참조, CDATA, 처리 명령어
처리 명령어(PI, Processing Instruction) 정보를 문서 데이터 부분이 아닌 애플리케이션으로 전달 형식 name_processor: 명령문이 지정되는 애플리케이션 이름 ‘<?’와 ‘name_processor’ 사이에 공백이나 탭을 포함될 수 없음 instruction: 애플리케이션 명령어, 애플리케이션에 전달되는 정보처리 명령어 <?name_processor instruction ?>
21
Section 02 개체 참조, CDATA, 처리 명령어
처리 명령어를 사용할 때 알아야 할 사항 이름은 반드시 문자 또는 밑줄로 시작해야 하고, 그 뒤에 숫자, 문자, 점, 밑줄 등을 자유롭게 사용할 수 있다. 처리 명령문은 XML 문서의 어디든지 삽입할 수 있다. 단, 주석과 마찬가지로 마크업 내에는 삽입할 수 없다. 문서의 서두, 문서 요소 다음, 요소 내용의 내에 포함시킬 수 있다. 가장 많이 사용하는 처리 명령어는 CSS와 XSL을 적용하기 위한 처리 명령어다. 스타일시트를 위한 name_processor 부분에는 ‘xml-stylesheet’를 사용하고, instruction 부분은 사용되어지는 스타일의 MIME 타입과 스타일 파일의 URI를 기술한다.
22
네임스페이스 등장 배경 네임스페이스 선언 Section 03 네임스페이스 개념과 사용 중복 태그를 막기 위해 등장
요소명과 속성명을 정확하게 인식하는 개념 네임스페이스 선언 XML에서 미리 정의된 속성을 이용해서 선언 속성 이름은 기본 네임스페이스 선언 방식과 접두사를 사용하는 방식이 있음 네임스페이스 이름은 유일하고, 지속적인 특징을 가짐
23
기본 네임스페이스로 선언 Section 03 네임스페이스 개념과 사용 요소에 xmlns 속성을 사용해서 네임스페이스를 선언
하위 요소에는 자동으로 상위 요소에서 선언한 네임스페이스가 적용 XML 문서 중 기본 네임스페이스로 선언되면 네임스페이스 접두어를 붙이지 않음 선언 형식 취소 선언 형식 <element_name xmlns="URI_Reference"> <element_name xmlns=" ">
24
기본 네임스페이스로 선언한 예 Section 03 네임스페이스 개념과 사용
<students xmlns=" <student> <sid>100</sid> <name>홍 현 </name> <age> 30 </age> </student> </students>
25
접두사를 사용한 네임스페이스 선언 Section 03 네임스페이스 개념과 사용
네임스페이스 접두사는 XML 문서 중에서 사용하는 요소명이나 속성명과 xmlns: 속성값으로 지정하는 URI 참조를 관련시키기 위해 사용 선언 형식 접두사 사용 규칙 접두사 첫 문자는 문자 또는 언더라인(_)으로 시작 URI_Reference는 xmlns: 속성값을 URI로 지정 URI 경로가 다르게 지정되어 있다면, 서로 다른 URI 참조를 사용 <element_name xmlns:prefix_name = "URI_Reference">
26
접두사를 사용한 네임스페이스 선언한 예 Section 03 네임스페이스 개념과 사용
<st:students xmlns:st=" <st:student> <st:sid>100</st:sid> <st:name>홍 현 </st:name> <st:age> 30 </st:age> <st:address> 서울 면목동 </st:address> </st:student> </st:students>
27
여러 개의 접두사를 사용해서 네임스페이스를 선언한 예
Section 03 네임스페이스 개념과 사용 여러 개의 접두사를 사용해서 네임스페이스를 선언한 예 <st:students xmlns:st=" xmlns:pf=" <st:student> <st:sid>100</st:sid> <st:name>홍 현 </st:name> <st:age> 30 </st:age> <st:profile> <pf:html> <pf:head> <pf:title> 나의 소개 </pf:title> </pf:head> <pf:body> 활발한 사회활동 중 </pf:body> </pf:html> </st:profile> </st:student> </st:students>
28
한정한 이름 Section 03 네임스페이스 개념과 사용 네임스페이스 접두사를 붙인 요소나 속성명 사용 형식 적용 예
prefix_name: 네임스페이스 접두어. 네임스페이스 선언에서 정의한 것과 일치해야 함 local_name: 지역 이름. 지역 이름은 원래 요소명이 됨 적용 예 <prefix_name:local_name> <bk:name> XML 활용백서 </bk:name>
29
요소 네임스페이스 선언 예 Section 03 네임스페이스 개념과 사용
<st:students xmlns:st=" xmlns:bk=" <st:student> <st:sid>100</st:sid> <st:name>홍 현 </st:name> <st:book> <bk:name> XML 활용백서 </bk:name> <bk:price unit="원"> </bk:price> <bk:publishing> 한빛출판사 </bk:publishing> </st:book> </st:student> </st:students>
30
속성에 네임스페이스 선언 Section 03 네임스페이스 개념과 사용 형식 선언 예
<element_name prefix_name:attribute_name = “attribute_value” > <students xmlns:bk=" <student id="100"> <name>홍 현 </name> <book bk:id="b001"> <title> XML 활용백서 </title> <publishing> 한빛출판사 </publishing> </book> </student> </students>
31
객체지향 객체 개념과 XML Section 04 객체지향과 XML 설계 모든 실세계를 객체로 보고 모델링해서 표현하는 것
object 요소(element) 속성(attribute) 링크(Link) ... 현실 세계 무형의 객체 유형의 객체 XML 계좌
32
추상화 Section 04 객체지향과 XML 설계
어떤 객체 집합의 특성이나 성질 등을 선택하고 적절하지 않은 다른 특성들을 제거 할 때 사용하는 정신적 과정. 분류 추상화(classification) 공통 성질로 특성화되어 있는 객체들을 클래스 하나로 정의 가장 보편적으로 많이 사용하는 개념 IS_MEMBER_OF 관계 자전거 빨간 자전거 홍길동 천리마 월 1월 12월
33
추상화 Section 04 객체지향과 XML 설계 집단 추상화 (aggregation)
각각의 구성 요소를 표현하는 클래스들의 집합으로부터 새로운 클래스를 정의. IS_PART_OF 관계 일반 추상화 (generalization) 두 개 혹은 둘 이상의 클래스 요소 사이의 부분집합 관계를 정의 IS_A 관계 자전거 바퀴 페달 핸들 집 주방 거실 욕실 탈것 자전거 자동차 기차 학생 대학원생 주간학부생 야간학부생
34
XML 설계 단계 Section 04 객체지향과 XML 설계 1단계: 표현하려는 객체를 선택한다.
2단계: 객체 분석과 모델링을 통해 요소(element)를 추출해서 정의/분석한다. 3단계: 분석된 객체 정보로 트리를 만들고 요소에 대한 정형화된 데이터를 작성한다. 4단계: 분석된 정보를 나타내는 요소명과 속성명을 구분해서 정의한다. 5단계: 앞에서 설계한 트리를 보고 XML 문법에 맞게 작성한다.
35
2단계: 객체 분석과 모델링, 요소 추출과 정의/분석
Section 04 객체지향과 XML 설계 1단계: 표현할 객체 선택 2단계: 객체 분석과 모델링, 요소 추출과 정의/분석 자동차 정보 분석 자동차 제조회사, 자동차 명 자동차 가격, 자동차 색상 배기량, 에어백 설치여부 CD장착여부...등
36
3_1단계: 분석된 객체 정보로 트리 제작 3_2: 요소에 대한 정형화된 데이터 작성
Section 04 객체지향과 XML 설계 3_1단계: 분석된 객체 정보로 트리 제작 3_2: 요소에 대한 정형화된 데이터 작성 [그림 2-33] 객체 정보 트리 작성 2 기본 모델 옵션 회사 자동차명 가격 색상 배기량 에어백 CD 현대자동차 산타페 23,000,000 은색 2000 cc yes [표 2-3] 객체 정보 트리 작성을 위한 정보 테이블
37
4단계: 요소명과 속성명 정의 Section 04 객체지향과 XML 설계 분석 정보 구분 자동차 car(요소) 모델
model(요소) 기본 basic(요소) 색상 color(요소) 회사 company(요소) 배기량 displacement(요소) 자동차 명 name(요소) 옵션 option(요소) 가격 price(요소) 에어백 airbag(요소) unit (속성) CD cd(속성) [표 2-4] 요소명과 속성명으로 구분
38
5단계: 코딩 Section 04 객체지향과 XML 설계
<?xml version="1.0" encoding="euc-kr" ?> <car> <basic> <company>현대자동차</company> <name>산타페</name> <price unit="원"> </price> </basic> <model> <color>은색</color> <displacement> 200cc </displacement> </model> <option cd="yes"> <airbag>yes</airbag> </option> </car>
Similar presentations