Meta-data 저장을 위한 검토 중, 흥미로운 글을 찾아 소개해 드립니다.
XML은 Element와 Attribute요소로 구성되어 있고, data는 어떤 형태로든 저장할 수 있습니다.
(이것이 best practice를 찾는데 혼란을 가져오는 요소입니다.)
W3school에서는 data인 경우에는 element로 저장할 것을 권장하고 있으며, 다음의 이유를 들고 있습니다.
Attribute를 피해야 하는 이유
- Multiple values를 포함할 수 없다.
- 쉽게 확장할 수 없다.
- Structure를 표현할 수 없다.
- 개발하기 어렵다.(번거롭다 정도로 해석할 수 있을 듯 합니다.)
- DTD에 대해서 테스트하기 어렵다.
예외적으로 Attribute를 사용하는 경우
- ID의 경우
Conclusion
MS platform의 XAML, xxx.config파일을 보더라도 attribute를 적절하게 사용하고 있습니다.
Bool값, identity의 경우는 attribute를 사용하는 것이 괜찮다고 판단됩니다.
(예, ReadOnly / ID / Name)
또한, DTD에서 AttributeList를 선언하는 것으로 enum과 같은 형태의 data입력의 무결성을 확보할 수 있는 장점이 있습니다.
(예, Gender: Male/Female, Warcraft: Human/Orc)
Source code차원에서 자료형이 Bool이거나 ID값에 대해서는 attribute를 쓰는 것을 기본으로 하되,
DTD를 선언하는 경우 enum 또한 추가적으로 attribute를 쓰고 이외의 모든 경우에는 element를 사용하는 게 좋아 보입니다.
References
'Programming > XML' 카테고리의 다른 글
Export excel file via Asp.NET MVC, using OpenXml (0) | 2015.09.08 |
---|---|
BOM issue (65279 '') (0) | 2014.11.25 |
XML vs. Json comparison (0) | 2014.07.22 |
How to handling MS excel file (0) | 2014.07.22 |