1
我連載的對象到XML和我得到的輸出像這樣:如何使用自定義命名空間連載
<?xml version="1.0" encoding="utf-8"?>
<SOrd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
不過,我想它是像這樣:
<SOrd xmlns:SOrd="http://..." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://....xsd">
如何我可以這樣做嗎?
我曾嘗試加入串行化之前的屬性根對象,也這樣:
XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();
xmlNameSpace.Add("xmlns:SOrd", "http://...");
xmlNameSpace.Add("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlNameSpace.Add("xsi:schemaLocation", "http://....xsd");
XmlSerializer xs = new XmlSerializer(ord.GetType());
TextWriter writer = new StreamWriter(outputPath, false);
xs.Serialize(writer, ord, xmlNameSpace);
writer.Close();
但我得到的異常「在‘:’字符,十六進制值0x3A,不能包含在$名稱「。
我只是做這個之前,我看了你的消息,它的工作原理,但schemaLocation需要有一個xsi的前綴:我該如何實現這一點? – sprocket12
感謝它的工作原理:)最後一件事情是有可能以certail方式訂購模式定義?當輸出 – sprocket12
時他們似乎混在一起我認爲這是不可能的,或者至少我不知道這種方式。如果使用XmlWriter創建文檔,則免除。 – Swift