我们获得了一份示例文档,需要能够为供应商准确地复制文档的结构。但是,我对 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 元素中的 namespace 和模式开始,将它们包含在 LoadXml() 中,那么所有 子元素都具有 namespace ——这是一个禁忌。文档被拒绝。
所以换句话说,我必须完全按照显示的方式制作它。 (而且我宁愿不只是用 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# - 在 C# 中使用命名空间创建特定的 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/443250/