试图将XML字符串解析为c#对象,但没有成功

试图将XML字符串解析为c#对象,但没有成功,c#,xml,xmlserializer,C#,Xml,Xmlserializer,我正在尝试将一些XML字符串反序列化为一个对象。但总是会出现下一个错误: XML文档(1,2)中存在错误。不是 预料之中 我还试图删除xmlns:vehicle=\”http://www.travelport.com/schema/vehicle_v48_0\“从xml 但后来我发现,‘vehicle’是一个未声明的前缀。第1行,位置2 目标是: namespace VehicleMedia { [XmlRoot(ElementName = "SupplierRate"

我正在尝试将一些XML字符串反序列化为一个对象。但总是会出现下一个错误:

XML文档(1,2)中存在错误。不是 预料之中

我还试图删除
xmlns:vehicle=\”http://www.travelport.com/schema/vehicle_v48_0\“
从xml 但后来我发现,‘vehicle’是一个未声明的前缀。第1行,位置2

目标是:

namespace VehicleMedia
{
    [XmlRoot(ElementName = "SupplierRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class SupplierRate
    {
        [XmlAttribute(AttributeName = "RateForPeriod")]
        public string RateForPeriod { get; set; }
        [XmlAttribute(AttributeName = "ExtraMileageCharge")]
        public string ExtraMileageCharge { get; set; }
    }

    [XmlRoot(ElementName = "VehicleRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleRate
    {
        [XmlElement(ElementName = "SupplierRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public SupplierRate SupplierRate { get; set; }
        [XmlAttribute(AttributeName = "RatePeriod")]
        public string RatePeriod { get; set; }
    }

    [XmlRoot(ElementName = "Vehicle", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class Vehicle
    {
        [XmlElement(ElementName = "VehicleRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public VehicleRate VehicleRate { get; set; }
        [XmlAttribute(AttributeName = "VendorCode")]
        public string VendorCode { get; set; }
        [XmlAttribute(AttributeName = "AirConditioning")]
        public string AirConditioning { get; set; }
        [XmlAttribute(AttributeName = "TransmissionType")]
        public string TransmissionType { get; set; }
        [XmlAttribute(AttributeName = "VehicleClass")]
        public string VehicleClass { get; set; }
        [XmlAttribute(AttributeName = "Category")]
        public string Category { get; set; }
        [XmlAttribute(AttributeName = "DoorCount")]
        public string DoorCount { get; set; }
        [XmlAttribute(AttributeName = "AcrissVehicleCode")]
        public string AcrissVehicleCode { get; set; }
    }

    [XmlRoot(ElementName = "MediaItem", Namespace = "http://www.travelport.com/schema/common_v48_0")]
    public class MediaItem
    {
        [XmlAttribute(AttributeName = "url")]
        public string Url { get; set; }
        [XmlAttribute(AttributeName = "sizeCode")]
        public string SizeCode { get; set; }
    }

    [XmlRoot(ElementName = "VehicleWithMediaItems", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleWithMediaItems
    {
        [XmlElement(ElementName = "Vehicle", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public Vehicle Vehicle { get; set; }
        [XmlElement(ElementName = "MediaItem", Namespace = "http://www.travelport.com/schema/common_v48_0")]
        public MediaItem MediaItem { get; set; }
    }

    [XmlRoot(ElementName = "VehicleMediaLinksRsp", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleMediaLinksRsp
    {
        [XmlElement(ElementName = "VehicleWithMediaItems", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public List<VehicleWithMediaItems> VehicleWithMediaItems { get; set; }
        [XmlAttribute(AttributeName = "TransactionId")]
        public string TransactionId { get; set; }
        [XmlAttribute(AttributeName = "ResponseTime")]
        public string ResponseTime { get; set; }
        [XmlAttribute(AttributeName = "vehicle", Namespace = "http://www.w3.org/2000/xmlns/")]
        public string Vehicle { get; set; }
        [XmlAttribute(AttributeName = "common_v48_0", Namespace = "http://www.w3.org/2000/xmlns/")]
        public string Common_v48_0 { get; set; }
    }

}
命名空间车辆媒体
{
[XmlRoot(ElementName=“SupplierRate”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共级供应商
{
[XmlAttribute(AttributeName=“RateForPeriod”)]
公共字符串RateForPeriod{get;set;}
[XmlAttribute(AttributeName=“ExtraMileageCharge”)]
公共字符串ExtraMileageCharge{get;set;}
}
[XmlRoot(ElementName=“VehicleRate”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公车
{
[XmlElement(ElementName=“SupplierRate”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共提供程序提供程序{get;set;}
[XmlAttribute(AttributeName=“RatePeriod”)]
公共字符串RatePeriod{get;set;}
}
[XmlRoot(ElementName=“Vehicle”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公车
{
[XmlElement(ElementName=“VehicleRate”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共车辆通行证{get;set;}
[xmldattribute(AttributeName=“VendorCode”)]
公共字符串VendorCode{get;set;}
[XmlAttribute(AttributeName=“空调”)]
公共字符串空调{get;set;}
[XmlAttribute(AttributeName=“TransmissionType”)]
公共字符串传输类型{get;set;}
[XmlAttribute(AttributeName=“VehicleClass”)]
公共字符串VehicleClass{get;set;}
[XmlAttribute(AttributeName=“Category”)]
公共字符串类别{get;set;}
[XmlAttribute(AttributeName=“DoorCount”)]
公共字符串门计数{get;set;}
[xmldattribute(AttributeName=“acrissvicecode”)]
公共字符串AcrissVehicleCode{get;set;}
}
[XmlRoot(ElementName=“MediaItem”,命名空间=”http://www.travelport.com/schema/common_v48_0")]
公共类MediaItem
{
[XmlAttribute(AttributeName=“url”)]
公共字符串Url{get;set;}
[xmldattribute(AttributeName=“sizeCode”)]
公共字符串大小码{get;set;}
}
[XmlRoot(ElementName=“VehicleWithMediaItems”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
带媒体项目的公共类车辆
{
[XmlElement(ElementName=“Vehicle”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共车辆{get;set;}
[XmlElement(ElementName=“MediaItem”,命名空间=”http://www.travelport.com/schema/common_v48_0")]
公共MediaItem MediaItem{get;set;}
}
[XmlRoot(ElementName=“VehicleMediaLinksRsp”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共级车辆MedialinkSRSP
{
[XmlElement(ElementName=“VehicleWithMediaItems”,命名空间=”http://www.travelport.com/schema/vehicle_v48_0")]
公共列表车辆WithMediaItems{get;set;}
[XmlAttribute(AttributeName=“TransactionId”)]
公共字符串TransactionId{get;set;}
[XmlAttribute(AttributeName=“ResponseTime”)]
公共字符串响应时间{get;set;}
[XmlAttribute(AttributeName=“vehicle”,命名空间=”http://www.w3.org/2000/xmlns/")]
公共字符串Vehicle{get;set;}
[XmlAttribute(AttributeName=“common\u v48\u 0”,命名空间=”http://www.w3.org/2000/xmlns/")]
公共字符串公共_v48_0{get;set;}
}
}
例如,xml字符串是:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace ConsoleApplication166
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            string file = File.ReadAllText(FILENAME);
            StringReader sReader = new StringReader(file);
            XmlReader reader = XmlReader.Create(sReader);
            XmlSerializer serializer = new XmlSerializer(typeof(VehicleMediaLinksRsp));
            VehicleMediaLinksRsp vehicleMediaLinksRsp = (VehicleMediaLinksRsp)serializer.Deserialize(reader);
        }
    }
    [XmlRoot(ElementName = "SupplierRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class SupplierRate
    {
        [XmlAttribute(AttributeName = "RateForPeriod")]
        public string RateForPeriod { get; set; }
        [XmlAttribute(AttributeName = "ExtraMileageCharge")]
        public string ExtraMileageCharge { get; set; }
    }

    [XmlRoot(ElementName = "VehicleRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleRate
    {
        [XmlElement(ElementName = "SupplierRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public SupplierRate SupplierRate { get; set; }
        [XmlAttribute(AttributeName = "RatePeriod")]
        public string RatePeriod { get; set; }
    }

    [XmlRoot(ElementName = "Vehicle", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class Vehicle
    {
        [XmlElement(ElementName = "VehicleRate", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public VehicleRate VehicleRate { get; set; }
        [XmlAttribute(AttributeName = "VendorCode")]
        public string VendorCode { get; set; }
        [XmlAttribute(AttributeName = "AirConditioning")]
        public string AirConditioning { get; set; }
        [XmlAttribute(AttributeName = "TransmissionType")]
        public string TransmissionType { get; set; }
        [XmlAttribute(AttributeName = "VehicleClass")]
        public string VehicleClass { get; set; }
        [XmlAttribute(AttributeName = "Category")]
        public string Category { get; set; }
        [XmlAttribute(AttributeName = "DoorCount")]
        public string DoorCount { get; set; }
        [XmlAttribute(AttributeName = "AcrissVehicleCode")]
        public string AcrissVehicleCode { get; set; }
    }

    [XmlRoot(ElementName = "MediaItem", Namespace = "http://www.travelport.com/schema/common_v48_0")]
    public class MediaItem
    {
        [XmlAttribute(AttributeName = "url")]
        public string Url { get; set; }
        [XmlAttribute(AttributeName = "sizeCode")]
        public string SizeCode { get; set; }
    }

    [XmlRoot(ElementName = "VehicleWithMediaItems", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleWithMediaItems
    {
        [XmlElement(ElementName = "Vehicle", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public Vehicle Vehicle { get; set; }
        [XmlElement(ElementName = "MediaItem", Namespace = "http://www.travelport.com/schema/common_v48_0")]
        public MediaItem MediaItem { get; set; }
    }

    [XmlRoot(ElementName = "VehicleMediaLinksRsp", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
    public class VehicleMediaLinksRsp
    {
        [XmlElement(ElementName = "VehicleWithMediaItems", Namespace = "http://www.travelport.com/schema/vehicle_v48_0")]
        public List<VehicleWithMediaItems> VehicleWithMediaItems { get; set; }
        [XmlAttribute(AttributeName = "TransactionId")]
        public string TransactionId { get; set; }
        [XmlAttribute(AttributeName = "ResponseTime")]
        public string ResponseTime { get; set; }
        [XmlAttribute(AttributeName = "vehicle", Namespace = "http://www.w3.org/2000/xmlns/")]
        public string Vehicle { get; set; }
        [XmlAttribute(AttributeName = "common_v48_0", Namespace = "http://www.w3.org/2000/xmlns/")]
        public string Common_v48_0 { get; set; }
    }

 
}