Чем меньше элементов между вами и желаемыми данными, тем лучше.Но смысл использования структуры XML заключается в осмыслении данных.Один вопрос, который нужно задать: будет ли необходимо группировать адреса вместе под каждым человеком?Если так, то стоит иметь промежуточный элемент для описания того, что такое группировка, например:
<Person>
<Addresses Group="Summer">
<Address Street="123 Street Name" .../>
</Addresses>
<Addresses Group="Winter">
<Address Street="456 Other Street" .../>
</Addresses>
</Person>
Если нет, то нет смысла иметь промежуточный элемент, и это будет стоить вам накладных расходов.хранение и анализ.
Если вы беспокоитесь о том, как легко будет получить коллекции дочерних элементов в вашем коде, LINQ-to-XML облегчит работу с любым сценарием.Например:
<Person>
<Address .../>
<Address .../>
<Phone .../>
<Phone .../>
<Email .../>
</Person>
Вы можете тривиально извлечь то, что хотите:
var Addresses = personElement.Elements("Address");
var PhoneNumbers = personElement.Elements("Phone");
Это означает, что вам не нужно иметь промежуточные элементы, такие как или .добавляйте их только в том случае, если необходимо ввести атрибуты / метаданные, охватывающие группы дочерних элементов.