6

私はasp.net MVC4 Web APIを使用しています。私が設定しているWeb Api XML、エンコーディング、バージョン、xmlns:xsiおよびxsi:schemaLocationの設定方法

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

を私は必要なXMLを指定し、これがうまく機能したクラスを作成しました。

は、私はほとんどそこですが、私は、設定方法がわからない:

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

を、どのように要素を設定するための属性:

のxmlns:XSIとXSI:schemaLocationの

は私が設定できますこれは属性を使用していますか?

答えて

5

この回答は1年間遅れてWebAPI2でテストされました!

、出力

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

(私は常にプロパティを好む)schemaLocationプロパティまたはメンバーを追加するには、WebApiConfigクラスで

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

をXML宣言を有効にする:

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

このソリューションは動作しません。 ASP.NET MVC 4.0および.NET 4.0上のWebApiについてそこにはWriterSettingsがありません –