在 XML 文档中使用 "Xlmns" 时出错

Error using "Xlmns" in XML document

我想用 c#:

将下面的代码片段生成到 xml
<?xml version="1.0" encoding="utf-8" ?>
<PrincetonStorageRequest
         xmlns="http://munichre.com/eai/dss/pct/v1.0"
         requestId="RequestOut_MAG_Test_02"
         timestampUtc="2015-02-19T09:25:30.7138903Z">      
  <StorageItems>

我的代码是:

XmlWriter writer = XmlWriter.Create(fileName);
writer.WriteStartDocument(true);
writer.WriteStartElement("PrincetonStorageRequest");
writer.WriteAttributeString("xmlns","http://example.com/abc/dss/pct/v1.0");

writer.WriteAttributeString("requestId",name);
writer.WriteAttributeString("timestampUtc","2015-02-19T09:25:30.7138903Z");

writer.WriteStartElement("StorageItems");

但我得到了

"The prefix " cannot be redefined from " to within the same start element tag.

根据您的 XML 和错误,我相信这是因为您在添加没有命名空间声明的元素之后添加了默认命名空间,因此您实际上是在创建一个元素,然后 更改其命名空间。

尝试以下代码 - 当我在本地测试它时它会停止错误,只是为了 XML 我认为你正在尝试获得:

        XmlWriter writer = XmlWriter.Create(fileName);
        writer.WriteStartDocument(true);
        writer.WriteStartElement("PrincetonStorageRequest", "http://example.com/abc/dss/pct/v1.0");
        writer.WriteAttributeString("xmlns", "http://example.com/abc/dss/pct/v1.0");

        writer.WriteAttributeString("requestId", name);
        writer.WriteAttributeString("timestampUtc", "2015-02-19T09:25:30.7138903Z");

        writer.WriteStartElement("StorageItems");

因此,当我创建 PrincetonStorageRequest 元素时,我指定了命名空间 URI。

编辑:只是为了检查,这是创建的 XML 但我确实必须添加代码来编写结束元素:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<PrincetonStorageRequest xmlns="http://example.com/abc/dss/pct/v1.0" requestId="RequestOut_MAG_Test_02" timestampUtc="2015-02-19T09:25:30.7138903Z">
<StorageItems/>