简体   繁体   English

具有多个名称空间和名称空间前缀的C#XML反序列化

[英]C# XML Deserialization with multiple namespaces and namespace prefixes

I'm pretty sure this has been asked and answered I just can't find it 我很确定这已经被询问并回答了,我只是找不到

I'm trying to deserialize XML into POCOs. 我正在尝试将XML反序列化为POCO。
This is the part im struggling with 这是我苦苦挣扎的部分

<Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri"

This is my entire XML: 这是我的整个XML:

<?xml version="1.0" encoding="UTF-8"?>
<Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceRequest>
<siri:RequestTimestamp>2012-10-28T20:56:00Z</siri:RequestTimestamp>
<siri:RequestorRef>SEUS</siri:RequestorRef>
<RequestPayload>
<TripRequest>
<Origin>
<LocationRef>
<StopPointRef>8500320</StopPointRef>
</LocationRef>
<DepArrTime>2018-10-09T08:05:51</DepArrTime>
</Origin>
<Destination>
<LocationRef>
<StopPointRef>8500322</StopPointRef>
</LocationRef>
<DepArrTime>2018-10-09T08:05:51</DepArrTime>
</Destination>
<Params>
<NumberOfResults>1</NumberOfResults>
<IncludeTrackSections>true</IncludeTrackSections>
<IncludeLegProjection>true</IncludeLegProjection>
<IncludeIntermediateStops>true</IncludeIntermediateStops>
</Params>
</TripRequest>
</RequestPayload>
</ServiceRequest>
</Trias>

How do I model the xmlns:siri in C#? 如何在C#中建模xmlns:siri My Class looks like this: 我的班级看起来像这样:

[XmlRoot(nameof(Trias), Namespace = "http://www.vdv.de/trias")]
public class Trias
{

    [XmlAttribute("version")]
    public string Version { get; set; }

    [XmlAttribute("xmlns")]
    public string Xmlns { get; set; }

    [XmlAttribute("siri")]
    public string Siri { get; set; }
}

Try to change your XmlAttribute for property Siri from [XmlAttribute("siri")] to [XmlAttribute(Namespace = "http://www.siri.org.uk/siri")] 试着改变你的XmlAttribute财产Siri[XmlAttribute("siri")][XmlAttribute(Namespace = "http://www.siri.org.uk/siri")]

[XmlRoot(nameof(Trias), Namespace = "http://www.vdv.de/trias")]
public class Trias
{

    [XmlAttribute("version")]
    public string Version { get; set; }

    [XmlAttribute("xmlns")]
    public string Xmlns { get; set; }

    [XmlAttribute(Namespace = "http://www.siri.org.uk/siri")]
    public string Siri { get; set; }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM