6

我正在使用asp.net MVC4 Web Api。Web Api XML,如何設置編碼,版本,xmlns:xsi和xsi:schemaLocation

我已設置:

Dim xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter 
xml.UseXmlSerializer = True 

我創建了一個類,指定我需要的XML,這工作得很好。

我幾乎有,但我不知道如何設置:

<?xml version="1.0" encoding="utf-8"?> 

以及如何設置元素的屬性:

的xmlns:XSI和XSI:的schemaLocation

我可以設置這使用一個屬性?

回答

5

這個答案是延遲一年,並經過WebAPI2測試!

WebApiConfig類啓用XML聲明

config.Formatters.XmlFormatter.WriterSettings.OmitXmlDeclaration = false; 

然後加入schemaLocation屬性或成員(我總是喜歡屬性)

public class SampleData 
{ 
    [XmlAttribute(AttributeName = "schemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] 
    public string SchemaLocation { get; set; } 

    //other properties 
    public string Prop1 { get; set; } 

    public SampleData() 
    { 
     SchemaLocation = "http://localhost/my.xsd"; 
    } 
} 

輸出:

<?xml version="1.0" encoding="utf-8"?> 
<TestModel 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://localhost/my.xsd"> 
    <Prop1>1</Prop1> 
</TestModel> 
+0

此解決方案不起作用ASP.NET MVC 4.0和.NET 4.0上的WebApi。其中沒有WriterSettings –