将DataSet根据xsd输出xml.如果DataSet中有以下字段id,p1,p2,p3,p4。
希望输出的xml是<table attr="这里显示为p1+p2">//即p1加连接串+加p2
    <elem>
         p3+p4//和上面属性一样,//即p3加连接串+加p4
    </elem>
</table>属性值或元素值由多个字段组成的,这样的xsd结构能实现吗?
对这个不是很熟悉,谢谢!

解决方案 »

  1.   

    Xsd定义了Xml的结构,你可以理解为DataSet就是一种Xsd,至于怎么把xml按你的要求转换成Html展示在页面上,可以考虑用xslt了(可以到http://www.w3schools.com/xsl/了解一下),可以手动写xslt(本人不建议,太累了),也可以通过工具去做这个事情,例如可以通过MapForce去做,那个工具也不复杂,很快可以说上手,然后通过代码转换,具体转换的代码可以查查msdn,我记得是有一个叫XslCompiledTransform的类可以干这个事情,例如如下代码// Load an XPathDocument.
    XPathDocument doc = new XPathDocument("books.xml");// Locate the node fragment.
    XPathNavigator nav = doc.CreateNavigator();
    XPathNavigator myBook = nav.SelectSingleNode("descendant::book[@ISBN = '0-201-63361-2']");// Create a new object with just the node fragment.
    XmlReader reader = myBook.ReadSubtree();
    reader.MoveToContent();// Load the style sheet.
    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("single.xsl");// Transform the node fragment.
    xslt.Transform(reader, XmlWriter.Create(Console.Out, xslt.OutputSettings));
      

  2.   

    不是将xml展现到html页面上,是将Dataset根据xsd输出成xml。
    dataset提供数据,它有自己的结构,xsd里的数据来源于dataset,但是结构和dataset不同。
    难点是:dataset和xsd结构不一样,怎么让dataset根据xsd的结构输出.或者说如何根据xsd的结构,重新生成一个dataset,然后把源dataset数据转换过去!