0
我知道,它看起來並不像最好的做法,但我需要用相同的命名空間序列化XML具有相同的默認命名和命名空間
例如生成XML:
<ns1:root xsi:schemaLocation=""http://schemalocation""
xmlns:ns1=""http://schema""
xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
xmlns=""http://schema"">
...
</ns1:root>
我還添加了命名空間串行:
var xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add("ns1", "http://schema");
xmlSerializerNamespaces.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlSerializerNamespaces.Add(string.Empty, "http://schema");
這是類本身:
[XmlRoot(ElementName = "request", Namespace = "http://schema")]
[Serializable]
public class Request
{
[XmlAttributeAttribute("schemaLocation", Namespace = XmlSchema.InstanceNamespace)]
public string SchemaLocation
{
get { return _schemaLocation; }
set { _schemaLocation = value; }
}
...
private string _schemaLocation = "http://schemalocation"; }
所以一切都很好,但默認的xmlns不在生成的xml中。 我也玩過XmlWriterSettings,沒有結果。 有沒有人想法如何做到這一點沒有字符串替換?)
謝謝,我同意這是一個解決方案,但我需要使用xmlserialization從屬性類到XML和使用一個更多的對象(XDocument)是不好,尤其是當你有大的XML。你知道很熱來避免它嗎? –