Как получить этот xmlattribute
-
02-10-2019 - |
Вопрос
От службы отдыха Musicbrainz я получаю следующий XML:
<artist-list offset="0" count="59">
<artist type="Person" id="xxxxx" ext:score="100">
...
Используя WCF и XMLSERializationFormat, я могу получить атрибуты типа и идентификатор ... Но как мне получить «EXT: BACT»?
Это работает:
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; }
Это создает исключение сериализации. Я также пытался просто использовать «оценку», но это не работает.
Любая помощь?
Решение
Атрибут есть название «Оценка» и находится в пространстве имен, на который ссылаются «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")]