在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; }
它产生序列化异常。我也尝试过使用“得分”,但它不起作用。
任何帮助?
答案 0 :(得分:3)
属性名为“得分”,位于“ext”引用的名称空间中,可能是xml名称空间别名。
然后找到“ext”映射到的内容(查找xmlns),并添加:
[XmlAttribute("score", Namespace="http://example.org/ext-9.1#")]
public string Score { get; set; }
编辑;发现它here;见xmlns:ext="http://example.org/ext-9.1#"
。另请注意,主要对象似乎位于xmlns="http://musicbrainz.org/ns/mmd-1.0#"
中,您可能需要在根/对象级别进行说明。
答案 1 :(得分:1)
ext
是score
属性的命名空间。尝试指定命名空间:
[XmlAttribute(AttributeName="score", Namespace="the ext namespace")]