質問

MusicBrainz RESTサービスから、次のXMLを取得します。

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

WCFおよびXMLSerializationFormatを使用して、タイプと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; }

シリアル化例外を生成します。また、「スコア」を使用してみましたが、機能しません。

何か助けがありますか?

役に立ちましたか?

解決

属性はです 名前が付けられました 「スコア」、そして「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")]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top