Web Api XML, как установить кодировку, версию, xmlns:xsi и xsi:schemaLocation

Я использую 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

Могу ли я установить это с помощью атрибута?

1 ответ

Этот ответ задерживается на один год и протестирован для WebAPI2!

Включить декларацию XML в вашем WebApiConfig учебный класс

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>
Другие вопросы по тегам