从MVC xml响应中删除默认的xsd和xsi名称空间

时间:2014-04-09 15:11:50

标签: xml asp.net-mvc xsd xml-namespaces xsi

我需要从我的MVC api响应中删除xsd和xsi名称空间,但我无法使其工作。 (我需要删除它们的原因是因为我们将它发送给第三方地图提供程序,如果你包含它们它就不起作用。)我已经阅读了许多其他问题,例如{{3}这是问同样的事情,但答案不起作用,我已经尝试按照this实现自定义格式化程序,但遗憾的是没有运气。有谁知道我需要做什么?我应该放弃并使用处理程序吗?

型号:

[XmlType(TypeName = "MapPoints")]
[XmlRoot(DataType = "", Namespace = "http://tempuri.org/XMLFile1.xsd")]
public class MapPointList
{
    public MapPointList()
    {
        Points = new List<MapPoint>();
    }

    [XmlElement("Point")]
    public List<MapPoint> Points { get; set; }
}

控制器:

    public class MyController : ApiController
{
    public MyController()
    {
        var xmlFormatter = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
        xmlFormatter.SetSerializer<MapPointList>(new XmlSerializer(typeof (MapPointList)));
        xmlFormatter.SetSerializer<MapPoint>(new XmlSerializer(typeof (MapPoint)));
    }

    [HttpGet]
    public MapPointList SearchMap()
    {
        var items = new MapPointList();
        // get the items

        return items;
    }
}

我的根应该是这样的:

<MapPoints xmlns="http://tempuri.org/XMLFile1.xsd">

如果我需要添加更多信息,请与我们联系。

0 个答案:

没有答案