首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用XMLSerializer添加没有前缀的默认命名空间

如何使用XMLSerializer添加没有前缀的默认命名空间
EN

Stack Overflow用户
提问于 2010-03-23 21:16:10
回答 2查看 22.1K关注 0票数 20

我正在尝试使用XmlSerializer生成一个包含缺省名称空间而不带前缀的XML文档,例如

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<MyRecord ID="9266" xmlns="http://www.website.com/MyRecord">
    <List>
        <SpecificItem>

使用以下代码...

代码语言:javascript
复制
string xmlizedString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(ExportMyRecord));
XmlSerializerNamespaces xmlnsEmpty = new XmlSerializerNamespaces();
xmlnsEmpty.Add(string.Empty, string.Empty);
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, myRecord, xmlnsEmpty);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlizedString = this.UTF8ByteArrayToString(memoryStream.ToArray());

和班级结构。

代码语言:javascript
复制
[Serializable]
[XmlRoot("MyRecord")]
public class ExportMyRecord
{
    [XmlAttribute("ID")]
    public int ID { get; set; }

现在,我已经尝试了各种选择……

代码语言:javascript
复制
XmlSerializer xs = new XmlSerializer
                     (typeof(ExportMyRecord),"http://www.website.com/MyRecord");

或者..。

代码语言:javascript
复制
[XmlRoot(Namespace = "http://www.website.com/MyRecord", ElementName="MyRecord")]

给我..。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<q1:MylRecord ID="9266" xmlns:q1="http://www.website.com/MyRecord">
    <q1:List>
        <q1:SpecificItem>

我需要XML具有不带前缀的名称空间,因为它将发送给第三方提供商,而他们拒绝所有其他替代方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2500111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档