Asp.net mvc 4 Web Api XML,如何设置编码,版本,xmlns:xsi和xsi:schemaLocation

Asp.net mvc 4 Web Api XML,如何设置编码,版本,xmlns:xsi和xsi:schemaLocation,asp.net-mvc-4,asp.net-web-api,xmlserializer,xml-encoding,Asp.net Mvc 4,Asp.net Web Api,Xmlserializer,Xml Encoding,我正在使用asp.net MVC4 Web Api 我已设定: Dim xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter xml.UseXmlSerializer = True 我已经创建了一个类,它指定了我需要的XML,并且运行良好 我快到了,但我不确定如何设置: <?xml version="1.0" encoding="utf-8"?> 以及如何设置元素属性: xmlns:xsi和xsi:sc

我正在使用asp.net MVC4 Web Api

我已设定:

Dim xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter
xml.UseXmlSerializer = True
我已经创建了一个类,它指定了我需要的XML,并且运行良好

我快到了,但我不确定如何设置:

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

以及如何设置元素属性:

xmlns:xsi和xsi:schemaLocation


我可以使用属性设置它吗

此答案延迟了一年,并针对WebAPI2进行了测试

WebApiConfig
类中启用XML声明

config.Formatters.XmlFormatter.WriterSettings.OmitXmlDeclaration = false;
然后添加
schemaLocation
属性或成员(我总是更喜欢属性)

输出:

<?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>

1.

此解决方案不适用于ASP.NET MVC 4.0和.NET 4.0上的WebApi。其中没有WriterSettings
<?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>