2017-09-26 75 views
0

我正在寫一個ASP.NET MVC(5)應用程序,我需要做一些自定義的XML序列化。在我繼續之前,我應該提一下,我不確定這個問題是屬於這裏還是在另一個論壇上。如果這個問題會更適合別的地方,請告訴我。我很樂意移動它。如何在沒有.xsd模式的情況下將數據序列化爲XML?

軟件概述:

我有了爲用戶填寫表單視圖。當用戶填寫必填字段並單擊submit按鈕時,表單中的信息應該序列化爲XML(基於特定的XML要求),併發布到URL。我相信這對一些人來說很簡單。我在ASP.NET MVC中做這種事情的經驗很少。

我沒有擁有包含XML模式的.xsd文檔。我有一個包含XML細節(Word文檔)的文檔,但實際的.xsd文檔不適用於我。我不知道如何序列化數據,以便XML能夠實現它應有的方式。

我有以下型號:

public class BookingRequest 
    { 
     public string billTo { get; set; } 
     public string bookingStatus { get; set; } 
     public string partNote { get; set; } 
     public int height { get; set; } 
    } 

注意,這是一個簡化版本;這門課有更多的領域。無論如何,我需要height場看起來像這樣當它被序列化到XML:

<HeightOf>15</HeightOf> 

我還需要的所有元素在XML堅持這個模式(所有形式我的字段在<BookingRequest>標籤中提到秋季):

<Data> 
    <Header> 
     <UserId/> 
     <Password/> 
    </Header> 
    <BookingRequest> 
      .. 
      .. 
    </BookingRequest> 
</Data> 

我能做到這一點,而不架構?

任何幫助是極大的讚賞。

+1

請通過此鏈接 - http://stackoverflow.com:

[Serializable] public class BookingRequest { public string billTo { get; set; } public string bookingStatus { get; set; } public string partNote { get; set; } [XmlElement(ElementName = "HeightOf")] public int height { get; set; } } 

進一步詳情,請參閱本/ questions/25273831/how-to-serialize-an-c-sharp-object-into-xml-without-schema-info和希望,這將是一個解決方案。 –

+0

@ AT-2017謝謝。我很樂意閱讀這篇文章。 – ic3man7019

回答

1

只要您知道如何成爲理想的結構,您就不需要xsd。 首先,你需要用[Serializable]屬性來修飾你的類。然後,您可以使用System.Xml.Serialization命名空間中的屬性來控制結果。例如,在高度財產的情況下,它可以實現這樣的:

https://docs.microsoft.com/en-us/dotnet/standard/serialization/controlling-xml-serialization-using-attributes

+1

非常非常有幫助。謝謝。現在+1,稍後可能的答案。 – ic3man7019

相關問題