Upload
nelly
View
77
Download
0
Embed Size (px)
DESCRIPTION
XML 문서 작성 방법. 2008.9.2 최진명. XML 문서의 종류. 잘 짜인 문서 (Well-Formed XML Document) XML 1.0 권고안에 언급되어 있는 문법 (Spec) 을 잘 지켜서 작성된 문서 시작태그와 끝 태그가 있어야 함 반드시 하나의 루트 element 가 있어야 함 영역 중복이 없어야 함 속성값은 반드시 따옴표로 지정. XML 문서의 종류. 유효한 문서 (Valid Document) Well-formed 문서이면서 - PowerPoint PPT Presentation
Citation preview
XML 문서 작성 방법
2008.9.2
최진명
XML 문서의 종류• 잘 짜인 문서 (Well-Formed XML
Document)– XML 1.0 권고안에 언급되어 있는 문법 (Spec) 을 잘
지켜서 작성된 문서– 시작태그와 끝 태그가 있어야 함– 반드시 하나의 루트 element 가 있어야 함– 영역 중복이 없어야 함– 속성값은 반드시 따옴표로 지정
XML 문서의 종류• 유효한 문서 (Valid Document)
– Well-formed 문서이면서– XML 로 개발된 특정 마크업 언어에 맞게
작성된 문서• 구조를 정의한 문서 (DTD, Schema) 와 일치
EBNF
참고 사이트 : http://www.jelks.nu/XML/xmlebnf.html
EBNF 문법 :
기호 ::= 표현식 (symbol ::= Expression)
패턴 결합 :
A? A 표현이 올 수도 안 올 수도 있음 ( 옵션 )
A B A 표현이 먼저 오고 B 표현이 나중에 옴 ( 순차 )
A|B A 와 B 표현 중 하나만 와야 함 ( 선택 )
A-B A 표현이 와야 되지만 B 표현과는 일치되지 않아야 함
A+ A 표현이 최소한 한 개 이상이 와야 함
A* A 표현이 안 올 수도 있고 , 한 개 이상이 와도 됨
XML 문서 구조Document( 문서 ) ::= prolog( 서두 ) element( 엘리먼트 ) Misc( 기타 )*
• 서두– XML 선언 , 프로세싱 지시자 , 문서 유형 선언으로 구성
• 엘리먼트– 한 개의 엘리먼트 ( 루트 엘리먼트 ) 가 와야 함– 다른 엘리먼트는 루트 엘리먼트의 자식 ( 하위 )
엘리먼트로 작성
• 기타– 주석 , 프로세싱 지시자 , 공백으로 구성
XML 문서 구조<?xml version="1.0" encoding="euc-kr"?>
<!-- 문서 유형 선언 --><!DOCTYPE booklist SYSTEM "bml.dtd">
<!-- 문서의 구조를 xhtml 문서로 변경 --><?xml-stylesheet type="text/xsl" href="bml.xsl"?>
<booklist> <!-- 책 정보 --> <book id="b1" kind="k2"> <title>XML 기초서 </title> <author> 신민철 </author> <publisher> 프리렉 </publisher> </book> <book id="b2" kind="k1"> <title> 가을엔 사랑을 느끼세요 </title> <author> 이사랑 </author> <publisher> 가을문화사 </publisher> </book></booklist>
XML 선언• “<?xml” 로 시작해서 “ ?>” 로 끝남• version 속성 필수• encoding 과 standalone 속성 선택• version, encoding, standalone 순서
준수• 현재 xml 버전 : 1.0• XML 선언은 반드시 파일의 맨 처음에 위치
– 앞에 공백 및 빈 라인이 있으면 안됨
XML 선언<?xml version=“ 버전번호” encoding=“ 인코딩 방식” standalone=“yes|no”?>
• Version– XML 권고안의 버전 번호를 기술 ( 기술 필수 )
• Encoding– XML 문서를 저장할 인코딩 방식을 지정– 생략가능 (default 는 UTF-8)
• Standalone– XML 문서 해석 시 XML 파서 (Parser) 에게 외부 문서
참고 여부를 알려줌• Yes: 외부 DTD 문서를 참고할 필요 없음• No: XML 문서 해석 시 외부 문서를 참고해서 해석 (default)
XML 문서 예<?xml version=“1.0” encoding=“euc-kr” standalone=‘yes’?>
< 영화 >
< 제목 > 와이키키브라더스 </ 제목 >
< 감독 > 임순례 </ 감독 >
< 출연 > 류승범 , 이얼 , 박원상 </ 출연 >
</ 영화 >
XML 문서의 구조• XML 문서의 선언• Element• Attribute• Comment• CDATA• DTD 선언• Processing Instruction
Element( 엘리먼트 )< 시작 태그명 > 내용 ( 콘텐트 )</ 끝 태그명 >
• 내용– 문자 데이터 및 자식 엘리먼트 기술 가능
• 엘리먼트의 종류– 내용을 가지는 엘리먼트– 내용이 없는 엘리먼트 ( 빈 엘리먼트 )
• 형태 1: < 시작 태그 /> (p.92 참고 )• 형태 2: < 시작 태그 ></ 끝 태그 > (p.92 참고 ) * 형태 2 에서 시작 태그와 끝 태그 사이에 공백이
오면 안됨
< 참고 : p.91 그림 3-3 엘리먼트 구성 요소 >
Element 작성 시 주의점• 시작 태그와 끝 태그는 반드시 짝을 이룸
– 빈 엘리먼트는 시작 태그 끝 ‘ /’ 를 붙임• ‘<’ 문자는 엘리먼트 내용인 문자 데이터 및
속성값으로 사용 불가 ( 단 , ‘>’ 는 사용 가능 )
• ‘<’ 와 ‘ >’ 사이에 오는 시작 태그 이름 중에 공백 문자가 없수 없음– 종료태그 ‘ </’ 다음에 공백문자 올 수 없고 ,
반드시 시작 태그와 같은 이름이 와야 함• 엘리먼트는 중첩되어 작성할 수 없음
태그 이름 작성 규칙• 첫번째 글자는 한글 및 문자 (‘_’ 포함 ) 로 시작
– 숫자 또는 ‘ .’ 시작 불가• 두번째 문자는 숫자 및 ‘ _’, ‘-’, ‘.’ 등의 일부
특수문자 가능– ‘:’ 사용 가능하나 네임스페이스와 관련된 기호이므로
가급적 사용 자제– 공백 (blank) 문자 불가
• 태그명이 영문자인 경우 대소문자를 구분• ‘<’ 에 공백 문자 불가 및 종료태그인 ‘ </’ 에 공백
문자가 올 수 없고 , 시작 태그명과 같은 이름이 와야 함
• 태그명은 xml 로 시작할 수 없음
태그 이름 작성 규칙올바른 태그명 사용 예 :
<book>, <_book>, < 책 >, <book1>, <book-1>, <Book>
잘못된 태그명 사용 예 :
<7Book> 첫 글자가 숫자로 시작
<c++> ‘_’, ‘-’, ‘.’, ‘:’ 이외의 특수 문자를 포함
<book list> 태그명에 공백 문자 포함
< book> ‘<‘ 다음에 공백 문자 포함
<xml-book> 태그명이 xml 로 시작
Element 내용< 시작 태그 속성명 =“ 속성값” >
</ 끝 태그명 >
내용 ( 문자 데이터 또는 자식 엘리먼트 )
<book kind=“computer”>
</book>
문자 데이터 (Character Data)
자식 엘리먼트 (Child Element)
엔티티 또는 문자 참조 (Reference)
CDATA섹션 (Character Data Section)
프로세싱 지시자 (Processing Instruction)
주석 (Comment)
공백문자열 (White Space)
Attribute( 속성 )
• 속성은 하나의 요소와 결합된 이름 / 값의 쌍이다 .• 시작 태그에 추가• 속성은 반드시 값을 가짐• “ “ 또는 ‘ ‘를 사용• 하나의 요소 안에 들어있는 속성의 이름은
유일무이• Ex)
– < 영화 장르 =“ 액션” > 미션임파서블 </ 영화 >
Attribute 예
<?xml version=“1.0” encoding=“euc-kr”
standalone=‘yes’?>
< 영화 장르 =“액션” > < 제목 > 와이키키브라더스 </ 제목 >
< 감독 > 임순례 </ 감독 >
< 출연 > 류승범 , 이얼 , 박원상 </ 출연 >
</ 영화 >
Comment( 주석 )
• “<!--” 로 시작 “ -->” 로 끝• 태그 내에 주석을 쓸 수 없다• 주석 내에 “ --” 를 쓸 수 없다 .
Comment( 주석 ) 예
<?xml version=“1.0” encoding=“euc-kr”
standalone=‘yes’?>
< 영화 장르 =“액션” ><!-- 여기는 주석입니다 . -->
< 제목 > 와이키키브라더스 </ 제목 >
< 감독 > 임순례 </ 감독 >
< 출연 > 류승범 , 이얼 , 박원상 </ 출연 >
</ 영화 >
빈 요소 (Blank Element)
• Element 의 내용이 없는 경우 끝 태그를 생략하고 빈 요소를 사용 할 수 있음
• 빈 요소는 어떠한 내용도 포함 할 수 없으며 오직 속성만을 포함
• 빈 요소<middle/> (O)
<middle /> (O)
<middle/ > (X)
<middle / > (X)
< 브라우저 주석보이기 =“예” DTD체크 =“예” />
PCDATA
• Element 에 포함된 문자열• 유효하지 않은 PCDATA 문자들
– “<”, “&” 등– 해결 방법
• Escape 문자• CDATA 섹션
PCDATA : Escape 문자• Entity Reference
– & 문자 - &– < 문자 - <– > 문자 - >– ’ 문자 - '– ” 문자 - "
PCDATA : CDATA 섹션• 파서나 브라우저에서 유효성 검사를 하지
는 문자열 (error check 하지 않고 skip)• CDATA(Character DATA) 섹션
– “<![CDATA[” 로 시작 , “]]>” 로 끝<comparison>
<less><![CDATA[2<3]]></less>
<greater><![CDATA[4>3]]></greater>
</comparison>