6

Używam asp.net MVC4 Web Api.Web Api XML, jak ustawić kodowanie, wersja, xmlns: xsi i xsi: schemaLocation

mam ustawione:

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

Stworzyłem klasę, która określa XML I potrzebują i to działa dobrze.

Jestem prawie na miejscu, ale nie jestem pewien, w jaki sposób ustawić:

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

i jak ustawić element atrybuty:

xmlns: xsi i xsi: schemaLocation

mogę ustawić to za pomocą atrybutu?

Odpowiedz

5

Ta odpowiedź jest opóźniona o rok i przetestowana pod kątem WebAPI2!

Włącz deklarację XML w swojej klasie WebApiConfig

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

Następnie dodać schemaLocation nieruchomości lub członka (ja zawsze wolę własność)

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"; 
    } 
} 

wyjściowa:

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

To rozwiązanie nie działa na ASP.NET MVC 4.0 i WebApi na .NET 4.0. Nie ma w nim ustawień WriterSettings –

Powiązane problemy