我们获得了一个示例文档,并且需要能够为供应商准确地再现文档的结构.但是,我有点迷茫,C#如何处理命名空间.以下是文档示例:
<?xml version="1.0" encoding="UTF-8"?> <Doc1 xmlns="http://www.sample.com/file" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sample.com/file/long/path.xsd"> <header> <stuff>data</stuff> <morestuff>data</morestuff> </header> </Doc1>
我通常会这么做的是加载一个空白文档,然后开始填充它:
XmlDocument doc = new XmlDocument(); doc.LoadXml("<Doc1></Doc1>"); // Add nodes here with insert,etc...
一旦我得到文档开始,我如何获得命名空间和模式到Doc1元素?如果我从Doc1元素中的命名空间和模式开始,通过将它们包含在LoadXml()中,那么所有的子元素都有它们的命名空间 – 这是一个no-no.文件被拒绝.
解决方法
你应该这样尝试
XmlDocument doc = new XmlDocument(); XmlSchema schema = new XmlSchema(); schema.Namespaces.Add("xmlns","http://www.sample.com/file"); doc.Schemas.Add(schema);
不要忘记包括以下命名空间:
using System.Xml.Schema; using System.Xml;