XML 디자인의 원칙 : IBM의 Uche Ogbuji 가 제공하는 요소와 속성을 사용하는시기 는 아마도이 문제에 대한 최고의 리소스 중 하나 일 것입니다.
결정의 핵심은 속성이 '완료된 것'입니다. 변경하거나 수정하거나 중첩 할 수 없습니다. 순서는 독립적이며 요소 내에서 구별됩니다 (같은 것을 두 개 가질 수는 없습니다).
이러한 제약 조건 중 하나라도 변경 될 수있는 경우 데이터를 XML의 자식 노드로 만듭니다.
예를 들어, 이름과 나이를 가진 사람이 있습니다. 이름, 중간 이름, 성이 있고 닉네임이 있습니다. 그리고 어떤 사람들은 처녀 이름, 여러 개의 중간 이름 또는 명예를 가지고 있습니다. 어떻게 존 로널드 Reuel Tolkien 을 그러한 구조에 넣을 것 입니까?
그래서 우리는 그들에게 명령을 내리는 중간 이름을 가진 사람이 있습니다. 이것은 속성이 최선의 선택이 아니라는 것을 분명히 보여 주어야합니다.
현재이 문서를 찾을 수는 없지만 위의 링크 된 문서에는 이름이 "미래 기사에서 마크 업으로 사람들의 이름 처리를 확장하기를 희망합니다"라고하는 약간의 생각이 필요하다는 진술이 있습니다. 누구든지 이것에 대한 단서를 가지고 있다면, 의견을 남기 거나이 자리에서 편집하십시오.
다른 한편으로, 나이는 다소 고정 된 구조를 가진 것입니다 (정수보다는 생일을 제안합니다). 이와 같이,이 정보를 잘 알려져 있고 이해 된 형식으로 나타내는 것은 속성에서 의미가 있습니다. 사람은 단 하나의 생일을 가지고 있으며 당신이 보존하고 싶은 '주문'이 없습니다.
Uche Ogbuji는 xml 형식을 올바르게 디자인하는 데있어 세 가지 핵심 원칙을 식별합니다. 다음은 위의 링크 된 문서에서 인용 된 것입니다.
- 구조화 된 정보의 원칙
정보가 구조화 된 형태로 표현되는 경우, 특히 구조가 확장 가능한 경우 요소를 사용하십시오. 반면에 : 정보가 원자 토큰으로 표시되는 경우 속성을 사용하십시오.
- 가독성의 원칙 사람이
정보를 읽고 이해하려는 경우 요소를 사용하십시오. 기계가 정보를 가장 쉽게 이해하고 소화하는 경우 속성을 사용하십시오.
- 요소 / 속성 바인딩의 원칙
다른 속성으로 값을 수정해야하는 경우 요소를 사용하십시오.
따라서 이름은 요소 여야합니다. 즉, 원자 토큰이 아닌 구조화 된 데이터이며 컴퓨터보다 사람이 읽을 가능성이 높으며 이름 자체의 다른 속성으로 수정 될 수 있습니다.
날짜는 속성이어야합니다.-원자 토큰 인 데이터이며, 사람보다 컴퓨터가 읽을 가능성이 높으며 ( 필요한 경우 사람이 선호하는 형식으로 변환 될 수 있음 ) 마지막으로 다른 사람이 수정할 가능성이 없습니다. 그들에 대한 속성.