@Ondrej-Janacek 's anwser is the way to go. Just to fulfill your curiosity you could potentially remove the XmlAttribute from the PublishDate property and add another one like so
[XmlAnyAttribute]
public XmlAttribute[]XAttributes {get; set;}
This property will be called with all attributes found in the XML that don't correspond to any member. Inside it's setter you can lookup the PublishDate value and assign the values to your PublishDate, Month and Year properties. Without any backing field.
See here for more info on the XmlAnyAttribute.