HTML과 마찬가지로 XML 요소도 태그 시작 부분에 요소 속성을 가질 수 있습니다.
속성은 일반적으로 요소에 대한 몇 가지 추가 정보를 포함합니다.
XML 속성
XML 요소는 속성을 가질 수 있습니다.
다음 HTML 코드를 기억해야 합니다: . src는 img 요소의 속성이며 img 요소에 대한 추가 정보를 제공합니다.
HTML(및 XML)에서 요소의 속성은 요소에 대한 추가 정보를 제공합니다.
<img src="computer.gif"> <a href="demo.asp">
문자는 일반적으로 데이터의 일부가 아닌 정보를 제공합니다. 다음 예에서 유형은 데이터와 아무 관련이 없지만 이 요소를 작동하는 소프트웨어에는 매우 중요합니다.
<file type="gif">computer.gif</file>
인용 스타일 "female" 또는 'female'?
속성 값을 인용해야 합니다. 작은따옴표와 큰따옴표를 모두 사용할 수 있습니다. 예를 들어, 사람의 성별, person 요소는 다음과 같이 쓸 수 있습니다:
<person sex="female">
또한 다음과 같이 쓸 수 있습니다:
<person sex='female'>
위의 내용은 다음과 같습니다. 두 가지 작성 방법은 일반적으로 차이가 없으며 큰따옴표를 사용하는 것이 더 일반적입니다. 그러나 다음 예와 같이 일부 특별한 경우에는 작은따옴표를 사용해야 합니다.
<gangster name='George "Shotgun" Ziegler'>
하위 요소 또는 속성 사용
데이터는 하위 요소에 저장되거나 속성에 저장됩니다.
다음 예를 살펴보세요.
<person sex="female">Anna Smith female Anna Smith
첫 번째 예에서는 sex가 속성이고, 두 번째 예에서는 sex가 하위 요소입니다. 두 예제 모두 동일한 정보를 제공합니다.
속성을 사용할 때와 하위 요소를 사용할 때 따라야 하는 미리 정해진 규칙은 없습니다. 내 경험에 따르면 속성은 HTML에서 매우 편리할 수 있지만 XML에서는 속성을 피하는 것이 더 좋습니다.
내가 좋아하는 스타일
저는 데이터를 하위 요소에 저장하는 것을 선호합니다.
다음 세 개의 XML 문서에는 동일한 정보가 포함되어 있습니다.
첫 번째 예에서는 데이터 속성을 사용합니다.
<note date="12/11/99"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
두 번째 예에서는 데이터 요소를 사용합니다.
<note> <date>12/11/99</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
세 번째 예에서는 확장 데이터 요소를 사용합니다. (이것이 제가 권장하는 스타일입니다.):
<note> <date> <day>12</day> <month>11</month> <year>99</year> </date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
속성을 사용하지 않으시겠습니까?
속성은 피해야 할까요?
다음은 속성 사용으로 인해 발생하는 몇 가지 문제입니다.
속성은 여러 값을 포함할 수 없습니다(하위 요소는 가능).
속성은 확장하기 쉽지 않습니다.
속성은 구조를 설명할 수 없습니다(하위 요소는 가능).
속성은 프로그램 코드로 처리하기 어렵습니다.
속성 값은 DTD를 통해 테스트하기 어렵습니다.
속성을 사용하여 데이터를 저장하는 경우 작성된 XML 문서는 읽고 조작하기 어려워야 합니다. 데이터를 설명하는 데 요소를 사용하고, 데이터와 거의 관련이 없는 추가 정보를 설명하는 데에만 속성을 사용하세요.
아래 예시처럼 하지 마세요. (그러면 위의 내용을 이해하지 못한 것입니다.)
<note day="12" month="11" year="99" to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!"> </note>
속성 규칙의 예외
규칙에는 항상 예외가 있습니다.
속성에 관한 규칙에는 예외가 있습니다.
때로는 HTML의 name 및 id 속성과 마찬가지로 특정 XML 요소를 참조하고 액세스할 수 있는 요소에 대한 ID 참조를 지정해야 합니다. 다음 예를 참조하십시오.
<messages> <note ID="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note ID="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not!</body> </note> </messages>
위 예에서 ID 속성은 카운터 또는 XML 문서의 다양한 메모 정보를 식별하는 고유 식별자와 동일합니다. 메모 메시지의 일부입니다.
우리가 독자들에게 설명하려는 것은 메타데이터(데이터와 관련된 데이터)는 속성의 형태로 저장되어야 하고, 데이터 자체는 요소의 형태로 저장되어야 한다는 것입니다.