我爱Aspx >> XML/XLST >> 在.NET Framework中轻松处理XML数据(四)xmlw.WriteEndElement();
}
xmlw.WriteEndDocument();
// Close the writer
xmlw.Close();
}
然而XML writer并不是魔术师----它不能修复输入的错误。XML writer不会检查元素名和属性名是否有效,也不保证被用的任何的Unicode字符集适合当前架构的编码集。如上所述,为了避免输出错误,必须要杜绝非XML字符。但是writer没有提供这种方法。
另外,当创建一个属性节点时,Writer不会检验属性节点的名称是否与已存在的元素节点的名称相同。最后,XmlWriter类不是一个带验证的Writer类,也不保证输出是否符合schema或者DTD。在.NET Framework中带验证的writer类目前来说还没有提供。但是在我写的《Applied XML Programming for Microsoft .NET (Microsoft Press®, 2002)》书中,我自己写了一个带验证的Writer组件。你可以到下面的网址去下载源码:http://www.microsoft.com/MSPress/books/6235.asp.
图七列出了XML writer的一些状态值(state)。这些值都源于WriteState枚举类。当你创建一个Writer,它的初始状态为Start,表示你将要配置该对象,实际上writer没有开始。下一个状态是Prolog,该状态是当你调用WriteStartDocument方法开始工作的时候设置的。然后,状态的转换就取决于你的写的文档及文档的内容了。Prolog状态一直保留到当你增加一个非元素节点时,例如注释元素,处理指令及文档类型。当第一个节点也就是根节点写完后,状态就变为Element。当你调用WriterStartAtribute方法时状态转换为Attribute,而不是当你调用WriteAtributeString方法写属性时转换为该状态。如果那样的话,状态应该是Element。当你写一个闭标签(>)时,状态会转换成Content。当你写完文档后,调用WriteEndDocument方法,状态就会返回为Start,直到你开始写另一个文档或者把Writer关掉。
[1] [2] [3] [4] 下一页 【我对这篇文章有话说?】
在.NET Framework中轻松处理XML数..[05-06]
在.NET Framework中轻松处理XML数..[05-06]
Visual Basic.NET带来的新方法(一..[05-05]
利用VC++获取异构型数据库库结构..[05-05]
抢救零磁道损坏的软盘数据[05-05]
浅谈DB2数据库的备份与恢复(下)[05-05]
浅谈DB2数据库的备份与恢复(上)[05-05]
Microsoft .NET Remoting:技术概..[05-05]
ASP.NET 入门的五个步骤[05-05]
将你的Visual Basic 6.0移植到Vi..[05-05]
在.NET Framework中轻松处理XML数..[05-06]
在.NET Framework中轻松处理XML数..[05-06]
系统级C语言程序设计[05-05]
Visual Basic.NET带来的新方法(一..[05-05]
用VB设计能适应各种显示属性的界..[05-05]
关于VC中的DLL的编程[05-05]
解决BoundsChecker和VC打架的方法[05-05]
用VC++实现异形窗口.[05-05]
MFC消息响应机制分析[05-05]
一种不易察觉的内存泄露[05-05]