[英]Using XMLSerializer to add attributes to a Class Member
我正在嘗試編寫一個使用XmlSerialzer輸出xml的WCF服務。 我需要一個特定的xml輸出,這就是我沒有使用DataContract Seriailzer的原因。 具體來說,我正在編寫一個目錄服務Web(csw),它具有已定義的架構等。
我一直在嘗試編寫類,然后測試輸出的XML。 這相當繁瑣,我可能會切換到xsd實用程序。 我想知道的是我可以將xml屬性添加到其他類成員中,還是將那些修飾的xmlattributes添加到根元素即類名? 與使用XDocument手動編寫CML相比,似乎存在靈活性問題。 每次我需要嵌套元素(不是集合)似乎我需要創建一個新類? 那正確嗎?
我需要的輸出xml是:
<ows:ContactInfo>
<ows:OnlineResource
xlink:href="mailto:enquiry@gis.nottscc.gov.uk"/>
</ows:ContactInfo>
這是我的班級:
public class ContactInfo
{
[XmlElement]
public string OnlineResource = "";
[XmlElementAttribute(ElementName = "OnlineResource",Namespace = "http://www.w3.org /1999/xlink")]
public string href = "mailto:enquiry@gis.nottscc.gov.uk";
}
輸出xml如下:
<ows:ContactInfo xlink:href="mailto:enquiry@gis.nottscc.gov.uk">
<ows:OnlineResource>mailto:enquiry@gis.nottscc.gov.uk</ows:OnlineResource>
</ows:ContactInfo>
您將需要更改對象模型以實現此目的...嘗試這樣的事情......
[XmlType("ContactInfo")]
public class ContactInfo
{
[XmlElement("OnlineResource")]
public OnlineResource Resource { get; set; }
}
[XmlType("OnlineResource")]
public class OnlineResource
{
[XmlAttribute("href")]
public string href = "mailto:enquiry@gis.nottscc.gov.uk";
}
輸出是......
<ContactInfo>
<OnlineResource href="mailto:enquiry@gis.nottscc.gov.uk" />
</ContactInfo>
當然,你需要調整以獲得你的命名空間等,但這是朝着正確的方向前進...希望它有幫助:)
是的..當你嵌套元素時,你需要一個新的類...這有道理嗎? 原始如何導致嵌套值集?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.