使用 XmlWriter 执行 XmlSerialization 时如何添加命名空间?

2024-04-15

我将 XmlWriter 与 Xml 序列化结合使用。我能够很好地输出 XML,但如何在 XmlWriter 中包含 xmlns 属性似乎让我无法理解。

为了编写文档的开头,我使用以下命令:

    Writer.WriteStartDocument();
    Writer.WriteStartElement("urlset","http://www.sitemaps.org/schemas/sitemap/0.9");

创建 XmlWriter 后,我会循环遍历已创建的 SitemapNodes,并通过序列化将它们写入底层字符串生成器,如下所示:

    foreach (uk.co.andrewrea.SitemapNode node in List)
    {
        Serializer.Serialize(Writer, node);
    }

正如我所说,这工作正常,但不包括上面的根元素的命名空间。每次我尝试物理写入属性 xmlns 时,都会收到一个异常,即 xmlns 被系统保留用于 XML 使用,所以基本上我无法使用。

我知道如何使用 XmlTextWriter 以及使用 XmlDocument 类来执行此操作,但我需要了解如何使用 XmlWriter 并通过序列化来实现此目的。

以下尝试还会引发有关保留该命名空间的异常。

foreach (uk.co.andrewrea.SitemapNode node in List)
{
      XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
      ns.Add("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");

      Serializer.Serialize(Writer, node, ns);
}

Exception Details: System.ArgumentException: Prefix "xmlns" is reserved for use by XML.

您可以将命名空间添加到 XmlSerialization 属性,例如:

[XmlElement(
ElementName = "Members",
Namespace = "http://www.cpandl.com")]
public Employee[] Employees;

如果您可以控制代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XmlWriter 执行 XmlSerialization 时如何添加命名空间? 的相关文章

随机推荐

  • 按组填写缺失日期

    我有一个数据集 如下所示 shop id item id time value 150 1 2015 07 10 3 150 1 2015 07 11 5 150 1 2015 07 13 2 150 2 2015 07 10 15 150
  • 使用 JUnit 中的 Blobstore

    我正在尝试测试一些使用 Blobstore API 的代码 但我并不真正了解如何将一些文件放入 Blobstore 中 以下内容不起作用 private BlobKey createBlob String path throws Excep
  • 如何使用 HttpClient 解决 .Net4.0 与 .Net4.5 中 Uri 和编码 URL 的差异

    Uri Net4 0 与 Net4 5 中的行为不同 var u new Uri http localhost 5984 mycouchtests pri test 2F1 Console WriteLine u OriginalStrin
  • Postgres 动态创建序列

    我正在编写一个应用程序 其中有多个用户 用户可以在应用程序内上传报告 目前 我有一个 报告 表 其中包含所有提交的报告 其中有一个 id 字段 该字段是表上的序列主键 我指定的要求是 用户需要能够指定其报告开始计数的前缀和数字 例如 用户应
  • 每页记录数允许用户选择 - codeigniter 分页

    我有有效的分页功能 我已将限制设置为每页 5 条记录 但我希望用户能够根据需要进行更改 问题是我不知道该怎么做 在视图中 我创建了下拉菜单 因此用户可以选择他想要每页查看多少条记录 ul class dropdown menu li a h
  • android 权限 - CHANGE_COMPONENT_ENABLED_STATE

    我需要在我的代码中使用 android permission CHANGE COMPONENT ENABLED STATE 权限 因为我需要更新我的项目的另一个 apk 的组件 但它似乎并不真正适合我 这是我的代码
  • 在带有或不带有命名空间的 中使用类型

    在 C 11 中 我可以选择是否要使用带或不带命名空间 std 中定义的类型 至少我的编译器 g 4 7 接受这两种变体 我的问题是 使用 cstdint 中的 typedef 的推荐方法是什么 有或没有命名空间 有什么优点或缺点 或者这只
  • 如何获取两个 JavaScript 对象图之间的差异列表?

    我希望能够获得两个 JavaScript 对象图之间所有差异的列表 以及发生增量的属性名称和值 就其价值而言 这些对象通常以 JSON 形式从服务器检索 并且通常不超过几层 即 它可能是本身具有数据的对象数组 然后是包含其他数据对象的数组
  • git - 当输出重定向到文件时,git show 在二进制文件上使用是否安全?

    我读到可以从 Git 中的特定修订版检索单个文件 如这个问题中的回答 如何从 Git 中的特定修订版检索单个文件 https stackoverflow com questions 610208 how to retrieve a sing
  • 我可以通过编程方式选择我的线程应在多核 CPU 的哪个核心上运行吗?

    还是由操作系统控制 我听说 Google 的新 Go 语言具有内置功能 可供程序员进行精细操作 还是我理解错了 对于 Linux 操作系统 sched setaffinity是你的答案 从 Linux 内核 2 5 8 开始支持它 Name
  • Alamofire 图像:在 af_setImageWithURL() 之后从 AutoPurgingImageCache 中获取图像

    我在我的项目中使用 AlamofireImage 我用someImageView af setImageWithURL url a lot 然而 在某些时候我需要从 imageCache 手动获取图像 因为我不想将其应用到 UIImageV
  • 如何将逻辑回归模型获得的系数映射到pyspark中的特征名称

    我使用 databricks 列出的管道流构建了一个逻辑回归模型 https docs databricks com spark latest mllib binary classification mllib pipelines html
  • 使用 Plotly 渲染 MATLAB 面片 Fig2plotly()

    问题 当尝试导出使用patchMATLAB 中的命令为fig2plotly 最终输出缺少指定的面部颜色 也许演示会有所帮助 采用以下顶点和面来定义立方体 摘自 MATLAB 文档 vert 0 0 0 1 0 0 1 1 0 0 1 0 0
  • C++中如何检查数据类型?

    我对 C 相当陌生 我主要使用 python 我正在尝试检查存储在我正在处理的对象中的值的变量类型 我记得Python中有一个命令isinstance我可以使用它作为运行某些命令的条件 例如如果下一个值是字符串 则执行 A 如果是 int
  • Gradle 没有选择 Cucumber-jvm

    我正在尝试从 Gradle 运行 Cucumber jvm 但是 无论我做什么 我都无法让这些功能实际运行 当其他 JUnit 测试运行时 它们总是被跳过 我的特点在src test resources我有一个 JUnit 测试src te
  • Windows Phone 8 的内存使用限制

    Windows Phone 8 应用程序的应用程序内存使用限制是多少 我需要三种不同可用设备的内存限制 如 720p WXVGA 等 WP8 内存上限的 zen 具有三个方面 默认基线 150MB 扩展内存 180MB 和低内存设备选择退出
  • 空值并不唯一

    我在 postgres 上有这样的行 name address college john rome john rome max tokyo 我创建一个这样的表 create test name varchar 10 address varc
  • 如何将 Chrome 扩展挂钩到网络浏览器流量

    我正在尝试编写一个 chrome 扩展来拦截网络流量并修改数据 如果有人能准确地告诉我应该使用哪个 API 以及在哪里可以找到文档 我将不胜感激 利用网络请求 https developer chrome com extensions we
  • 使用 RTTI 从类中获取常量字段

    我可以枚举类中的常量吗 我努力了 MyClass class const c1 c1 c2 c2 c3 c3 end procedure GetConst var ctx TRttiContext objType TRttiType fie
  • 使用 XmlWriter 执行 XmlSerialization 时如何添加命名空间?

    我将 XmlWriter 与 Xml 序列化结合使用 我能够很好地输出 XML 但如何在 XmlWriter 中包含 xmlns 属性似乎让我无法理解 为了编写文档的开头 我使用以下命令 Writer WriteStartDocument