1、 XML InfoSet是一个W3C概念,它描述了XML文档中哪些事重要的,哪些是不重要的。
2、 XSD:相应的XML模式定义,它描述了文档中允许有哪些元素、简单类型和复杂类型。在编程语言中,XSD(XML模式定义)是一个类(型)定义,而XML文档是该类型的一个实例。
3、 XPathDocument是只读游标,可以前后移动,使用方法:举一个小例子
string bookfile = Server.MapPath("App_Data""Books.xml");
XPathDocument document = new XPathDocument(bookfile);
XPathNavigator nav = document.CreateNavigator();
XmlNamespaceManager namespaceMgr = new XmlNamespaceManager(nav.NameTable);
namespaceMgr.AddNamespace("b", "http://www.inuli.cn");
foreach (XPathNavigator node in nav.Select("//b:book[not(b:price[.>10.00])]/b:price",namespaceMgr))
{
decimal price = (decimal)node.ValueAs(typeof(decimal));
Response.Write(string.Format("价格是:{0}<br/>",price));
}
4、 XmlDocument不是只读的,可以修改内存中的数据,示例:
string bookfile = Server.MapPath("App_Data""Books.xml");
XmlDocument document = new XmlDocument();
document.Load(bookfile);
XPathNavigator nav = document.CreateNavigator();
XmlNamespaceManager namespaceMgr = new XmlNamespaceManager(nav.NameTable);
namespaceMgr.AddNamespace("b", "http://www.inuli.cn");
foreach (XPathNavigator node in nav.Select("//b:book[not(b:price[.>10.00])]/b:price", namespaceMgr))
{
decimal price = (decimal)node.ValueAs(typeof(decimal));
node.SetTypedValue(price * 1.2M);
Response.Write(string.Format("价格从{0}涨到{1}<br/>", price,node.ValueAs(typeof(decimal))));
}
5、 DataSet
使用DataSet从SQL Server中提取XML
string connStr = "database=Northwind;Data Source=.;User id=sa;pwd=123123";
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlCommand command = new SqlCommand("select * from Customers", conn);
conn.Open();
DataSet ds = new DataSet();
ds.DataSetName = "Customers";
ds.Load(command.ExecuteReader(), LoadOption.OverwriteChanges, "Customer");
Response.ContentType = "text/xml";
ds.WriteXml(Response.OutputStream);
}
6、 XmlDataSource控件使用 示例:
<div>
<asp:DataList ID="DataList1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
<p>
<b>
<%#XPath("author/first-name") %>-<%#XPath("author/last-name") %>
</b>
worte<%#XPath("title") %>
</p>
</ItemTemplate>
</asp:DataList></div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/Books.xml"
XPath="//bookstore/book"></asp:XmlDataSource>
7、 XSLT:适合于快速、简单地转换XML文件的结构。示例:(提取Books.xml,把它转换为一个包含一组作者的文件。)
<xsl:stylesheetversion="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:templatematch="/">
<xsl:elementname="Authors">
<xsl:apply-templatesselect="//book"></xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:templatematch="book">
<xsl:elementname="Author">
<xsl:value-ofselect="author/first-name"/>
<xsl:text> </xsl:text>
<xsl:value-ofselect="author/last-name"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
8、 For XML AUTO
9\附件:
Book.xml源文件内容:
<?xmlversion="1.0"encoding="utf-8" ?>
<!--这是注释-->
<bookstorexmlns="http://www.inuli.cn">
<bookgenre="autobiography"publicationdate="1981"ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<bookgenre="novel"publicationdate="1967"ISBN="11-22-2323-0">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<bookgenre="philosoph"publicationdate="1991"ISBN="1-644343-33-3">
<title>The Gorgias</title>
<author>
<first-name>Sidas</first-name>
<last-name>Plato</last-name>
</author>
<price>9.99</price>
</book>
</bookstore>