3

サーバーとクライアント間の安定したインターフェースを設定するために、JAXB を DTO として使用していました。とにかくこれは関係ありません。重要なのは、次のコンパイル エラーが発生する一連のクラスを作成したことです。

このコンテキストでは、名前空間 'namespace' と名前 'name' を持つ XML 要素宣言を解決できません

Eclipse は、引用符内の「名前」にエラーとして下線を付けました。このクラスは、xjc が生成する代わりに手動で作成されます。

@XmlRootElement(name="name", namespace="namespace")
@XmlType(name="")
public class UserDTO {

    private UserType userType;

    @XmlElement
    public UserType getDTO(){
        return userType;
    }

    public void setDTO(UserType userType){
        this.userType=userType;
    }
}

ここで、UserType は xjc によって生成されたクラスです

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "userType", propOrder = {
    "userId",
    "userName"
})
public class UserType {getter;setter}

したがって、基本的に UserDTO は、サブ jaxb タイプをラップする単なるラッパーです。

とにかく、このコードが Netbeans で完全に機能したことを言及するだけで、それがプラットフォームに依存していたかどうかはわかりません (そうあるべきではありません) が、Eclipse に関しては、エラーによりコンパイルが妨げられました。

プロジェクトを実行する環境は次のとおりです。 1. MacOsX Lion 2. JDK: 1.6.0_37 3. Eclipse バージョン: Juno with Package 1 4. JAXB プラットフォーム: Generic JAXB 2.1

誰でもアイデアを共有できますか?


ps:マヌエルが提案したように、JDK情報とライブラリ設定を追加しました。

4

1 に答える 1

1

私はこの問題に直面しました。複数のスキーマ、少なくとも 2 つのスキーマがあり、どちらにも名前空間がなく、そのうちの 1 つに名前空間を割り当てるだけです。

于 2013-01-13T06:35:51.163 に答える