<img src="computer.gif"><a href="demo.html">
속성은 종종 데이터의 일부가 아닌 정보를 제공합니다. 다음 예에서 파일 형식은 데이터와 아무 관련이 없지만 이 요소를 처리해야 하는 소프트웨어에는 중요합니다.
<file type="gif">computer.gif</file>
속성 값은 따옴표로 묶어야 하지만 작은따옴표와 큰따옴표를 모두 사용할 수 있습니다. 예를 들어, 사람의 성별, person 요소는 다음과 같이 작성할 수 있습니다.
<사람의 성별="여성">
또는 이것도 작동합니다:
<사람 성별='여성'>
속성 값 자체에 큰따옴표가 포함된 경우 다음 예와 같이 작은따옴표를 사용할 수 있습니다.
<갱스터 이름='조지 "샷건" 지글러'>
또는 문자 엔터티를 사용할 수 있습니다.
<person sex="female"><firstname>Anna</firstname><lastname>Smith</lastname></person>
<person><sex>여성</sex><firstname>Anna</firstname><lastname>Smith</lastname></person>
우선 섹스는 재산이다. 두 번째 경우에는 섹스가 하나의 요소입니다. 두 인스턴스 모두 동일한 정보를 제공합니다.
속성을 사용할 시기와 요소를 사용할 시기를 알려주는 규칙은 없습니다. 내 경험에 따르면 HTML에서는 속성을 사용하는 것이 매우 편리하지만 XML에서는 속성 사용을 피해야 합니다. 정보가 데이터와 비슷하다고 느껴진다면 요소를 사용하세요.
다음 세 개의 XML 문서에는 정확히 동일한 정보가 포함되어 있습니다.
날짜 속성은 첫 번째 예에서 사용됩니다.
<note date="10/01/2008"><to>Tove</to><from>Jani</from><heading>알림</heading><body>이번 주말에 저를 잊지 마세요!</body ></note>
두 번째 예에서는 날짜 요소를 사용합니다.
<note><date>2008년 10월 1일</date><to>Tove</to><from>Jani</from><heading>알림</heading><body>이번 주말에 저를 잊지 마세요! </body></note>
세 번째 예에서는 확장된 날짜 요소를 사용합니다(제가 가장 좋아하는 요소입니다).
<note><date><day>10</day><month>01</month><year>2008</year></date><to>Tove</to><from>Jani</from> <heading>알림</heading><body>이번 주말에 저를 잊지 마세요!</body></note>
속성 사용으로 인해 발생하는 몇 가지 문제:
속성은 여러 값을 포함할 수 없습니다(요소는 가능).
속성은 트리 구조를 포함할 수 없습니다(요소는 가능).
속성은 쉽게 확장할 수 없습니다(향후 변경을 위해).
속성을 읽고 유지 관리하기가 어렵습니다. 데이터를 설명하기 위해 요소를 사용해 보십시오. 대신, 데이터 독립적인 정보를 제공하기 위해 속성을 사용하세요.
다음과 같은 어리석은 짓을 하지 마십시오. (이것은 XML을 사용하는 방식이 아닙니다.)
<note day="10" Month="01" year="2008"to="Tove" from="Jani" Heading="Reminder"body="이번 주말에 저를 잊지 마세요!"></note>
때때로 ID 참조가 요소에 할당됩니다. 이러한 ID 인덱스는 HTML의 id 속성과 동일한 방식으로 XML 요소를 식별하는 데 사용할 수 있습니다. 이 예에서는 이러한 상황을 보여줍니다.
<messages><note id="501"><to>Tove</to><from>Jani</from><heading>알림</heading><body>이번 주말에 저를 잊지 마세요!</body> </note><note id="502"><to>Jani</to><from>Tove</from><heading>답장: 알림</heading><body>하지 않겠습니다</body></ 참고></메시지>
위의 id 속성은 다른 메모를 식별하는 데 사용되는 식별자일 뿐입니다. 노트 데이터의 일부가 아닙니다.
여기서 우리가 전달하려는 아이디어는 메타데이터(데이터에 관한 데이터)는 속성으로 저장되어야 하고, 데이터 자체는 요소로 저장되어야 한다는 것입니다.
요약 XML 속성이 따라야 하는 규칙은 다음과 같습니다.
속성 이름은 동일한 시작 태그 또는 빈 요소 태그에 한 번만 나타날 수 없습니다.
속성 시트에 선언된 DTD(문서 유형 정의)를 사용하여 속성을 선언해야 합니다.
속성 값에는 외부 엔터티에 대한 직접적 또는 간접적 엔터티 참조가 포함될 수 없습니다.
직접 또는 간접 속성 값이라고 하는 엔터티의 대체 텍스트에는 기호 미만을 포함할 수 없습니다.