0

このドキュメントのこの XSD を考えると

<xs:element name="jdbc-user-service" substitutionGroup="security:any-user-service">
    <xs:annotation> .. etc </xs:annotation>
    <xs:complexType>
        <xs:attribute name="id" type="xs:token"></xs:attribute>
        <xs:attributeGroup ref="security:jdbc-user-service.attlist"/>
    </xs:complexType>
</xs:element>

<xs:attributeGroup name="jdbc-user-service.attlist">
    <xs:attribute name="data-source-ref" use="required" type="xs:token">
    </xs:attribute>
    <xs:attribute name="cache-ref" type="xs:token">
    </xs:attribute>
    <xs:attribute name="users-by-username-query" type="xs:token">
    </xs:attribute>
    <xs:attribute name="authorities-by-username-query" type="xs:token">
    </xs:attribute>
    <xs:attribute name="group-authorities-by-username-query" type="xs:token">     
    </xs:attribute>
    <xs:attribute name="role-prefix" type="xs:token">
    </xs:attribute>
</xs:attributeGroup>

次に、なぜ日食がこのエラーを私に与えているのですか

cvc-complex-type.2.4.a: 要素「jdbc-user-service」で始まる無効なコンテンツが見つかりました。「{"http://www.springframework.org/schema/security":user}」のいずれかが必要です。

次の XML を提供するとどうなりますか?

<jdbc-user-service
    data-source-ref="dataSource"
    users-by-username-query="SELECT u.uname, u.upwd, u.enabled FROM ucsdb.users u WHERE u.uname = ?"/>
4

1 に答える 1

2

私はあなたが物事を混同していると思います。おそらく、このエラーは別のXML から発生しています。投稿した XML (名前空間が正しいと仮定します。念のため以下を参照してください) は、XSD に従って有効です。

<jdbc-user-service xmlns="http://www.springframework.org/schema/security" data-source-ref="dataSource" users-by-username-query="SELECT u.uname, u.upwd, u.enabled FROM ucsdb.users u WHERE u.uname = ?"/>

投稿された XSD の唯一の「ユーザー」要素は、次の要素に由来します。

<xs:element name="user-service" substitutionGroup="security:any-user-service">
    <xs:annotation>
        <xs:documentation>Creates an in-memory UserDetailsService from a properties file or a list of "user" child elements. Usernames are converted to lower-case internally to allow for case-insensitive lookups, so this should not be used if case-sensitivity is required.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="user">
                <xs:annotation>
                    <xs:documentation>Represents a user in the application.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attributeGroup ref="security:user.attlist"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="id" type="xs:token">
            <xs:annotation>
                <xs:documentation>A bean identifier, used for referring to the bean elsewhere in the context.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="security:properties-file"/>
    </xs:complexType>
</xs:element>

そのため、代わりに「user-service」タグを使用する XML を検証する必要があります。

于 2012-10-18T03:12:54.877 に答える