WSDL Type vs Element

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Niekk
  • Registratie: September 2007
  • Laatst online: 12-04-2021

Niekk

Human-readable is relatief

Topicstarter
Hoi,

Ik heb een leuke WSDL..: https://services.signet.nl/webservice.wsdl
(Hier heb ik al eens vaker wat vragen over gesteld)

Het probleem is, echter:
XML validation started.
webservice.wsdl:86,8
ERROR: In part "parameters", attribute type's value "tns:postcodeRequest" is not a valid xml schema type available in this wsdl file. : Specify a valid schema type value for type attribute.

webservice.wsdl:90,8
ERROR: In part "fiberRows", attribute element's value "tns:frow" is not a valid xml schema element available in this wsdl file. : Specify a valid schema element value for element attribute.

webservice.wsdl:91,8
ERROR: In part "dslRows", attribute element's value "tns:drow" is not a valid xml schema element available in this wsdl file. : Specify a valid schema element value for element attribute.

3 Error(s), 0 Warning(s).
XML validation finished.
Het probleem: als ik van die types elements maak, of andersom, dan klaagt de XML validator niet meer, maar werkt het niet meer in PHP.. wat doe ik fout ?

Iemand enig idee ? :)

Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 12-09 14:39

mulder

ik spuug op het trottoir

Bestaan die elementen in de namespace tns, is dit een referentie o.i.d? Eerste stukkie wsdl posten misschien?

Edit, waarom heb je uberhaupt die tns namespace?

[ Voor 40% gewijzigd door mulder op 21-06-2010 16:10 ]

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • Niekk
  • Registratie: September 2007
  • Laatst online: 12-04-2021

Niekk

Human-readable is relatief

Topicstarter
mulder schreef op maandag 21 juni 2010 @ 16:08:
Bestaan die elementen in de namespace tns, is dit een referentie o.i.d? Eerste stukkie wsdl posten misschien?

Edit, waarom heb je uberhaupt die tns namespace?
De WSDL kan bezichtigd worden via die link hierboven

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 22:43
Weet je wat de termen betekenen? Je hebt elementen in je schema en die hebben een bepaald type. Elementen en types worden gedefinieerd binnen een namespace en als je verwijst naar 1 van beide moet je die namespace gebruiken (evt. prefix)

Elementen zie je terug in de XML, types beschrijven alleen wat erin zit.

Acties:
  • 0 Henk 'm!

  • Niekk
  • Registratie: September 2007
  • Laatst online: 12-04-2021

Niekk

Human-readable is relatief

Topicstarter
IntToStr schreef op maandag 21 juni 2010 @ 16:20:
Weet je wat de termen betekenen? Je hebt elementen in je schema en die hebben een bepaald type. Elementen en types worden gedefinieerd binnen een namespace en als je verwijst naar 1 van beide moet je die namespace gebruiken (evt. prefix)

Elementen zie je terug in de XML, types beschrijven alleen wat erin zit.
Het "probleem" is echter dat ik mijn eigen complexType's heb. Omdat ik een soort van "Structures" met data verzamel, en in een array terug (tenminste, probeer) geef.

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Waarom ben je eigenlijk zelf je wsdl aan het bouwen? Ik zou persoonlijk toch wel meteen opzoek gaan naar een tooltje oid. WSDL is ook niet bedoeld om zelf te bouwen of te lezen IMHO.

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 22:43
Je kunt ze best zelf bouwen, die dingen zien er altijd hetzelfde uit buiten het schema gedeelte.

Je foutmeldingen komen omdat je geen tns namespace hebt gedefinieerd. Deze prefix wordt vaak als default gebruikt voor de targetnamespace, maar dan moet je hem wel benoemen.

Let ook op dat je soap prefixes gebruikt, maar ook deze niet definieert.

Zie hier een stukje geanonimiseerde data van een wsdl:
code:
1
2
3
4
5
6
7
8
9
10
11
<wsdl:definitions name="XXXXXXX"
    targetNamespace="http://www.example.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://www.example.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsaw="http://www.w3.org/2005/08/addressing/wsdl">
        <wsdl:types>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            attributeFormDefault="qualified" elementFormDefault="unqualified"
            targetNamespace="http://www.example.com">
            <xsd:include schemaLocation="XXXXXXX.xsd" />
        </xsd:schema>
    </wsdl:types>

Binnen je XSD dan een namespace gebruiken die gelijk is aan die van targetnamespace van het xsd:schema element in je WSDL.

Neem anders nog wat tutorials door over WSDL en XSD, bijv. op w3schools.com of zo.

Acties:
  • 0 Henk 'm!

  • M55
  • Registratie: September 2003
  • Niet online

M55

Ik weet niet of het de bedoeling is, maar je hebt directory listing aan staan op die server
https://services.signet.nl/ :)

Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 02:47

Nick_S

++?????++ Out of Cheese Error

IntToStr schreef op maandag 21 juni 2010 @ 21:24:
Je kunt ze best zelf bouwen, die dingen zien er altijd hetzelfde uit buiten het schema gedeelte.

Je foutmeldingen komen omdat je geen tns namespace hebt gedefinieerd. Deze prefix wordt vaak als default gebruikt voor de targetnamespace, maar dan moet je hem wel benoemen.
Als je de WSDL opent zie je het volgende:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:signet"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="urn:signet">
Afhankelijk van in welke applicatie je hem opent. ;) Firefox toont bij mij ook geen namespace declaraties, view source wel. Dus volgens mij is dat niet het probleem.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'

Pagina: 1