Как получить этот XmlAttribute

Из службы MusicBrainz REST я получаю следующий XML:

<artist-list offset="0" count="59">
  <artist type="Person" id="xxxxx" ext:score="100">
  ...

Используя WCF и XmlSerializationFormat, я могу получить атрибуты type и id... но как мне получить атрибут "ext:score"?

Это работает:

  public class Artist
  {
    [XmlAttribute("id")]
    public string ID { get; set; }

    [XmlAttribute("type")]
    public ArtistType Type { get; set; }

Но это не так:

[XmlAttribute("ext:score")]
public string Score { get; set; }

Выдает исключение сериализации. Я также пытался просто использовать "Score", но это не работает.

Любая помощь?

2 ответа

Решение

Атрибут называется "оценка" и находится в пространстве имен, на которое ссылается "ext", который предположительно является псевдонимом пространства имен xml.

Так что найдите, что "ext" отображает (ищите xmlns), и добавьте:

[XmlAttribute("score", Namespace="http://example.org/ext-9.1#")]
public string Score { get; set; }

Редактировать; нашел это здесь; увидеть xmlns:ext="http://example.org/ext-9.1#", Также обратите внимание, что основные объекты, кажется, находятся в xmlns="http://musicbrainz.org/ns/mmd-1.0#" что вам может потребоваться учитывать на уровне корня / объекта.

ext пространство имен score приписывать. Попробуйте указать пространство имен:

[XmlAttribute(AttributeName="score", Namespace="the ext namespace")]
Другие вопросы по тегам