최신 웹 개발 튜토리얼
 

XML요소 대 속성


XML에서 자식 요소를 사용하여 속성을 사용할 때, 그리고시기에 대한 아무런 규정이 없다.


요소 대 속성의 사용

데이터는 하위 엘리먼트 또는 속성으로 저장 될 수있다.

이러한 예를 살펴 보자 :

<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

첫 번째 예제 섹스의 속성이다. 마지막으로, 성별 자식 요소입니다. 둘은 동일한 정보를 제공한다.

자식 요소를 사용하여 속성을 사용할 때, 그리고시기에 대한 아무런 규정이 없습니다. 내 경험이 속성은 HTML에 편리 있다고하지만, XML에 당신이 그들을 피하려고한다. 정보가 데이터 같은 느낌이 경우 자식 요소를 사용합니다.


즐겨 찾기 방법

I like to store data in child elements.

다음 세 XML 문서가 정확하게 동일한 정보가 포함

날짜 속성은 첫 번째 예에서 사용되는 :

<note date="12/11/2002">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

날짜 요소는 두 번째 예에서 사용된다 :

<note>
  <date>12/11/2002</date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

확장 된 날짜 요소는 세 번째에 사용됩니다 (THIS IS MY FAVORITE) :

<note>
  <date>
    <day>12</day>
    <month>11</month>
    <year>2002</year>
  </date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

속성을 사용하지 마십시오?

당신은 속성을 사용하지 않도록해야합니까?

속성으로 문제의 일부는 다음과 같습니다 :

  • 속성은 여러 값을 포함 할 수 없습니다 (child elements can)
  • 속성은 쉽게 확장 할 수 없습니다 (for future changes)
  • 속성은 구조를 기술 할 수 없다 (child elements can)
  • 속성 프로그래밍하기 더 어렵다
  • 값이 DTD에 대해 테스트가 용이하지 않은 특성

당신은 데이터의 컨테이너로 속성을 사용하는 경우, 당신은 읽고 유지하기 어려운 문서 끝. 사용하려고 elements 데이터를 설명 할 수 있습니다. 사용 데이터와 관련이없는 정보를 제공하는 전용 특성.

이처럼 끝나지 않는 (this is not how XML should be used) :

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

내 속성 규칙에 대한 예외

규칙은 항상 예외가 있습니다.

속성에 대한 내 규칙은 한 가지 예외가 있습니다 :

가끔 요소 ID 참조를 지정합니다. 이러한 ID 참조는 NAME 거의 같은 방법으로 XML 요소를 액세스하는 데 사용할 수 있거나 ID는 HTML 속성. 이 예제에서는이 보여줍니다

<messages>
<note id="p501">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

<note id="p502">
  <to>Jani</to>
  <from>Tove</from>
  <heading>Re: Reminder</heading>
  <body>I will not!</body>
</note>
</messages>

이러한 예에서 ID는 카운터 또는 고유 한 식별자의 XML 파일에서 다른 음을 확인하는, 그리고 음 데이터의 일부이다.

내가 여기서 말을 시도하고 메타 데이터입니다 (data about data) 속성으로 저장되어야하고, 그 데이터 자체는 요소로 저장해야합니다.