2010-04-29 2 views
2

От службы MusicBrainz REST, я получаю следующий XML:Как получить этот XmlAttribute

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

Использование WCF и XmlSerializationFormat, я в состоянии получить тип и атрибуты идентификатор ... но как я получить "ext: оценка" один?

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

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; } 

Он производит исключение сериализации. Я также пробовал использовать «счет», но он не работает.

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

ответ

3

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

Так найти то, что "Ext" карты в (искать Xmlns), и добавить:

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

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

1

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

[XmlAttribute(AttributeName="score", Namespace="the ext namespace")] 
Смежные вопросы