본문 바로가기
프로그래밍

Well-Formed XML문서 만들기

by 건우아빠유리남편 2008. 12. 31.
반응형

Well-Formed XML 이 되려면 XML1.0스펙에 서술된 모든 정합성(Well-Formedness)규약을 만족해야 한다.

 

규약

- 시작 태그와 끝 태그가 일치해야 한다.

- 최상위(루트) 요소(Elemnet)는 오로지 한 개만 존재해야 한다.

- 태그를 지정할 때 대소문자를 구별한다.

- 하부 요소(Elements)는 중첩하여 사용할 수 없다.

- 속성(Attribute)에 설정되는 값은 반드시 인용부호를 사용해야 한다.

- 하나의 요소(Element)에서 속성(Attribute)를 반복하여 사용하지 않는다.

 

Element(요소) 의 의미

<name> NoteBook</name>  =>이게 하나의 요소

↑시작태그 ↑내용    ↑끝태그

 

태그 이름 작성 규칙

1. 이름은 문자(한글도 포함)로 할 수 있다. 그리고 특수문자 중에서는 언더바("_")로 시작 할 수 있다. 하지만 숫자나 구두점(.)으로 시작할 수는 없다.

2. 두 번째 문자부터는 "_"는 물론 특수문자 중에서 "-"나 "."도 가능하다. 숫자도 두번째 문자부터는 사용할 수 있다.

3. 태그 이름에 공백을 포함시킬 수 없다.

4. 특수문자 중에 ":"문자도 태그 이름에 포함할 수는 있지만 네임스페이스에 관련된 기호이므로 되도록 사용하지 않는것이 바람직하다.

5. 태그 이름은 대소문자를 구별하므로 철자(스펠링)만 같다고 같은 이름으로 혼동해서는 안 된다.

6. 태그의 시작을 알리는 "<" 기호 다음에 공백을 두어서는 안 된다. 반드시 "<" 기호 다음에 여백 없이 붙여서 써야 한다. 하지만 닫는 기호인 ">"는 공백이 있어도 상관없다.

7. 태그 이름은 xml로 시작할 수 없다.

 

속성(Attribute) 작성 규칙

1. 속성은 시작 태그에서 지정해 준다.

2. 속성은 속성 이름과 속성값이 한 쌍으로 이루어져야 한다.

3. 속성값은 반드시 단일 따옴표나 이중 따옴표로 둘러싸야 한다.

4. 시작 태그 내부에 여러 개의 속성들을 지정할 수 있는데 각각 서로 다른 속성이어야 한다.

 

xml에서의 주석 

 <!-- 여기에 주석 사용 --!>

 

빈 요소(Empty Element) 사용시

<img src = "btn.jpg"></img>

를 다음과 같이 사용할 수 있다.

<img src = "btn.jpg" />

 

XML문서의 선언 규칙

1. xml 선언은 "<?xml" 문자로 시작하여 "?>"로 끝나야 한다.

2. xml 선언할 때 "<?"와 "xml"은 띄어쓰지 못한다.

3. xml 선언은 최소한 xml과 version이 삽입되어 있어야 한다.

4. encoding과 standalone은 선택적이다.

5. 속성은 반드시 다음 순서대로 기술되어야 한다.

 version -> encoding -> standalone

6. XML 선언은 반드시 문서의 맨 처음에 와야한다. 어떠한 공란도 허용되지 않고, XML 문서의 맨처음 문자는 반드시 xml선언의 시작을 알리는 "<"이어야 한다.

 

처리 지시문

PI란 Processing Instruction의 약자이다. 우리말로는 [처리 지시문]

PI는 현재 XML 문서들이 어떠한 형식으로 처리해야할 것인가에 대한 사항을 애플리케이션(웹 브라우저)에 알려주는 역할을 한다. 처리 지시문의 형식은 '<?'로 시작하여 '?>'로 끝나고 이 사이에 적을 내용은 PITarget(애플리케이션 이름)과 지시사항들이다

<?xml:stylesheet type="text/xsl" href ="xs04.xsl"?>

여기서 xml:stylesheet가 지시를 처리할 애플리케이션 이름(PITarget)이고. type="text/xsl" href="xs04.xsl"은 PITarget이 처리할 지시사항이다.

 

PCDATA 와 CDATA

PCDATA란 Parsed Character DATA의 약자이고 CDATA는 Character DATA의 약자이다. 즉...

PCDATA와 CDATA를 구분하는 기준은 XML파서에 의해 파싱되느냐 안되느냐 하는것이다. PCDATA는 XML 파서에 의해 파싱되고 CDATA는 파싱되지 않는다.

<Name>         NoteBook          </Name>

↑시작 태그     ↑PCDATA(내용)   ↑끝 태그

 

다음과 같은 특수문자는 PCDATA안에 있으면 구문오류가 난다.

<,>,&,",'
사용하기 위해서는 직접 쓰지말구 &amp; &lt; &gt; &quot; &apos; 로 사용 하는 방법과 CDATA를 사용하는 방법이 있다

CDATA는 XML파서가 파싱하지 않는 데이터로 이안에 들어간 문자는 XML파서가 파싱하지 않는다.

<tag> <! [CDATA [파싱하지 말아야할 데이터]]></tag>

 

 

 

반응형

'프로그래밍' 카테고리의 다른 글

DTD 규칙  (0) 2009.01.09
Vaild XML 문서란 - DTD에 대한 필요성  (0) 2009.01.09
XML의 네임스페이스  (0) 2008.12.31
xml 예제  (0) 2008.12.31
XML 소개  (0) 2008.12.31

댓글