XML-Attribut-nicht immer-namespace-Präfix

Brauche ich um zu generieren, die während der folgenden XML-Serialisierung:
(fragment)

<IncidentEvent a:EventTypeText="Beginning" xmlns:a="http://foo">
  <EventDate>2013-12-18</EventDate>
  <EventTime>00:15:28</EventTime>
</IncidentEvent>

Der betreffenden Klasse sieht wie folgt aus:

public class IncidentEvent
{
    public string EventDate { get; set; }
    public string EventTime { get; set; }

    [XmlAttribute("EventTypeText", Namespace = "http://foo")]
    public string EventTypeText { get; set; }

}

Scheint es, dass der serializer ist zu bemerken, dass der namespace wird deklariert in einem xmlns: an der Wurzel und ignoriert mein Attribut. Ich habe auch versucht, die folgenden:

[XmlRoot(Namespace = "http://foo")]
public class IncidentEvent
{
    public string EventDate { get; set; }
    public string EventTime { get; set; }

    private XmlSerializerNamespaces _Xmlns;

    [XmlNamespaceDeclarations]
    public XmlSerializerNamespaces Xmlns
    {
        get
        {
            if (_Xmlns == null)
            {
                _Xmlns = new XmlSerializerNamespaces();
                _Xmlns.Add("ett", "http://foo");
            }

            return _Xmlns;
        }

        set
        {
            _Xmlns = value;
        }
    }


    [XmlAttribute("EventTypeText", Namespace = "http://foo")]
    public string EventTypeText { get; set; }

}

Diese Ergebnisse in der folgenden XML-Code:

  <ett:IncidentEvent EventTypeText="Beginning" xmlns:ett="http://foo">
    <ett:EventDate>2013-12-18</ett:EventDate>
    <ett:EventTime>00:15:28</ett:EventTime>
  </ett:IncidentEvent>

Ist nicht das, was ich will. Das element sollte nicht vorangestellt werden, das Attribut sein sollte. Was erforderlich ist, um dem serializer zu verstehen, was ich will?

InformationsquelleAutor Devin Goble | 2013-12-18
Schreibe einen Kommentar