2

私の問題に適合する解決策を見つけようとしましたが、成功しませんでした。問題は次のとおりです。

私はXML構造の次の部分を持っています(私は影響を与えません)

<users>
  <array>
    <item>
      <username></username>
      <email></email>
    </item>
    ...
    <item>
      ...
    </item>
  <array>
</users>

XMLのその部分のクラス構造は次のとおりです。

@XmlRootElement(name = "users")
public class XmlUsers extends XmlData
{
    @XmlElement
    public XmlArray array;
}

@XmlRootElement(name = "array")
public class XmlArray
{
    @XmlElementRef(name = "item")
    public List<XmlItemData> items;
}

@XmlSeeAlso({ XmlUserData.class })
public abstract class XmlItemData
{
}

@XmlRootElement
public class XmlUserData extends XmlItemData
{
...
}

XmlUserData を「item」または「user」タグでラップしたいので、XmlUserData ルート要素名に注釈を付けたくありません。

XmlArrayレベルでこれを行う方法は? ご覧のとおり、XmlElementRef という名前を付けようとしましたが、これにより項目が null になります...

編集: ユーザーのコメントを誤って削除したと思います (名前は覚えていません)。失礼します。XmlElementRef の代わりに XmlElement を使用することについてでした。XmlItemData クラスにも追加された XmlTransient と一緒に役立ちました。しかし、今は null 要素のリストを取得しています。ここに私の XmlUserData クラスがあります:

@XmlRootElement
public class XmlUserData extends XmlItemData
{
    @XmlElement(name = "username")
    public String        username;

    @XmlElement(name = "first_name")
    public String        firstName;

    @XmlElement(name = "last_name")
    public String        lastName;

    @XmlElementWrapper(name = "links", required = false)
    @XmlElements({ @XmlElement(name = "delete"), @XmlElement(name = "next"),
            @XmlElement(name = "self"), @XmlElement(name = "users"),
            @XmlElement(name = "watched") })
    public List<XmlLink> links;

    @XmlElement(name = "url")
    public String        url;

    @XmlElement(name = "id")
    public int           id;

    @XmlElement(name = "fullname")
    public String        fullname;

    @XmlElement(name = "email")
    public String        email;
}

EDIT2: 不明なユーザー様、返信をもう一度投稿していただけますか?

そして、私はまだ XmlUserData タイプである必要がある XmlItemData 要素のリストに問題がありますが、それらは null です...任意のアイデア、私は何が間違っていますか...?

前もって感謝します!

EDIT3: クラス構造を JAXB でマーシャリングしました。以下のようになります。

<rsp>
  <total_results>0</total_results>
  <users>
    <array>
      <item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xmlUserData">
        <id>0</id>
      </item>
    </array>
  </users>
</rsp>

アンマーシャラーは item タグのこの行を期待できますか? その存在は、マーシャリングされていないメッセージに影響を与えますか...?

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xmlUserData"
4

0 に答える 0