xml 기본 문법

호수·2021년 4월 22일
0

etc

목록 보기
5/5

XML 문서

▪정형화된 XML 문서
루트 엘리면트 존재
엘리먼트는 시작태그와 종료 태그를 가짐
시작 + 종료
엘리먼트들은 서로 올바르게 중첩

▪유효한 XML 문서
-정형화된 문서 + XML로 정의된 특정 마크업 언어[DTD/XML Schema]에 의해 작성된 문서

▪XML 문서 구조
BNF

XML ::= 서두(prolog), (루트)엘리먼트, 기타(Misc)
서두 ::= XML 선언(XMLDecl)?, 문서 유형 선언(doctypedecl)?
?생략가능

기타부분 ::= 주석, PI, S(공백)
Misc ::= Comment | PI | S

엘리먼트 ::= 건텐트를 가질 수 있음, 컨텐트는 문자데이터, 자식 엘리먼트, 참조, CDATA Section, PI, 주석

[1]document ::=prologelementMisc
[22]prolog::=XMLDecl? Misc
(doctypedecl Misc)? [23]XMLDecl ::=''
[27]Misc::=Comment | PI | S
[39]element::=EmptyElemTag | STag contentETag [WFC: Element Type Match][VC: Element Valid]
I(또는) STag시작 ETag끝 이름이 같아야함.
[43]content::=CharData? ((element| Reference | CDSect | PI | Comment) CharData?)

CharData문자데이터
*여러개

element

<booklist>시작태그 , 포함관계/중첩
<book id="b1" kind="k2"> book element , id/kind 속성 bookist 사이 content
<title>XML 기초서</title>
<author>신민철</author>
<publisher>프리렉</publisher>
</book>
<book id="b2" kind="k1">
<title>가을엔사랑을느끼세요</title>
<author>이사랑</author>
<publisher>가을문화사</publisher>
</book>
</booklist>끝태그코드를 입력하세요

booklist element
그 사이는 content
bool element

▪XML 선언(declaration)

-XML문서임을 명시적으로 표현
-XML 문서의 첫 줄 [주석문 먼저X]
-‘<?’와 ‘xml’ 문자열 사이에 공백 X

ML 선언부
속성
(1) version
“1.0” ‘1.1’ 1.0많이 씀, 큰따옴표나 작은따옴표
(2)encoding
UTF-8
(3)standalone
외부에 정의된 DTD문서의 참조 필요 여부를 표시
default: no
독립적이니? 독립적 = 외부 필요 없음
yes-> DTD 필요없다.

XML 문서 인코딩
-XML 권고안 XML 문서 유니코드 UTF-8방식

  • 동일한 인코딩방법 <인코딩, 디코딩 같아야 하니 명시>
    주의: Windows는 EUC-KR를 완성형 한글 코드를 기본 인코딩 방법
    XML 웹을 통해 공유하기 위해서는 UTF-8을 사용하는 것이 바람직

참고:Character Encoding
문자코드: 문자->숫자 1:1로 저으이
예) 아스키- 영문자
KS C 5601: 한글. 2바이트 16비트를 사용해서 문자 표현
KS C 5636: 아스키 코드와 동일하나 역슬래시를 원화기호로 대체
EUC-KR: KS C5601 + KS C 5636 /영문자 1byte, 한글 2byte

유니크: 여러 언어의 인코딩 체계
유니코드 평면: 유니코드는 0번~16번까지 17개의 평면 , 각 평면읜 2^16개 코드 구성

기본 다국어 평면:
유니코드의 첫 번째 평면으로, U+0000부터 U+FFFF까지의 영역을 차지함.
거의 모든 근대 문자와 특수 문자가 표함
대부분은 한중일 통합 한자와 한글(U+AC00(가) ~ U+D7A3(힣))
그림 각 칸 문자 256개
검정 = 로마자
빨강 = 동아시아에서 쓰이는 문자
밝은 빨강 = 한중일 통합 한자

UTF-16
기본다국어평면은 그대로 2byte 값으로 인코딩함
나머지 평면들은 4byte 값으로 인코딩
영어 이외의 문자로 구성된 문서의 경우 UTF-8보다 크기를 줄일 수 있음
-UTF-8
가변길이 인코딩 방식(1byte~4byte)
기본다국어평면에서 영어는 기존 아스키문자코드를 그대로 사용(1byte)
나머지 문자들은 2~3byte로 인코딩함(한중일 문자:3byte)

보조 다국어 평면:
보조 상형 문자 평면: 대, 갑골

XML Element
루트 엘리먼트를 가짐
시작태그와 끝태그 한 쌍
시작태그와 끝태그 사이에는 엘리먼트의 내용으로 문자 데이터나 자식 엘리먼트 등이 올 수 있음
엘리먼트는 부가적인 정보를 나타내는 속성을 가질 수 있음.

PLAY정보

play element 검정 play content
act content 빨강
scene element 파랑 블록 content
title의 content Intro

POSTER 시작태그이자 종료태그
이미지 속성

엘리먼트의 종류
(1)내용을 갖는 엘리먼트
-문자 데이터나 자식 엘리먼트를 갖는 엘리먼트
//부모
자연과 인간//자식

(2)내용이 없는 빈 엘리먼트
-문자 데이터나 자식 엘리먼트를 갖지 않는 엘리먼트
보통 이름 속성 가짐

xml이름작성규칙
1. 시작
문자 (o), 숫자 . (x)
2. 두 번째 숫자
- . (o)
3. 공백(x)
4. : 가능하나 네임스페이스 관련 기호라 사용 권장x
5. 대소문자 구별
6. xml XML로 시작X
▪엘리먼트의 내용
문자 데이터
자식 엘리먼트
엔티티 또는 문자 참조
CDATA 섹션 프로세싱 지시자
주석
공백 문자열

자식 엘리먼트
-자식 엘리먼트를 포함할 수 있음

문자데이터
-XML프로세스가 해석할 수 있는 내용 중에서 마크업을 제외한 부분
예)<> 시작태그, xml 선언 등
▪문자 데이터 내에에는 & < 문자 사용할 수 없음

개체참조

문자참조
-문자코드 값을 직접 사용하여 문자를 나타냄
-특수기호나 특수만자를 사용할 때 유용

CDATA Section => xml 파서가 해석하지 않고 바로 전달

속성
-엘리먼트 부가적 정보 데이터 표현
-하나의 엘리면트 여러 속성 가능

  • 형식: 시작 태그의 일부로 표현
  • 구성요소 = 속성명=“속성값”

주의 사항
– 속성은 반드시 속성 값을 가져야 함
▪ 빈 문자열을 포함할 수도 있음 (“”)
– 속성값은 큰 따옴표(“)나 작은 따옴표(‘)를 사용해야 함
– 속성명 부여 방법은 엘리먼트의 태그명 부여 방법과 동일
▪ 대소문자를 구별
▪ ‘xml'이라는 문자열로 시작할 수 없음
▪ 숫자로 속성명을 시작할 수 없음
– 한 엘리먼트에 같은 이름의 속성을 두 개 이상 선언할 수 없음

주석문 <!-- -->

처리 명령어
처리 방법 지시함
형식

예:CSS, XSL

처리명령어
PI는 XML 문서의 어디든지 삽입할 수 있음
단. 마크업 내X
일반적으로 문서의 서두 부분

실습
XML Perspective
내장된 XML 예제 생성

XML 문서 편집
Source/Desgin 탭

XML 스키마 편집
DTD: 편집창과 Outline 뷰, Properties 뷰 이용
XML Schema: Source/Design탭, Outline 뷰, Properties 뷰 이용

편집으로는 가운데 편집창
오른쪽 상단 perspective 창열기. 열려있는 걸을 나타내는

오른쪽 키
Open Perspective – XML

invoice 주문서, 송장 같은
dtd 문법 정의 invoice 구조 정함

invoice.틔
선언
Invoice.dtd에 맞게 했는지

Invioce는 header라는 자식 element
date 날짜정보
월일년 문자데이터
header 속성가짐

profile
Back-End개발자 입문 과정 블로그🚀

0개의 댓글