Как получить этот 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")]