Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SOAP][WSDL] Problem z widocznością typu własnego
Forum PHP.pl > Forum > PHP
haryb
WItam,

Mam przykładowego
WSDLa którego testuje SoupUI
Dostaje jednak bład:
Error: Could not find type 'Client2@http://schemas.xmlsoap.org/wsdl/'. Do you mean to refer to the type named Client2@typens (in api.php.xml)?

Nie wiem dlaczego on nie widzi tego typu przy definicji kolejnego ?

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <definitions name="HaryApi"
  3. xmlns="http://schemas.xmlsoap.org/wsdl/"
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  5. xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  6. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  7. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  8. xmlns:http="http://www.w3.org/2003/05/soap/bindings/HTTP/"
  9. xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl">
  10.  
  11. <types>
  12. <xsd:schema targetNamespace="typens">
  13. <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
  14. <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
  15.  
  16. <xsd:complexType name="Client2">
  17. <xsd:all>
  18. <xsd:element name="Name" type="xsd:string" minOccurs="1" />
  19. </xsd:all>
  20. </xsd:complexType>
  21.  
  22. <xsd:complexType name="Person">
  23. <xsd:all>
  24. <xsd:element name="id" type="xsd:int" minOccurs="0" maxOccurs="1" default="0" />
  25. <xsd:element name="Street" type="Client2" minOccurs="0" />
  26. </xsd:all>
  27. </xsd:complexType>
  28. </xsd:schema>
  29. </types>
  30.  
  31. <message name="AddOper">
  32. <part name="nip" type="xsd:string"/>
  33. <part name="client" type="Person"/>
  34. </message>
  35. </definitions>
Damonsson
Nie musisz przypadkiem dać prefixu w type?

coś w stylu:

Linijka 25:
  1. <xsd:element name="Street" type="xsd:Client2" minOccurs="0" />


xsd:Client2

albo jedno z tego co zadeklarowałeś wyżej, bo nie wiem do czego się w tym odwołujesz czyli masz jeszcze takie możliwości:

soap:Client2
wsdl:Client2
soapenc:Client2
http:Client2
wsaw:Client2
haryb
A nie powinno wystarczyć sama nazwa typu który chwile wyżej zadeklarowałem ?
  1. <xsd:complexType name="Client2">

Po takim opisaniu własnego typu nie powinno być tak że mogę go używać w obrębie wsdl bez żadnych prefików ?
Podobnie odwołanie sie do kolejnego własnego typu Person w message ?
Damonsson
Dawno nie miałem do czynienia z xml, więc ręki sobie uciąć nie dam, ale wg mnie i tak musisz użyć prefixu i na to też wskazuje błąd. Ale może ktoś bardziej zorientowany w tym temacie, będzie mógł ze 100% pewnością coś powiedzieć.
haryb
No ja tak samo, bardzo dawno nic nie robiłem z WSDLa teraz takie połaczenie własnych typów potrzebuje i w sumie na razie jestem w kropce, bo jak bym nie kombinował z tym to rzuca błedem.
Pyton_000
Spróbuj dodać
Kod
targetNamespace="typens"

do
Kod
<definitions
haryb
  1. <definitions name="HaryApi"
  2. xmlns="http://schemas.xmlsoap.org/wsdl/"
  3. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  4. xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  5. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  6. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  7. xmlns:http="http://www.w3.org/2003/05/soap/bindings/HTTP/"
  8. xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
  9. targetNamespace="typens">


Niestety to samo sad.gif
Pyton_000
Zobacz tak:
  1. <wsdl:definitions
  2. name="HaryApi"
  3. xmlns:tns="http://twojastrona.pl/"
  4. xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  5. xmlns:s="http://www.w3.org/2001/XMLSchema"
  6. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  7. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  8. targetNamespace="http://twojastrona.pl/">
  9.  
  10. <wsdl:types>
  11. <s:schema targetNamespace="http://twojastrona.pl/">
  12. <s:complexType name="Client2">
  13. <s:all>
  14. <s:element name="Name" type="s:string" minOccurs="1" />
  15. </s:all>
  16. </s:complexType>
  17. <s:complexType name="Person">
  18. <s:all>
  19. <s:element name="id" type="s:int" minOccurs="0" maxOccurs="1" default="0" />
  20. <s:element name="Street" type="tns:Client2" minOccurs="0" />
  21. </s:all>
  22. </s:complexType>
  23. </s:schema>
  24. </s:schema>
  25. </wsdl:types>
  26.  
  27. <wsdl:message name="AddOper">
  28. <wsdl:part name="nip" type="s:string"/>
  29. <wsdl:part name="client" type="tns:Person"/>
  30. </wsdl:message>
  31. </wsdl:definitions>
haryb
Jedno zamknięcie tam podałeś za dużo, ale jak poprawiłem to już postęp bo SoupUI nie rzuca tego błedu więc myślę że tak będzie śmigać.
Teraz dalej czekam mnie debugowanie wszystkich metod, operacji, ale ten bład z referencja zniknął wiec jest szansa że bedzie dalej good:)

Dzięki


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <wsdl:definitions
  3. name="HaryApi"
  4. xmlns:tns="http://twojastrona.pl/"
  5. xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  6. xmlns:s="http://www.w3.org/2001/XMLSchema"
  7. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  8. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  9. targetNamespace="http://twojastrona.pl/">
  10.  
  11. <wsdl:types>
  12. <s:schema targetNamespace="http://twojastrona.pl/">
  13. <s:complexType name="Client2">
  14. <s:all>
  15. <s:element name="Name" type="s:string" minOccurs="1" />
  16. </s:all>
  17. </s:complexType>
  18. <s:complexType name="Person">
  19. <s:all>
  20. <s:element name="id" type="s:int" minOccurs="0" maxOccurs="1" default="0" />
  21. <s:element name="Street" type="tns:Client2" minOccurs="0" />
  22. </s:all>
  23. </s:complexType>
  24. </s:schema>
  25. </wsdl:types>
  26.  
  27. <wsdl:message name="AddOper">
  28. <wsdl:part name="nip" type="s:string"/>
  29. <wsdl:part name="client" type="tns:Person"/>
  30. </wsdl:message>
  31. </wsdl:definitions>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.