Лично я не рекомендую использовать слишком много XML в базе данных;это наименее масштабируемая часть вашей системы (вы не можете ее "масштабировать" дешево), поэтому вместо того, чтобы тратить все свое время на обработку xml, я бы просто использовал данные в, данные - просто регулярноПараметры и сетки TSQL.
Однако!
Такой подход построения xml довольно глючный - значения должны быть экранированы xml.Но чтобы ответить на вопрос - я бы использовал LINQ-to-XML (XElement
) или XmlSerializer.Вероятно, последнее, то есть
public class Request {
[XmlAttribute] public string Type {get;set;}
[XmlAttribute] public string CRUD {get;set;} // although I'd prefer an enum
public RequestUser Users {get;set;}
}
public class RequestUser {
public string UserName {get;set;}
public string Password {get;set;} // please use salted hash instead
}
затем:
var req = new Request { Type = "", CRUD = "",
Users = new RequestUser { UserName = username, Password = password } };
var ser = new XmlSerializer(typeof(Request));
StringWriter sw = new StringWriter();
ser.Serialize(sw, req);
string xml = sw.ToString();
Основное преимущество, которое я вижу здесь с XmlSerializer (по сравнению с LINQ-to-XML), заключается в том, что вы можете также используйте это для считывания xml в этого формата через Deserialize
.Однако LINQ-to-XML также будет хорошо работать здесь:
var req = new XElement("Request",
new XAttribute("Type", ""),
new XAttribute("CRUD", ""),
new XElement("Users",
new XElement("UserName", username),
new XElement("Password", password)
)
);
var xml = req.ToString();