본문 바로가기
전공공부/XML

XML 엘리먼트와 속성, 주석, 프로세싱 지시자

by 으노으뇨 2022. 4. 27.
728x90
반응형
SMALL

엘리먼트

엘리먼트 내용

속성

주석

프로세싱 지시자


1. 엘리먼트

1. 엘리먼트 작성 문법
  • 모든 XML 문서는 단 하나의 루트 엘리먼트(root element)를 가짐
  • 시작 태그와 끝 태그로 구성됨
    - 태그명은 동일해야 함
  • 부가적인 정보를 나타내는 속성(attribute)을 가질 수 있음
  • 시작 태그와 끝 내그 사이에는 엘리먼트(element)와 실질적인 내용(content)이 옴
    - 문자 데이터 및 자식 엘리먼트(element)가 올 수 있음

엘리먼트의 구성요소

2. 엘리먼트의 종류

ㄱ. 내용을 가지는 엘리먼트

ㄴ. 내용이 없는 빈 엘리먼트

3. 엘리먼트 작성 시 주의할 점

ㄱ. 시작 태그와 끝 태그는 반드시 짝을 이루어야 함

내용이 없는 빈 엘리먼트는 시작 태그의 끝에 / 를 붙여주어 시작태그인 동시에 끝 태그임을 표시함 <image></image>
<image />

ㄴ. 속성은 반드시 속성명 = 속성값 형태로 두 개 이상 올 수 없음

<image src ="C:\img\img1.gif" / >

ㄷ. 태그를 나타내는 < 문자는 엘리먼트 내용인 문자 데이터 및 속성값으로 사용할 수 없음

> 문자는 사용해도 되지만 가급적 사용하지 않음 <title>Java<XML</title>

ㄹ. 태그 이름 중간에는 공백 문자가 올 수 없으며, 시작 태그와 끝 태그 이름은 같아야 함

한 엘리먼트에 같은 속성명은 두개 이상 올 수 없음  <auth or>홍길동 </auth or>

ㅁ. 엘리먼트는 중첩되어 작성될 수 없음

시작 태그와 끝 내그 사이에 다른 엘리먼트의 시작 태그가 존재할 수 없음을 의미함 잘못된 예
<author>
<publisher>
김은호 
</author>
홍길동
</publisher>

ㅂ. 태그 이름은 이름 작성 규칙을 따라야 함

이름 작성 규칙
1 이름은 문자로 시작할 수 있지만 숫자나 " -" , " . " 으로 시작할 수는 없음
2 두 번째 문자부터는 숫자 및 " - " , " . " 도 가능함
3 태그 이름에 공백을 포함시킬 수 없음
4 " : " 문자는 쓸 수는 있지만 네임스페이스에 관련된 기호이므로 사용하지 않음
5 태그 이름은 대소문자를 구별하므로 철자가 같다고 해서 같은 태그가 아님
6 시작 태그의 " < " 다음에 공백 문자가 올 수 없으며, 시작과 종료 태그 이름은 같아야 함
태그 이름은 이름 작성 규칙을 따라야 함
올바른 예 잘못된 태그의 예
<book>
<_book>
<책>
<book_1>
<book-1>
<book>
<7book> : 첫 글자는 숫자를 사용할 수 없음
<c++> : " _ " , " - " , " . " , " : " 이외의 특수 문자는 사용할 수없음
<book list> 태그 이름에 공백을 사용할 수 없음
< book> " < " 다음에 공백을 두어서는 안됨

2. 엘리먼트 내용

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

2. 문자 데이터
문자 데이터 XML 프로세서가 해석할 수 있는 내용 중에서 마크업을 제외한 부분

XML 1.0 권고안의 마크업(markup)

XML선언 <? xml version="1.0"?>
문서 유형 선언 <!DOCTYPE booklist SYSTEM :bml.dtd">
프로세싱 지시자 <?xml-stylesheet type="text/xsl" href ="bml.xsl"?>
주석 <!-- 주석 내용 -->
시작 태그 및 끝 태그 <book> </book>
빈 엘리먼트 태그 <image src="C:\img\img1.gif" />
엔티티 참조 DTD 에 정의되어 있는 엔티티 참조 (&pub1)
문자 참조 &#10진수;   &#16진수;
CDATA 섹션 구분자 <![CDATAp[문자 데이터 ]]>
최상위 공백 문자열 XML 문서 구성요소 중 루트 엘리먼트 외부에 있는 공백 문자열
text 선언 <?xml version="1.0" encoding="euc-kr"?>

문자 데이터 내에는 &문자와 < 문자를 사용할 수 없음

& 문자 엔티티 참조의 시작을 의미함
< 문자 엘리먼트의 태그, CDATA 섹션의 시작을 의미함

빌트인 엔티티의 참조 또는 문자 참조로 사용이 가능함

문자 엔티티 참조 문자 참조 사용 예
& &amp; 16진수 (&#x26;)
10진수 (&#38;)
<title XML &amp; JAVA</title>
< &lt; 16진수 (&#x3C;)
10진수 (&#60;)
<식>3 &lt; 5 </식>
<식>3 &#x3C; 5 </식>
> &gt; &#x3E;  &#62; <식>5 &gt 3</식>
속성값에 > 문자를 삽인할 경우
" &quot; &#x22;  &#34; <book kind="&qout; computer &qout;">
속성값에 " 문자를 삽입할 경우
' &apos; &#x27;  &#39; <book kind ='mincheol&apos;sbook'>
속성값에 ; 문자를 삽입할 경우
3. 자식 엘리먼트

엘리먼트 내용으로 자식 엘리먼트를 포함할 수 있음

4. 엔티티 참조(Entity Reference)

ㄱ. 자주 쓰이는 내용을 엔티티로 정의함

ㄴ. XML 문서에서 엔티티로 정의된 내용과 동일한 내용이 작성되어야 할 부분에 엔티티 참조를 사용함

DTD 문서에서 ENTITY 참조 : <!ENTITY kr "대한민국">
5. 문자 참조 (Character Reference)
문자 참조 문자 집합 코드표상에 언급되어 있는 코드값을 직접 사용하여 문자를 나타내는 것

&#x(16진수 코드값); 또는 &#(10진수 코드값);

문자 16진수 10진수
스페이스 &#x20; &#32;
 텝 &#x9; &#9;
6. CDATA 섹션
PCDATA(Parsed Character DATA) 대부분의 문자 데이터
XML 파서가 해석하는 데이터
CDATA 섹션 내에 정의된 문자 데이터 XML 프로세서가 해석하지 않고 바로 응용프로그램에게 전달함
문법 : <![CDATA[ 문자 데이터 ]]>
7. 프로세싱 지시자

사용목적 

  • 문서 서두 부분에 기술되어 응용프로그램이 XML 문서를 처리하기 위한 정보 전달에 사용함
    -> 일반적으로 엘리먼트의 내용 content 부분에는 프로세싱 지시자가 오지 않는다.
  • 가장 많이 사용하는 처리 명령어는 CSS와 XSL을 적용하기 위한 처리 명령어임
스타일 처리기에 'href="ex.css" type="text/css" ' 라는 명령을 전달함 <?xml-stylesheet 'href="ex.css" type="text/css"?'
nameprocessor에 'SELECT * FROM emp ' 라는 명령을 전달함 <?nameprocessor SELECT * FROM emp ?>
MyApp1에 'parm1="v1" parm2="v2" ' 라는 명령을 전달함 <?MyApp1 param1="v1" parm2 ="v2" ?>
8. 공백문자열(white space)
공백 문자열 하나 이상의 공백 문자들로 구성된 문자열
XML 1.0 권고안 스페이스(#x20), 탭(#x9), 캐리지 리턴(#xd), 라인 피드(#xa)만을 공백 문자로 분류하고 있음
XML 프로세서 공백 문자열을 하나의 공백 문자로 취급함

3. 속성

1. 속성 작성 문법
속성
(attribute)
엘리먼트에 부가적인 정보를 줄 수 있음
속성명 = 속성값으로 표기함
'=' 앞과 뒤에 공백을 둘 수 있음
한 개의 앨리먼트는 같은 속성명을 2번 이상 기술할 수 없음
<시작태그명 속성명 = " 속성값 " 또는 속성명 ='속성값'>
내용
</끝태그명>
속성 작성 문법
속성명 XML 권고안에 언급되어 있는 이름 작성 규칙을 따라야 함
<book id = 'id' kind = '컴퓨터'>
<image src = 'background.gif' />

4. 주석

주석 XML 문서를 작성하는 사람은 물로 XML 문서를 읽는 사람이 좀 더 쉽게 이해할 수 있도록 덧붙인 설명
<!-- 주석은 이렇게 되는 것이다 -->

5. 프로세싱 지시자

프로세싱 지시자
(processing instruction)
해당 XML 문서를 처리하는 응용프로그램에게 XML 문서의 처리 방법을 지시하는 내용을 담고 있음
<?타깃이름 지시자?>

타깃 - 타깃 이름

  • 태그 이름 작성 규칙과 동일함
  • 프로세싱 지시자를 처리하는 응용프로그램을 식별하는 역할을 함
  • 지시자는 해당 응용프로그램이 어떻게 문서를 처리하는지에 대한 내용임
728x90
반응형
LIST

'전공공부 > XML' 카테고리의 다른 글

DTD 개요, 문법  (0) 2022.05.02
표기법과 XML문서의 구조  (0) 2022.04.24
XML 문서의 종류  (0) 2022.04.24
XML 이란?  (0) 2022.04.24

댓글