0

このスキーマを使用する場合:

<?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified">
<xsd:element name="Chick">
   <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="count" type="xsd:decimal" />
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>

このwsdlを使用すると:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.example.org/test/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="test"
xmlns:chi="chick"
targetNamespace="http://www.example.org/test/">
<wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/test/">
        <xsd:include schemaLocation="testschema.xsd"></xsd:include>
        <xsd:include  id="ada" schemaLocation="testschema.xsd" />
        <xsd:element name="doTheRightThing">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element ref="Chick" />
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
        <xsd:element name="doTheRightThingResponse">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="out" type="xsd:string" />
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:schema>
</wsdl:types>
<wsdl:message name="doTheRightThingRequest">
    <wsdl:part element="tns:doTheRightThing" name="parameters" />
</wsdl:message>
<wsdl:message name="doTheRightThingResponse">
    <wsdl:part element="tns:doTheRightThingResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="test">
    <wsdl:operation name="doTheRightThing">
        <wsdl:input message="tns:doTheRightThingRequest" />
        <wsdl:output message="tns:doTheRightThingResponse" />
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="testSOAP" type="tns:test">
    <soap:binding style="document"
        transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="doTheRightThing">
        <soap:operation
            soapAction="http://www.example.org/test/doTheRightThing" />
        <wsdl:input>
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output>
            <soap:body use="literal" />
        </wsdl:output>
    </wsdl:operation>
</wsdl:binding>
<wsdl:service name="test">
    <wsdl:port binding="tns:testSOAP" name="testSOAP">
        <soap:address location="http://www.example.org/" />
    </wsdl:port>
</wsdl:service>
    </wsdl:definitions>

このエラーメッセージが表示されます:

WSDLのスキーマタイプシステムの構築中にエラーが発生しました:D:\ Oracle \ Middleware_11.1.1.6.0 \ user_projects \ domains \ osb_cookbook_domain \ test:0:エラー:src-resolve.a:要素「Chick」が見つかりませんでした。Chick @ http://www.example.org/test/(testschema内)という名前の要素を参照することを意味しますか?

wsdlでこの行を変更した場合:

 <xsd:element ref="Chick" />

これに:

 <xsd:element ref="tns:Chick" />

デプロイできませんでした。OEPEは次のエラーメッセージを返します。

WSDLが意味的に有効ではありません:エラー:src-resolve:要素'Chick @ http://www.example.org/test/'が見つかりません。

これはバグですか?

4

1 に答える 1

0

パッチ14003546はこの問題を解決しました:

スキーマが埋め込まれたWSDLに名前空間が含まれていないため検証に失敗する

于 2012-08-09T15:25:56.943 に答える