【发布时间】:2011-05-05 17:07:31
【问题描述】:
我的班级代码为
public class OpenShipments
{
private string _xmlns = "";
private OpenShipment _OpenShipment = null;
[XmlAttribute("xmlns")]
public string xmlns
{
get { return _xmlns; }
set { _xmlns = "x-schema:" + value; }
}
[XmlElement("OpenShipment")]
public OpenShipment OpenShipment
{
get { return _OpenShipment; }
set { _OpenShipment = value; }
}
public OpenShipments()
{
_OpenShipment = new OpenShipment();
}
}
我包含一个名为 public string xmlns 的属性,它在序列化代码后将具有命名空间,但是当我们看到 xml 时没有添加命名空间。
在我的情况下,我需要将命名空间动态添加到 OpenShipments 元素,其值将被动态设置。在我的例子中,命名空间看起来像xmlns="x-schema:C:\UPSLabel\OpenShipments.xdr",有时看起来像xmlns="x-schema:d:\UPSLabel\OpenShipments.xdr"。
因此命名空间值x-schema:d:\UPSLabel\OpenShipments.xdr 将根据条件而有所不同。我需要建议如何动态添加命名空间来处理这种情况。
【问题讨论】:
-
我可能完全错了,但命名空间通常是文件的保留关键字,例如
namespace myProject { class myClass {} }。我还没有听说过 XML 的命名空间。 -
@ohmusama:XML 的命名空间已经存在很长时间了。 w3.org/TR/xml-names
-
啊,c# 的整个命名空间和 XML 的命名空间令人困惑,我在阅读那个巨大的文本块时无法忘记 c# 命名空间,谢谢!
标签: c#