在C#中使用命名空间创建一个特定的XML文档

前端之家收集整理的这篇文章主要介绍了在C#中使用命名空间创建一个特定的XML文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们获得了一个示例文档,并且需要能够为供应商准确地再现文档的结构.但是,我有点迷茫,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.文件被拒绝.

所以换句话说,我必须如图所示生成. (我宁愿在C#中只写文本到文件,希望它是有效的XML).

解决方法

你应该这样尝试
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;

猜你在找的C#相关文章