XML

XML

mangji2 2024. 3. 29. 21:16

3.XML 기본 문법

 정형화된 XML 문서

  -XML권고안에 정의된 XML 문서 생성 규칙을 잘 지켜서 작성된 문서

  -하나의 루트 엘리먼트 존재

  -각 엘리먼트는 시작태그&종료 태그 가짐

    ●ex)<student>...</student> or <student/>

 -엘리먼트들은 올바르게 중첩되어야 함

 

■  유효한 xml 문서

 -정형화된 문서 + xml로 정의된 특정 마크업 언어로 작성된 문서

 -정형화된 문서안에 유효한 문서 + 유효하지 않은 문서

 

■XML 문서 구조

 -document = prolog(서두 1) element(루트 엘리먼트 1) Misc*(기타 0or여러개)

 

 (1) XML 선언부(prolog)

 -<?xml version="버전번호" encoding(문서를 어느 언어로 변환 할건지)="인코딩방식" standalone

(외부 정의된 DTD문서 참조 필요 여부 표시,default는 no)="yes/no"?>

 -현재 작성중인 문서가 xml이다의 명시적 표현

 -반드시 xml선언은 첫줄(주석이 첫줄에 있어도 안됨)

 -<?xml로 시작,공백 x

 -xml 문서 생성,저장,출력 시 동일 인코딩 방법 적용해야함(기본 UTF-8)

 ※ 한글 windows는 EUC-KR을 확장한 완성형 한글코드를 기본 인코딩으로 

 

 (2) XML element

 -<element_name> element content</element_name>

 -기본 규칙

  .모든 xml문서는 단 하나의 루트 엘리먼트를 가짐

  .엘리먼트는 시작태그+끝태그 한 쌍 , 태그명 동일

  . 시작태그 + 끝태그 사이에는 엘리먼트의 내용(문자 data or 자식 엘리먼트)올 수 있음

  .엘리먼트는 속성 가질 수 있음

 -element 종류

  .내용을 갖는 엘리먼트(공백문자 하나만 들어있어도)   vs   내용이 없는 빈 엘리먼트

  .ex) <book><title>인간과자연</title></book> vs <image src=".."/>

  ※element 작성 시 주의 사항

  1.시작태그와 끝태그는 반드시 짝을 이뤄야함

  2.속성은 속성명="속성값"(' ')//한 element에 같은 속성명 사용금지

  3.'<' 문자는 엘리먼트 내용인 문자 data 및 속성값으로 사용 x

  4. 시작태그 '<'다음에 공백문자 올 수 x,시작&끝 태그 이름 같아야 함

  5. 엘리먼트들은 올바르게 중첩 & 태그 이름은 반드시 xml 이름 작성 규칙 따라야 함

 

   ●엘리먼트 내용으로 올 수 있는 것들 

      1) 문자 데이터 2) 자식 엘리먼트 ...3)CDATA 섹션 ect

   1)

     -xml이 해석 내용 중 마크업 제외 부분

     -&(entity 참조 시작),< 문자 사용 

    <xml 문서에서 특수문자를 표현하는 방법>

- 개체 참조

:미리 정의되어 있음

ex) <study> &lt; 과목 &gt; </styudy> - 문자 참조:문자 코드 값을 직접 사용하여 문자를 나타냄

 

3) CDATA section

-대부분 문자 data인 PCDATA는 XML파서 해석 

BUT 3)은 해석 x 바로 응용 프로그램에게 전달

ex) <!CDATA [ .....]]> :파서가 확인하지 않고 바로 전달.. 특수기호 많은 경우 이 섹션 사용

-공백 금지 ,CDATA안 다른 CDATA 섹션 포함 X , 반드시 대문자 사용

 

(3) XML 속성

- 엘리먼트의 부가정보나 data 표현 방법

- 1 element -> 여러개 속성 가질 수 있음

- 속성은 반드시 속성값 가져야 함

 

■처리 명령어

- 해당 xml 문서 처리 응용 프로그램에게 xml 문서 처리 방법을 지시함

- 형식

: <?name_processor instruction ?>

 

 

 

'XML' 카테고리의 다른 글

7.DOM  (0) 2024.04.25
6.XML Schema  (0) 2024.04.13
5.XML Namespaces  (0) 2024.04.12
4.DTD를 이용한 문서 구조 설계  (0) 2024.03.31