Fundamental Notes/XML

[XML] 2장. 구조와 문법

콩콩댕 2009. 3. 16. 15:06
반응형

들어가기 전에>>
Q1. 정형화(standardlization)의 일반적인 의미는?
정형화는 일정한 형식이나 틀에 맞게 작성한 구조를 말한다. 예를 들면, XML에서 시작태그가 있으면 끝 태그가 있어야 한다와 같은 일정한 형식에 맞춰 작성한 문서를 정형식 문서(Well-Formed Document)라고 한다.
Q2. XML에서 정형식 XML 문서와 유효한 XML문서의 차이점은?
정형식 XML문서는 SML문법에 맞춰 만들어진 문서를 말하며, 유효한 XML문서는 일정한 규칙을 별도로 만들어서 그 규칙을 적용한 문서를 말한다. 따라서 유효한 XML문서는 모두 정형식 XML문서라고 말할 수 있다.
이러한 별도의 규칙을 정의해서 만든 것을 DTD(Doucument Type Definition) 또는 XML스키마라고 한다.

01. XML 문서구조
XML 문서 구조는 정형화한 정형식 문서 구조다.

<? xml version="1.0" encoding ="euc-kr"?>
//1. XML 선언(XML declaration) 필요
//2. DTD, XML 스키마 선언, 네임스페이스 선언 올수 있음. 선택사항.
<!-- XML 문서 구조-->
//주석. 형태 : <!--내용-->. 주석의 내용에 '--'를 포함할수 없음. 선언부 이후면 아무곳이나 가능.
//단, 다른 요소의 내부에 표현 불가.

//3. Body. Body는 XML태그와 데이터로 구성 = 요소와 속성으로 구성. Body 시작↓
<students> //최상위요소. 요소란 태그(<>)로 둘러싼 데이터를 말함.

<student sid="100"> //속성. 속성은 요소에 부가적인 데이터를 나타내는 부분.
<name>홍현 </name> //요소1
<age>30</age> //요소2
<address>서울 면목동</address> //요소3
</student> //인스턴스 1개 끝. 인스턴스 : 최상위요소에 속한 하위 요소들 중 하나의 그룹.

<student sid="101">
...
</student>

</students>

1. XML 선언부
XML문서임을 선언하는 부분. 선언부는 반드시 입력해야함.
속성으로 버전, 인코딩을 지정한다. 속성순서 : xml, version
-'<?'와 'xml'사이에는 공백이 없어야 한다. :
<?xml version="1.0" encoding="UTF-8" standalone="yes or no">

-버전은 필수 속성 :
<?xml version="1.0" encoding="UTF-8" standalone="yes or no">

-인코딩은 여부 선택사항  :
<?xml version="1.0" standalone="yes or no"> //인코딩을 생략. 생략시 default 값은 UTF-8
<?xml version="1.0" encoding="UTF-8" standalone="yes or no"> //8비트 인코딩
<?xml version="1.0" encoding="euc-kr" standalone="yes or no"> //16비트 인코딩. 한글사용시 지정

-독립성 여부 선택사항 :
<?xml version="1.0" encoding="UTF-8" >
<?xml version="1.0" encoding="UTF-8" standalone="yes">
<?xml version="1.0" encoding="UTF-8" standalone="no">

예제2_1 : students_error_1.xml

<? xml version="1.0" encoding ="euc-kr"?>

<!-- XML 문서 구조-->

<students>
<student sid="100">
<name>홍현 </name>
<age>30</age>
<address>서울 면목동</address>
<student>
</students>


2. XML 요소
시작태그로 시작하여 종료태그로 끝남.
요소의 내용 부분을 PCDATA(Parsed Character DATA)라고 함.
<element_name> element context </element_name>

요소의 정의와 사용법
-요소명 대소문자 구분
-요소와 텍스트 데이터를  mix 가능.
<address> 서울
<dong> 면목동 </dong>
</address>
-빈 요소로 둘수 있다. → 시작태그와 종료 태그 통합 가능
<telephone> </telephone> → <telephone/>
-태그 overlap 허용 안함 ∵XML파서가 태그의 시작과 끝 인식 불가 → error 발생
-최상위 요소(루트 요소 or 문서요소)는 하나.

XML 이름 부여 규칙
-문자열을 'xml'로 시작 불가. 대문자로 또는 대문자포함이면 가능
-요소명 첫 문자는 문자나 _로 시작
-처음과 중간에 공백 사용 불가
-예약어 사용 불가

예제2_2 : element_error_1.xml
//반드시 한 개의 최상위 요소가 있어야만 함.
<?xml version="1.0" encoding = "euc-kr" ?>
<student>
<sid>100</sid>
<name>왕주연</name>
<age>22</age>
<address>서울 면목동</address>
</student>
<student>
<sid>200</sid>
<name>신지혜</name>
<age>23</age>
<address>서울 모르는동</address>
</student>




예제2_2 : element_error_2xml
//시작태그와 종료태그는 반드시 한 쌍으로 존재해야 함.
<?xml version="1.0" encoding = "euc-kr" ?>
<students>
<student>
<sid>100</sid>
<name>왕주연</name>
<age>22</age>
<address>서울 면목동</address>

</students>



예제2_3 : element_error_3.xml
//다른 요소의 시작태그나 종료태그 overlap하지 말아야하며, 이름부여규칙에 적합해야 함.
<?xml version="1.0" encoding = "euc-kr" ?>
<students>
<student>
<sid>100</sid>
<name>왕주연</name>
<age>22</age>
<address>서울 면목동</address>
</stu dent>
</students>


 

'Fundamental Notes > XML' 카테고리의 다른 글

[XML] XML 과 CSS 연결  (0) 2009.03.30