我从1C获得了两个几乎相同的xml:
<КонтактнаяИнформация的xmlns = "http://www.v8.1c.ru/ssl/contactinfo"的xmlns:XS = "http://www.w3.org/2001/XMLSchema"的xmlns:的xsi = "http://www.w3.org/2001/XMLSchema-instance"Представление= "улица, дом № дом, корпус корпус, квартира кв, город, 23505"> <Комментарий> 123 <Состав的xsi:type = "Адрес"Страна= "Украина"> <Состав的xsi:type = "АдресУкраина"> <НаселПункт>город<Улица>улица <ДопАдрЭл> <номерТип= "2010"Значение= "кв" /> <ДопАдрЭл> <номерТип= "1050"Значение= "корпус" /> <ДопАдрЭл> <номерТип= "1010"Значение= "дом" /> <ДопАдрЭлТипАдрЭл= "10100000"Значение= "23505" />
<КонтактнаяИнформация的xmlns = "http://www.v8.1c.ru/ssl/contactinfo"的xmlns:XS = "http://www.w3.org/2001/XMLSchema"的xmlns:的xsi = "http://www.w3.org/2001/XMLSchema-instance"Представление= "АНГОЛА, iuherf ihieh eruh iheruhopropr koerpf kpreko"> <Комментарий> egrw 34t34t43吨<Состав的xsi:type = "Адрес"Страна= "АНГОЛА"> <Состав的xsi:type = "xs:string"> iuherf ihieh埃鲁赫iheruhopropr koerpf kpreko
我想将它们反序列化为C#对象,所以我创建了几个类:
[XmlRoot("КонтактнаяИнформация", Namespace = "http://www.v8.1c.ru/ssl/contactinfo", IsNullable = false)]
public class SuContactInfo
{
[XmlAttribute("Представление", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string View { get; set; }
[XmlElement("Комментарий", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string Comment { get; set; }
[XmlElement("Состав", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public SuBaseAddress Composition { get; set; }
}
[XmlType("Адрес", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
[XmlRoot("Адрес", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public class SuXmlExternalComposition : SuBaseAddress
{
[XmlElement("Состав", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public SuBaseAddress InternalComposition { get; set; }
[XmlAttribute("Страна", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string Country { get; set; }
}
[XmlType("АдресУкраина", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
[XmlRoot("АдресУкраина", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public class SuXmlInternalComposition : SuBaseAddress
{
[XmlElement("ДопАдрЭл", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public SuXmlAdditionalAddressElement[] AdditionalAddressElement { get; set; }
[XmlElement("НаселПункт", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string City { get; set; }
[XmlElement("Улица", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string Street { get; set; }
}
[XmlRoot(Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public class SuXmlAdditionalAddressElement
{
[XmlElement("ДопАдрЭл", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public SuXmlNumber Number { get; set; }
[XmlAttribute("ТипАдрЭл", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string AddressTypeElement { get; set; }
[XmlAttribute("Значение", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string Value { get; set; }
}
[XmlRoot(Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public class SuXmlNumber
{
[XmlAttribute("Тип", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string Type { get; set; }
[XmlAttribute("Значение", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
public string SuValue { get; set; }
}
[XmlInclude(typeof(SuXmlExternalComposition))]
[XmlInclude(typeof(SuXmlInternalComposition))]
[XmlInclude(typeof(SuStringAddress))]
[XmlType("Состав", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
[XmlRoot("Состав", Namespace = "http://www.v8.1c.ru/ssl/contactinfo", IsNullable = false)]
public abstract class SuBaseAddress { }
[XmlType("string", Namespace = "http://www.v8.1c.ru/ssl/contactinfo")]
[XmlRoot("string", Namespace = "http://www.v8.1c.ru/ssl/contactinfo", IsNullable = false)]
public class SuStringAddress : SuBaseAddress
{
[XmlText]
public string CommaSeparatedAddress { get; set; }
}
并且遇到了运行时错误
"Указанный тип не был распознан: имя="string", пространство имен="http://www.w3.org/2001/XMLSchema""
有人可以帮我理解错误的位置吗?