6

Sto usando asp.net MVC4 Web Api.Web Api XML, Come impostare Codifica, Versione, xmlns: xsi e xsi: schemaLocation

ho impostato:

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

Ho creato una classe che specifica l'XML ho bisogno e questo funziona bene.

sono quasi lì, ma io non sono sicuro di come impostare il:

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

e come impostare l'elemento attributi:

xmlns: xsi e XSI: schemaLocation

Posso impostare questo usando un attributo?

risposta

5

Questa risposta è ritardata di un anno e testata per WebAPI2!

Abilita dichiarazione XML nella classe WebApiConfig

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

Quindi aggiungere schemaLocation proprietà o membro (preferisco sempre di proprietà)

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

uscita:

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

Questa soluzione non funziona su ASP.NET MVC 4.0 e WebApi su .NET 4.0. Non ci sono WriterSettings in esso –