2

カスタム Spring 名前空間を作成しました。適切にデプロイされている場合などは問題なく動作しますが、Intellij はtool:expected-typeBean 参照の注釈を検証していません (つまり、任意のタイプの Bean を参照でき、Intellij は属性を赤で強調表示しません)。これらの参照のオートコンプリート。

などの他のtool機能は正常に動作しているようですtool:exports

Intellij は私のスキーマを認識し、期待される型の参照以外のすべてのオートコンプリート機能を提供します。

Intellij は、Parse custom beanコマンドを選択するときに、カスタム要素をさまざまな目的の Bean に正常に解析しています。

これは私が欲しいもののトリミングされたバージョンですが、これは私が現在試しているものです:

<xsd:element name="routed-channel">
    <xsd:annotation>
        <xsd:appinfo>
            <tool:annotation>
                <!-- This part works - other bean refs that require a MessageChannel can reference this channel -->
                <tool:exports type="org.springframework.integration.core.MessageChannel" />
            </tool:annotation>
        </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="recipient" minOccurs="1" maxOccurs="unbounded">
                <xsd:complexType>
                    <xsd:attribute name="channel" type="xsd:string" use="required">
                        <xsd:annotation>
                            <xsd:appinfo>
                                <tool:annotation kind="ref">
                                    <!-- This part does not work - IntelliJ allows a any reference here -->
                                    <tool:expected-type type="org.springframework.integration.core.MessageChannel" />
                                </tool:annotation>
                            </xsd:appinfo>
                        </xsd:annotation>
                    </xsd:attribute>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:string" use="required"/>
    </xsd:complexType>
</xsd:element>

IntelliJ IDEA v11.1.3 を使用しています。

何が間違っているのか、またはどのように修正できるのかについて、誰かが何らかの手がかりを提供できれば、それは素晴らしいことです.

4

2 に答える 2

1

Intellijバグベースの関連するバグレポートは次のとおりです: http://youtrack.jetbrains.com/issue/IDEA-87187

于 2012-12-10T12:41:48.953 に答える
0

IntelliJ 12 にアップグレードしたところ、これはもう問題ではありません。答えは、IntelliJ をアップグレードすることです。

于 2013-09-16T03:29:35.790 に答える