1
我想使用xmlserializer更改xml命名空間。我瀏覽過網頁沒有結果。從串行我的結果是:c#XML序列化nonamespace使用列表
<?xml version="1.0" encoding="utf-8"?>
<OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Resource>
</Resource>
</OLPData>
我的串行看起來是這樣的:
XmlSerializer s = new XmlSerializer(typeof(List<Resource>), new XmlRootAttribute("OLPData"));
TextWriter t = new StreamWriter("code.xml");
List<Resource> xml = new List<Resource>() { general }s.Serialize(t, xml);
t.Close();
,所以我有型的ressource的列表,一般爲源。我試圖補充一點:
public partial class Resource
{
[XmlAttribute(AttributeName = "noNamespaceSchemaLocation", Namespace = XmlSchema.InstanceNamespace)]
public string attr = @"C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd";
}
在XML類結構,但它顯然增加了noNamespaceSchemaLocation到的ressource代替舊數據。
<?xml version="1.0" encoding="utf-8"?>
<OLPData mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Resource xsi:noNamespaceSchemaLocation = "C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
</Resource>
</OLPData>
我想是這樣的結果:
<?xml version="1.0" encoding="utf-8"?>
<OLPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Program Files\Dassault Systemes\B19\intel_a\startup\Olp\XSchemas\Upload.xsd">
<Resource>
</Resource>
</OLPDate>
有什麼建議?
我不能使用VAR XML =新OlpData {資源=新[] {新的資源() }}; – Thomas 2011-03-15 12:16:35
@Thomas - 當然,只要做你需要的一切。根據您的要求使用'WriteGeneral'修改回答。 – Mormegil 2011-03-15 14:12:57
WriteGeneral是一種返回一個名爲general的變量的方法,它是一個Resource類型。不知道你是否明白。而且它不是一個數組。 – Thomas 2011-03-15 14:34:08