Nguyên tắc thiết kế XML: Khi nào sử dụng các yếu tố so với các thuộc tính của Uche Ogbuji từ IBM có lẽ là một trong những tài nguyên tốt nhất về vấn đề này.
Cốt lõi của quyết định là các thuộc tính là những thứ 'được thực hiện'. Bạn không thể thay đổi chúng hoặc sửa đổi chúng hoặc lồng chúng. Chúng là thứ tự độc lập và khác biệt trong thành phần (bạn không thể có hai thứ giống nhau).
Nếu bất kỳ ràng buộc nào trong số này là những điều có thể thay đổi, hãy biến dữ liệu thành nút con của XML.
Trong ví dụ của bạn, bạn có một người có tên và tuổi. Tôi có họ, tên đệm và họ ... và một biệt danh. Và một số người có tên thời con gái, nhiều tên đệm hoặc kính ngữ - làm thế nào bạn đặt John Ronald Reuel Tolkien vào một cấu trúc như vậy?
Và vì vậy chúng tôi có một người có hai tên đệm có thứ tự cho họ. Điều này sẽ cho thấy rõ rằng không, một thuộc tính không phải là lựa chọn tốt nhất cho việc này.
Hiện tại tôi không thể tìm thấy nó, nhưng trong tài liệu được liên kết ở trên có một tuyên bố rằng tên là những thứ đòi hỏi một chút suy nghĩ dẫn đến "Tôi hy vọng sẽ mở rộng việc xử lý tên của mọi người trong một bài báo trong tương lai." Nếu bất cứ ai có một khách hàng tiềm năng về điều này, xin vui lòng để lại nhận xét hoặc chỉnh sửa nó vào vị trí này.
Mặt khác, tuổi là thứ có cấu trúc khá cố định (tôi muốn đề xuất ngày sinh thay vì số nguyên). Như vậy, đại diện cho thông tin này trong một định dạng nổi tiếng và được hiểu có ý nghĩa trong một thuộc tính. Một người có một, và chỉ có một sinh nhật và không có "yêu cầu" nào mà bạn muốn giữ gìn.
Uche Ogbuji xác định ba nguyên tắc cốt lõi trong việc thiết kế đúng định dạng xml. Sau đây là những trích dẫn viết tắt từ tài liệu được liên kết ở trên.
- Nguyên tắc của thông tin có cấu trúc
Nếu thông tin được thể hiện dưới dạng có cấu trúc, đặc biệt nếu cấu trúc có thể mở rộng, hãy sử dụng các yếu tố. Mặt khác: Nếu thông tin được thể hiện dưới dạng mã thông báo nguyên tử, hãy sử dụng các thuộc tính
- Nguyên tắc dễ đọc
Nếu thông tin được đọc và hiểu bởi một người, hãy sử dụng các yếu tố. Nếu thông tin dễ hiểu và được tiêu hóa nhất bởi máy, hãy sử dụng các thuộc tính.
- Nguyên tắc liên kết phần tử / thuộc tính
Sử dụng một phần tử nếu bạn cần giá trị của nó được sửa đổi bởi thuộc tính khác
Và vì vậy, các tên nên là các phần tử - chúng là dữ liệu có cấu trúc không phải là mã thông báo nguyên tử, chúng có khả năng được con người đọc hơn là máy tính và chúng có thể được sửa đổi bởi một thuộc tính khác trên chính tên đó.
Ngày phải là thuộc tính - chúng là dữ liệu là mã thông báo nguyên tử, chúng có khả năng được máy tính đọc nhiều hơn con người (và sau đó được chuyển thành định dạng ưa thích của con người nếu cần ) và cuối cùng chúng không thể bị sửa đổi bởi người khác thuộc tính trên chúng.