XML 구조와 문법 ㅎㅎ XML 문서 구조 개체 참조, CDATA, 처리 명령어 네임스페이스 개념과 사용

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
406 문서에 표를 작성하고 크기를 조절할 수 있다. 표에 서식을 적용하여 다양하게 표현할 수 있다. 표를 편집하여 다양한 형태로 나타낼 수 있다. 학습목표 5 부. HTML 의 기본 4 장. 표를 이용한 문서작성 - 17 주 차시 : 1/3 ∼ 3/3 배당시간 : 18.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
파워포인트 2007.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
제 9 장 구조체와 공용체.
블록 속성 정의와 추출 속성 정의 블록을 만들 객체들에 문자를 사용하여 속성을 설명하는 꼬리표에 해당하는 태그를 정의하는
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 3장. C보다 나은 C++ II.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
23장. 구조체와 사용자 정의 자료형 2.
[ 고급소프트웨어공학 ] XML parser: DOM G 김지희.
홈페이지용 그림 활용법 그림 삽입 태그 <IMG> 배경 그림 다루기 그림과 문자열의 어울림
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
6장. printf와 scanf 함수에 대한 고찰
(Extensible Markup Language)
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
10장. 예외처리.
자바 5.0 프로그래밍.
11장. 1차원 배열.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
CHAP 12. 리소스와 보안.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
JA A V W. 03.
자바 5.0 프로그래밍.
인터넷응용프로그래밍 JavaScript(Intro).
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
Lesson 2. 기본 데이터형.
14장 XML 과 멀티미디어 14.1 XML 14.2 이름 공간 14.3 스타일 시트 14.4 링크 멀티미디어시스템
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
1. 입력 데이터 대학, 학과: 대학이 존재하지 않을 경우 학과명을 대학에 입력 학과명은 공백으로 유지
2장. 변수와 타입.
자바 5.0 프로그래밍.
Chapter 02. 자바 기본 문법.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
X M L 의공학 송인상.
CHAP 21. 전화, SMS, 주소록.
에어 PHP 입문.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
XML 문서 제작 기본 ㅎㅎ 정형식 문서와 유효한 XML 문서 XML 파서 XML 편집기.
3. 모듈 (5장. 모듈).
Chapter 10 데이터 검색1.
함수, 모듈.
1. 입력 데이터 ② 대학, 학과: 대학이 존재하지 않을 경우 학과명을 대학에 입력 학과명은 공백으로 유지 (하단 참조)
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
9 브라우저 객체 모델.
서적DB개발 과제 Page 2의 ERD를 통해 구축할 서적 DB의 구조를 파악한다. (4개의 개체에 대해 확인함)
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Microsoft Word 2002 제1장 문자열의 삽입과 변경.
 6장. SQL 쿼리.
Docker Study 6~7.
7 생성자 함수.
6 객체.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

XML 구조와 문법 ㅎㅎ XML 문서 구조 개체 참조, CDATA, 처리 명령어 네임스페이스 개념과 사용

학습목표 2장. XML 구조와 문법 XML 문서 구조를 이해 XML 문서 제작 방법 학습 네임스페이스 개념 이해 객체지향과 XML 설계 기법 학습

(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 선언부 주석 최상위 요소 속성 요소

XML 선언부 XML 선언부 형식 Section 01 XML 문서 구조 반드시 입력해야 하며, 속성으로 버전과 인코딩 지정 태그 시작과 끝에 <? ~ ?> 태그를 붙여야만 함 문서 분석 애플리케이션이 해당 문서가 XML 문서임을 판단 XML 선언부 형식 ① <?xml로 시작하고, 공백이 없어야 함. ② 버전은 필수 속성 ③인코딩과 ④독립형 여부는 선택 속성 <?xml version="버전" encoding="문자 코드" standalone="yes or no"?> ① ② ③ ④

XML 선언문 규칙 Section 01 XML 문서 구조 XML 선언에서 <? (시작 태그)와 xml 문자 사이에 공백을 없앤다. XML 선언 속성에서 version 속성은 반드시 표기한다. XML 선언을 속성할 때는 xml, version 순으로 표현한다.

XML 주석 XML 주석 형식 Section 01 XML 문서 구조 ‘<!-- 와 -->’ 형태로 표기 DTD, XML 스키마 같은 문서 정의 문서에서도 사용가능 XML 주석 형식 잘못된 주석 형식 <!-- comment --> <!-- 잘못 사용한 주석 -->  XML 선언 이전에 표현됨 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <students  <!-- 잘못 사용한 주석  -->>  다른 요소의 내부에 표현 <!-- 잘못된 사용한 -- 주석 -->  주석 내부에 “—” 문자 사용

XML 요소 서식 Section 01 XML 문서 구조 <element_name> element context </element_name> 시작 태그 종료 태그 요소 내용 요소(element) PCDATA(Parsed Character DATA)

XML 정의와 사용법 Section 01 XML 문서 구조 시작 태그 다음에는 반드시 종료 태그가 있어야 한다. 모든 요소명은 대소문자를 구별한다. 요소와 텍스트 데이터를 함께(mixed) 나타낼 수 있다. 요소 내용이 없으면 빈 요소로 둘 수 있다. 태그를 겹쳐(overlap)서 쓰는 것을 허용하지 않는다. 최상위 요소(root element)는 하나만 가져야 한다. 요소명이 XML 이름 부여 규칙(naming convention)에 적합해야 한다.

XML 이름 부여 규칙 Section 01 XML 문서 구조 요소명의 첫 문자는 문자나 ‘_’ 기호로 시작해야 한다. 요소명 처음과 중간에는 공백을 사용할 수 없다(단, 공백 문자로 끝날 수는 있다). 예약어를 사용할 수 없다. (예: xml)

요소 내용 구성 Section 01 XML 문서 구조 요소 내용 여러 개를 나타낼 수 있음 요소 내용에 같은 구조의 요소를 포함하는 계층 구조 요소 내용에 다른 구조의 요소를 포함하는 계층 구조 students student sid name age address students student sid name age address cno cname credit course

XML 요소를 잘못 표현하는 사례 Section 01 XML 문서 구조 요소를 나타내기 위한 시작태그와 종료태그는 반드시 한 쌍으로 존재해야 한다. 다른 요소의 시작태그나 종료 태그를 겹치지 말아야 하며, 이름 부여 규칙에 적합해야 한다.

XML 속성 Section 01 XML 문서 구조 요소 내에 정보나 데이터를 표현하기 위한 방법 한 요소에 여러 속성을 표현할 수 있음 형식: 시작 태그 일부로 표현 구성 요소: 속성명과 속성값으로 표현 <element_name  attribute="attribute_value" attribute="attribute_value"... > <student sid="100"> 요소명 속성명 속성값

속성을 선언할 때 주의할 사항 Section 01 XML 문서 구조 속성은 반드시 속성값을 가져야 함 빈 문자열을 포함할 수도 있다. 속성값은 큰 따옴표(“)나 작은 따옴표(‘) 사용해야 함 속성명 부여 방법은 요소명 부여 방법과 동일 대.소문자를 구별 ‘xml'이라는 문자열로 시작할 수 없음. 숫자로 속성명을 시작할 수 없음 한 요소에 같은 이름의 속성을 두 개 이상 선언할 수 없음

Section 02 개체 참조, CDATA, 처리 명령어 XML 문서에서 특수문자를 표현하는 방법 개체 참조 문자 참조 개체 참조 정의 미리 정해진 코드나 이름을 사용해서 표현할 때 쓰는 개념 개체에 할당된 이름이 개체명 &와 ;를 사용해서 나타냄 &entity_reference_name;

Section 02 개체 참조, CDATA, 처리 명령어 개체 참조명 사용 예 [표 2-1] 개체 참조 표현 문자 10진 문자 코드 개체 참조명 어 원 < &#60 less then > &#62 greater then ‘ &#39 &apos; apostrophe “ &#34 " quotation marks & &#38 & ampersand <students> <student>      <sid>100</sid>              <name>홍 현 </name>     <study> <과목>XML </study>   </student> </students>

Section 02 개체 참조, CDATA, 처리 명령어 문자 참조 ‘&’ 혹은 ‘<’, ‘>’ 이외에도 여러 가지 특수기호나 특수문자를 사용해야 할 때 유용(예. 회사 마크, 문자표 심볼 등) 사용되는 문자 코드는 ISO/IEC10646에 명시 사용 예 &#10진수 문자 코드;    - 10진수로 문자 코드를 지정 &#x16진수 문자 코드;   - 16진수로 문자 코드를 지정 (유니코드) <students>   <student>     <sid>100</sid>              <name>홍 현 </name>     <telephone> ☏02-123-6399</telephone>     <age> ♡ 30  </age>   </student> </students>

Section 02 개체 참조, CDATA, 처리 명령어   .....   ]]>

Section 02 개체 참조, CDATA, 처리 명령어 <students>    <student>      <sid>100</sid>               <name>홍 현 </name>      <activity>         <![CDATA[  1992년  "단국대" 입학.            1993년  학생회장 & 과대표.            1996년  "단국대" 졸업.            2000년  << WG 입사 >>             2003년  << 총동창 회장 & 국회의원 >>         ]]>                                        </activity>   </student> </students>

Section 02 개체 참조, CDATA, 처리 명령어 CDATA 섹션 안에 CDATA 섹션을 포함하지 않아야 한다. 키워드 CDATA는 반드시 대문자를 사용한다. CDATA 구역은 요소 컨텐츠 내의 문자 데이터 어디에나 삽입할 수 있다. 단, XML 마크업(태그) 내에서는 사용할 수 없다.

Section 02 개체 참조, CDATA, 처리 명령어 처리 명령어(PI, Processing Instruction) 정보를 문서 데이터 부분이 아닌 애플리케이션으로 전달 형식 name_processor: 명령문이 지정되는 애플리케이션 이름 ‘<?’와 ‘name_processor’ 사이에 공백이나 탭을 포함될 수 없음 instruction: 애플리케이션 명령어, 애플리케이션에 전달되는 정보처리 명령어 <?name_processor    instruction ?>

Section 02 개체 참조, CDATA, 처리 명령어 처리 명령어를 사용할 때 알아야 할 사항 이름은 반드시 문자 또는 밑줄로 시작해야 하고, 그 뒤에 숫자, 문자, 점, 밑줄 등을 자유롭게 사용할 수 있다. 처리 명령문은 XML 문서의 어디든지 삽입할 수 있다. 단, 주석과 마찬가지로 마크업 내에는 삽입할 수 없다. 문서의 서두, 문서 요소 다음, 요소 내용의 내에 포함시킬 수 있다. 가장 많이 사용하는 처리 명령어는 CSS와 XSL을 적용하기 위한 처리 명령어다. 스타일시트를 위한 name_processor 부분에는 ‘xml-stylesheet’를 사용하고, instruction 부분은 사용되어지는 스타일의 MIME 타입과 스타일 파일의 URI를 기술한다.

네임스페이스 등장 배경 네임스페이스 선언 Section 03 네임스페이스 개념과 사용 중복 태그를 막기 위해 등장 요소명과 속성명을 정확하게 인식하는 개념 네임스페이스 선언 XML에서 미리 정의된 속성을 이용해서 선언 속성 이름은 기본 네임스페이스 선언 방식과 접두사를 사용하는 방식이 있음 네임스페이스 이름은 유일하고, 지속적인 특징을 가짐

기본 네임스페이스로 선언 Section 03 네임스페이스 개념과 사용 요소에 xmlns 속성을 사용해서 네임스페이스를 선언 하위 요소에는 자동으로 상위 요소에서 선언한 네임스페이스가 적용 XML 문서 중 기본 네임스페이스로 선언되면 네임스페이스 접두어를 붙이지 않음 선언 형식 취소 선언 형식 <element_name   xmlns="URI_Reference"> <element_name   xmlns=" ">

기본 네임스페이스로 선언한 예 Section 03 네임스페이스 개념과 사용 <students xmlns="http://www.dankook.ac.kr/2003/xml">    <student>      <sid>100</sid>               <name>홍 현 </name>      <age> 30 </age>   </student> </students>

접두사를 사용한 네임스페이스 선언 Section 03 네임스페이스 개념과 사용 네임스페이스 접두사는 XML 문서 중에서 사용하는 요소명이나 속성명과 xmlns: 속성값으로 지정하는 URI 참조를 관련시키기 위해 사용 선언 형식 접두사 사용 규칙 접두사 첫 문자는 문자 또는 언더라인(_)으로 시작 URI_Reference는 xmlns: 속성값을 URI로 지정 URI 경로가 다르게 지정되어 있다면, 서로 다른 URI 참조를 사용 <element_name xmlns:prefix_name = "URI_Reference"> http://www.dankook.ac.kr/ http://www.dankook.ac.kr/2003/ http://www.dankook.ac.kr/2003/students

접두사를 사용한 네임스페이스 선언한 예 Section 03 네임스페이스 개념과 사용 <st:students xmlns:st="http://www.dankook.ac.kr/2003/students"> <st:student> <st:sid>100</st:sid> <st:name>홍 현 </st:name> <st:age> 30 </st:age> <st:address> 서울 면목동 </st:address> </st:student> </st:students>

여러 개의 접두사를 사용해서 네임스페이스를 선언한 예 Section 03 네임스페이스 개념과 사용 여러 개의 접두사를 사용해서 네임스페이스를 선언한 예 <st:students xmlns:st="http://www.dankook.ac.kr/2003/students" xmlns:pf="http://www.w3.org/1999/xhtml"> <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>

한정한 이름 Section 03 네임스페이스 개념과 사용 네임스페이스 접두사를 붙인 요소나 속성명 사용 형식 적용 예 prefix_name: 네임스페이스 접두어. 네임스페이스 선언에서 정의한 것과 일치해야 함 local_name: 지역 이름. 지역 이름은 원래 요소명이 됨 적용 예 <prefix_name:local_name> <bk:name> XML 활용백서 </bk:name>

요소 네임스페이스 선언 예 Section 03 네임스페이스 개념과 사용 <st:students xmlns:st="http://www.dankook.ac.kr/2003/students"              xmlns:bk="http://www.hanbit.co.kr/xml/">    <st:student>      <st:sid>100</st:sid>                  <st:name>홍 현 </st:name>      <st:book>         <bk:name> XML 활용백서 </bk:name>         <bk:price unit="원"> 23000 </bk:price>         <bk:publishing> 한빛출판사 </bk:publishing>      </st:book>   </st:student> </st:students>

속성에 네임스페이스 선언 Section 03 네임스페이스 개념과 사용 형식 선언 예 <element_name prefix_name:attribute_name = “attribute_value” > <students xmlns:bk="http://www.hanbit.co.kr/xml/"> <student id="100"> <name>홍 현 </name> <book bk:id="b001"> <title> XML 활용백서 </title> <publishing> 한빛출판사 </publishing> </book> </student> </students>

객체지향 객체 개념과 XML Section 04 객체지향과 XML 설계 모든 실세계를 객체로 보고 모델링해서 표현하는 것 object 요소(element) 속성(attribute) 링크(Link) ... 현실 세계 무형의 객체 유형의 객체 XML 계좌

추상화 Section 04 객체지향과 XML 설계 어떤 객체 집합의 특성이나 성질 등을 선택하고 적절하지 않은 다른 특성들을 제거 할 때 사용하는 정신적 과정. 분류 추상화(classification) 공통 성질로 특성화되어 있는 객체들을 클래스 하나로 정의 가장 보편적으로 많이 사용하는 개념 IS_MEMBER_OF 관계 자전거 빨간 자전거 홍길동 천리마 월 1월 12월

추상화 Section 04 객체지향과 XML 설계 집단 추상화 (aggregation) 각각의 구성 요소를 표현하는 클래스들의 집합으로부터 새로운 클래스를 정의. IS_PART_OF 관계 일반 추상화 (generalization) 두 개 혹은 둘 이상의 클래스 요소 사이의 부분집합 관계를 정의 IS_A 관계 자전거 바퀴 페달 핸들 집 주방 거실 욕실 탈것 자전거 자동차 기차 학생 대학원생 주간학부생 야간학부생

XML 설계 단계 Section 04 객체지향과 XML 설계 1단계: 표현하려는 객체를 선택한다. 2단계: 객체 분석과 모델링을 통해 요소(element)를 추출해서 정의/분석한다. 3단계: 분석된 객체 정보로 트리를 만들고 요소에 대한 정형화된 데이터를 작성한다. 4단계: 분석된 정보를 나타내는 요소명과 속성명을 구분해서 정의한다. 5단계: 앞에서 설계한 트리를 보고 XML 문법에 맞게 작성한다.

2단계: 객체 분석과 모델링, 요소 추출과 정의/분석 Section 04 객체지향과 XML 설계 1단계: 표현할 객체 선택 2단계: 객체 분석과 모델링, 요소 추출과 정의/분석 자동차 정보 분석 자동차 제조회사, 자동차 명 자동차 가격, 자동차 색상 배기량, 에어백 설치여부 CD장착여부...등

3_1단계: 분석된 객체 정보로 트리 제작 3_2: 요소에 대한 정형화된 데이터 작성 Section 04 객체지향과 XML 설계 3_1단계: 분석된 객체 정보로 트리 제작 3_2: 요소에 대한 정형화된 데이터 작성 [그림 2-33] 객체 정보 트리 작성 2 기본 모델 옵션 회사 자동차명 가격 색상 배기량 에어백 CD 현대자동차 산타페 23,000,000 은색 2000 cc yes [표 2-3] 객체 정보 트리 작성을 위한 정보 테이블

4단계: 요소명과 속성명 정의 Section 04 객체지향과 XML 설계 분석 정보 구분 자동차 car(요소) 모델 model(요소) 기본 basic(요소) 색상 color(요소) 회사 company(요소) 배기량 displacement(요소) 자동차 명 name(요소) 옵션 option(요소) 가격 price(요소) 에어백 airbag(요소) unit (속성) CD cd(속성) [표 2-4] 요소명과 속성명으로 구분

5단계: 코딩 Section 04 객체지향과 XML 설계 <?xml  version="1.0" encoding="euc-kr" ?> <car>   <basic>      <company>현대자동차</company>      <name>산타페</name>      <price unit="원"> 23000000 </price>   </basic>   <model>      <color>은색</color>      <displacement> 200cc </displacement>   </model>   <option cd="yes">      <airbag>yes</airbag>   </option> </car>