首页 > 解决方案 > 如何使用 XMLWriter 添加没有前缀的默认命名空间

问题描述

我必须生成一个像这样开头的 xml 文档:-

<?xml 版本="1.0" 编码="UTF-8"?>
<GeneticsTestReport SchemaVersion="1-4" xmlns="http://www.organdonation.nhs.uk/XMLschema/DCERT/ns" >

上面的片段取自提供给我的文件,是收件人坚持应该开始的方式。

我有以下代码输出除 xmlns 属性之外的所有内容:-

        using (var writer = XmlWriter.Create(fileName, settings))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("GeneticsTestReport");
            writer.WriteAttributeString("SchemaVersion", SchemaVersion);
            ...other code omitted for brevity
        }

我已经尝试了多种添加 xmlns 属性的方法,但我什么也做不了。

代码如:-

writer.WriteStartAttribute("xmlns", ns);
or
writer.WriteAttributeString("xmlns","", null, ns);

引起例外:-

“前缀 '' 不能在同一起始元素标记中从 '' 重新定义为 'http://www.organdonation.nhs.uk/XMLschema/DCERT/ns'。”

或者

“前缀“xmlns”保留供 XML 使用。”

在上面的代码中,ns 是一个设置为“http://www.organdonation.nhs.uk/XMLschema/DCERT/ns”的变量

我已经编写了文档的其余部分,但无法解决这个 xmlns 问题。我不是任何形式或形式的 xml 专家,因此我将不胜感激可以提供的任何帮助。

标签: c#xmlxml-namespaces

解决方案


推荐阅读