If an attribute with the same name is already present in the element, its value is changed to that of value. value is a simple string. It is not parsed as it is being set. Any markup, such as syntax to be recognized as an entity reference, is treated as literal text and needs to be properly escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an System.Xml.XmlAttribute node plus any System.Xml.XmlText and System.Xml.XmlEntityReference nodes, build the appropriate subtree and use XmlElement.SetAttributeNode(XmlAttribute) to assign it as the value of an attribute.