Піднято безпосередньо з C # 3.0 в двох словах :
Коли вузол або атрибут додаються до елемента (будь то за допомогою функціональної конструкції або методу Add), властивість батьківського вузла або атрибута встановлюється для цього елемента. Вузол може мати лише один батьківський елемент: якщо ви додаєте вже батьківський вузол до другого батьківського, вузол автоматично глибоко клонується. У наступному прикладі кожен клієнт має окрему копію адреси:
var address = new XElement ("address",
new XElement ("street", "Lawley St"),
new XElement ("town", "North Beach")
);
var customer1 = new XElement ("customer1", address);
var customer2 = new XElement ("customer2", address);
customer1.Element ("address").Element ("street").Value = "Another St";
Console.WriteLine (
customer2.Element ("address").Element ("street").Value);
Це автоматичне дублювання позбавляє екземпляр об'єкта X-DOM від побічних ефектів - ще одна ознака функціонального програмування.