1 / 38

02. XML 구조와 문법

02. XML 구조와 문법. 학습목표. XML 문서 구조를 이해 XML 문서 제작 방법 학습 XML 설계 방법 실습과 문법 구조 이해 네임스페이스 개념 이해 객체지향과 XML 설계 기법 학습. XML 문서 ( document ). XML 선언. (DTD/ XML-schema 선언 ), (Namespace 선언 ). XML 태그 ( 요소 , 속성 ) & 데이타. <?xml version="1.0" encoding="euc-kr"?> <!-- XML 문서 구조 -->

fay-glass
Download Presentation

02. XML 구조와 문법

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 02. XML 구조와 문법

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

  3. XML 문서(document) XML 선언 (DTD/ XML-schema 선언), (Namespace 선언) XML 태그(요소,속성) & 데이타 <?xml version="1.0" encoding="euc-kr"?> <!-- XML 문서 구조 --> <students> <student sid=“100”> <name>홍 현</name> <age>30</age> <address>서울 면목동</address> <student> ... </students> XML 선언부 주석 최상위 요소 속성 요소 1. XML 문서 구조 • XML 문서 구조 • XML 문서 형태

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

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

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

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

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

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

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

  11. 1. XML 문서 구조 • XML 요소를 잘못 표현하는 사례 • XML 문서의 본체 부분은 반드시 한개의 최상위 요소가 있어야만 한다. • 요소를 나타내기 위한 시작태그와 종료태그는 반드시 한 쌍으로 존재해야 한다. • 다른 요소의 시작태그나 종료 태그를 겹치지 말아야 하며, 이름 부여 규칙에 적합해야 한다.

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

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

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

  15. 2. 개체 참조, CDATA, 처리 명령어 • 개체 참조명 • 사용 예 <students> <student> <sid>100</sid> <name>홍 현 </name> <study> &lt;과목 &gt; XML </study> </student> </students>

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

  17. 2. 개체 참조, CDATA, 처리 명령어 • CDATA • CDATA 섹션 내의 문자나 기호는 태그 형식이나 코드로 인식하지 않고 그대로 문자 형식으로 취급 • 특수기호가 많은 경우 CDATA 섹션을 사용하면 유용 <![CDATA[ ..... ]]>

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

  19. 2. 개체 참조, CDATA, 처리 명령어 • CDATA를 사용할 때 주의할 사항 • ‘<![CDATA[’사이나 ‘]]>’사이에 공백을 쓸 수 없다. • CDATA 섹션 안에 CDATA 섹션을 포함하지 않아야 한다. • 키워드 CDATA는 반드시 대문자를 사용한다. • CDATA 구역은 요소 컨텐츠 내의 문자 데이터 어디에나 삽입할 수 있다. 단, XML 마크업(태그) 내에서는 사용할 수 없다.

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

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

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

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

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

  25. 3. 네임스페이스 개념과 사용 • 접두사를 사용한 네임스페이스 선언 • 네임스페이스 접두사는 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

  26. 3. 네임스페이스 개념과 사용 • 접두사를 사용한 네임스페이스 선언한 예 <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>

  27. 3. 네임스페이스 개념과 사용 • 여러 개의 접두사를 사용해서 네임스페이스를 선언한 예 <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>

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

  29. 3. 네임스페이스 개념과 사용 • 요소 네임스페이스 선언 예 <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>

  30. 3. 네임스페이스 개념과 사용 • 속성에 네임스페이스 선언 • 형식 • 선언 예 <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>

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

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

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

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

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

  36. 4. 객체지향과 XML 설계 • 3_1단계: 분석된 객체 정보로 트리 제작 • 3_2: 요소에 대한 정형화된 데이터 작성

  37. 4. 객체지향과 XML 설계 • 4단계: 요소명과 속성명 정의

  38. 4. 객체지향과 XML 설계 • 5단계: 코딩 <?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>

More Related