본문 바로가기
XML

XML 요소~속성

by 요리하다그만둠 2022. 7. 29.

XML 요소

 

XML 문서 구조

XML 문서는 크게 XMl 프롤로그 부분과 XMl 요소 부분으로 나눌 수 있습니다.

XMl 요소 부분은 하나 이상의 XML 요소로 구성됩니다.

 

XML 요소

XML 요소란 XML 문서를 구성하는 하나의 구성 요소로 정의할 수 있습니다.

각각의 XML 요소는 하나 이상의 다른 요소를 포함할 수 있습니다.

또한, 텍스트, 속성, 미디어 객체나 경우에 따라 이들 전부를 포함할 수도 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<school>
    <lecture category="application">
        <java>Java</java>
        <cpp>Cpp</cpp>
    </lecture>
    <lecture category="web">
        <php>PHP</php>
        <asp>ASP</asp>
    </lecture>
</school>

위의 예제에서 <java>, <cpp>, <asp> 요소는 각각 자신만의 텍스트를 가집니다.

<school> 요소와 <lecture> 요소는 다른 요소들을 포함합니다.

또한, <lecture>요소는 category라는 속성을 가집니다.

 

XML 요소 문법

XML 요소란 시작 태그부터 종료 태그까지의 모든 것을 가리킵니다.

XML 요소는 다음과 같은 문법을 사용하여 정의할 수 있습니다.

<요소이름 속성1="속성값" 속성2="속성값"... > 내용 </요소이름>

또한, 어떠한 내용도 가지지 않는 빈 요소(empty element)는 다음과 같이 정의할 수 있습니다.

<요소이름 속성1="속성값" 속성2="속성값"... />

빈 요소는 자신만의 내용을 가지지는 않지만, 요소에 대한 데이터를 저장할 수 있는 속성을 가질 수 있습니다.

 

XML 요소 이름의 작성 규칙

1.XML 요소의 이름은 영문자, 숫자, 하이픈(-), 언더스코어(_,underscore)와 점(.)만을 사용하여 작성해야 합니다.

2.XML 요소의 이름은 영문자의 대소문자를 구분합니다.

3. 반드시 영문자나 언더스코어(_)로 시작해야 하며, 공백을 포함할 수 없습니다.

4. 예약어인 xml, XML, Xml 등은 요소의 이름으로 사용할 수 없습니다.

5. 시작 태그의 이름과 종료 태그의 이름은 반드시 대소문자까지 동일해야 합니다.

 

XML 속성

XML 속성은 XML 요소에 대한 추가적인 정보를 제공해주며, 해당 요소의 특징을 정의합니다.

 

XML 속성은 다음과 같은 문법을 사용하여 정의할 수 있습니다.

<요소이름 속성1="속성값" 속성2="속성값"... >

XML 요소의 속성은 속성 명="속성 값"의 형태로 정의됩니다.

여기에 속성 값은 반드시 따옴표로 둘러싸여야 합니다.

 

요소와 속성의 차이점

예제 1 )
<student>
    <name>홍길동</name>
    <year>3</year>
    <major>컴퓨터공학</major>
</student>

 

예제 2 )
<student name="홍길동">
    <year>3</year>
    <major>컴퓨터공학</major>
</student>

위의 두 예제에서 이름(name)이라는 데이터를 하나의 XML 요소로, 하나는 XML 속성으로 표현하고 있습니다.

결과적으로 이 두 예제는 완전히 같은 정보를 제공합니다.

정보의 전달이라는 측면에서 보면 XML 요소로 표현하는 방법과 XML 속성으로 표현하는 방법에 큰 차이는 없습니다.

 

하지만 속성은 여러 개의 값을 가질 수 없으며, 요소처럼 손쉽게 확장할 수 없다는 단점을 가집니다.

또한, 속성은 XML 트리에 포함되지 않기 때문에 다양한 용도로 활용할 수가 없습니다.

 

XML 속성 이름의 작성 규칙

1.XML 속성의 이름은 하나의 요소 내에서 중복되어서는 안 됩니다.

2. 속성 값은 반드시 따옴표로 둘러싸여야 하며, 작은따옴표와 큰따옴표의 차이는 없습니다.

'XML' 카테고리의 다른 글

[Spring] Maven, pom.xml  (0) 2022.07.29
XML 네임스페이스~문서의 종류  (0) 2022.07.29
XML 문법~주석  (0) 2022.07.28
XML 개요~구조  (0) 2022.07.28