6

我正在使用 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

我可以使用属性设置它吗?

4

1 回答 1

6

这个答案延迟了一年,并针对 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>
于 2014-04-14T14:39:33.680 回答