Monday, April 12, 2010

Creat xml for web services and return it

public string getTreeOfClass(string taxonomyName)
{
//get ClassElementsName
var taxsonomyId = _exhibitDb.Taxonomies.SingleOrDefault(o => o.Taxonomy1 == taxonomyName);

var classeList = from c in _exhibitDb.Classes join tc in _exhibitDb.TaxonomyClasses on c.ID equals tc.ClassID where (tc.TaxonomyID.Equals(taxsonomyId.ID)) select c;
//XDocument document = new XDocument();
//document.Root
const string xmlNodeTextAttName = "Name";
const string xmlNodeTagAttId = "Id";
const string xmlNodeTagClass = "Class";
const string xmlNodeTagRoot = "Root";
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
OmitXmlDeclaration = true,
NewLineOnAttributes = false,
Encoding = Encoding.UTF8
};
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create(sb, settings);
//writing xml

if (writer != null)
{
writer.WriteStartDocument();
writer.WriteStartElement(xmlNodeTagRoot);
foreach (var v in classeList)
{
writer.WriteStartElement(xmlNodeTagClass);
writer.WriteAttributeString(xmlNodeTextAttName, v.Class1);
writer.WriteAttributeString(xmlNodeTagAttId, v.ID.ToString());
AddChildElement(writer, v.ID, xmlNodeTagAttId, xmlNodeTextAttName, xmlNodeTagClass);
writer.WriteEndElement();
}

writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
}
return sb.ToString();// xmlDocument;
}

No comments: