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>