XML tasarımının ilkeleri: IBM'den Uche Ogbuji'nin öğelerine karşı özniteliklere karşı ne zaman kullanılacağı muhtemelen bu konuda en iyi kaynaklardan biridir.
Kararın temelinde, niteliklerin 'tamamlanmış' şeyler olduğudur. Onları değiştiremez, değiştiremez veya iç içe geçiremezsiniz. Bunlar siparişten bağımsız ve element içinde farklıdır (aynı şeyden ikisine sahip olamazsınız).
Bu kısıtlamalardan herhangi biri değişebilecek şeylerse, verileri XML'in alt düğümü yapın.
Örneğinizde, adı ve yaşı olan bir kişiniz var. İlk, orta ve soyadım var ... ve bir takma adım var. Ve bazı insanların kızlık soyadları, birden fazla ikinci adı veya onurları var - John Ronald Reuel Tolkien'e böyle bir yapıya nasıl koyacaksınız ?
Ve böylece, onlara emri olan iki göbek adı olan birine sahibiz. Bu açıkça hayır, bir özniteliğin bunun için en iyi seçenek olmadığını göstermelidir.
Şu anda bulamıyorum, ancak yukarıdaki bağlantılı belgede, isimlerin, "İnsanların adlarının gelecekteki bir makalede biçimlendirmedeki muamelesini genişletmeyi umuyorum" ile sonuçlanan bir düşünce gerektiren şeyler olduğuna dair bir ifade var. Herhangi birinin bu konuda bir ipucu varsa, lütfen bir yorum bırakın veya bu noktada düzenleyin.
Öte yandan, yaş oldukça sabit bir yapıya sahip bir şeydir (bir tamsayı yerine doğum gününü öneririm). Bu nedenle, bu bilgiyi iyi bilinen ve anlaşılan bir formatta temsil etmek bir nitelikte mantıklıdır. Bir kişinin sadece bir doğum günü vardır ve korumak istediğiniz 'sipariş' yoktur.
Uche Ogbuji düzgün bir xml formatı tasarımında üç temel prensibi tanımlar. Aşağıdakiler, yukarıdaki bağlantılı belgenin kısaltılmış alıntılarıdır.
- Yapısal bilgi ilkesi
Eğer bilgiler yapılandırılmış bir biçimde ifade edilirse, özellikle yapı genişletilebilirse, elemanlar kullanın. Öte yandan: Bilgiler bir atomik belirteç olarak ifade edilirse, öznitelikleri kullanın
- Okunabilirlik ilkesi
Bilginin bir kişi tarafından okunması ve anlaşılması amaçlanıyorsa, öğeleri kullanın. Bilgiler bir makine tarafından en kolay anlaşılır ve sindirilirse, öznitelikleri kullanın.
- Öğe / nitelik bağlama ilkesi
Değerinin başka bir özellik tarafından değiştirilmesini istiyorsanız bir öğe kullanın
Ve böylece, isimler elementler olmalıdır - bunlar atomik bir jeton olmayan yapılandırılmış verilerdir, bir insan tarafından bir bilgisayardan daha çok okunmaları muhtemeldir ve ismin kendisinde başka bir özellik tarafından değiştirilebilirler.
Tarihler öznitelikler olmalıdır - bunlar bir atomik belirteç olan verilerdir, bir bilgisayar tarafından bir insandan daha fazla okunurlar (ve daha sonra gerekirse insanın tercih edilen biçimine dönüştürülürler ) ve son olarak başkaları tarafından değiştirilme olasılığı düşüktür. özellikleri.