Hoe te XSD importeren in WSDL

Hoe te XSD importeren in WSDL


Web Services Description Language (WSDL) is een model en het formaat voor het beschrijven van webservices met behulp van XML. Een consument kan een dienst te lokaliseren en uitvoeren van haar activiteiten. Dit proces kan worden geautomatiseerd met behulp van meest voorkomende development tools, waardoor applicatie-integratie met weinig ontwikkelaar geproduceerde code. WSDL zijn een contract tussen de dienstverlener en de consument; het maakt een dienst zelf-beschrijft. WSDL beschrijvingen van alle openbare activiteiten, types gegevens voor alle dienst berichten, bindende informatie voor het transport protocol en service adresgegevens. Een "import" element kan worden gebruikt in een WSDL externe WSDL of XML schema importeren. Het importeren van externe items is handig voor het toestaan ​​van de WSDL meer modulair, hergebruik van types XML-data tussen meerdere definities dienst zijn en ondersteunen meerdere versies van een schema.

instructies

1 Maak een nieuw bestand in uw tekst of XML-editor. Als de editor ondersteunt WSDL, selecteert WSDL als bestandstype. Als het biedt geen ondersteuning WSDL, maar ondersteunt XML, selecteert u XML als het bestandstype. Als geen van beide WSDL of XML worden ondersteund, selecteert u een platte tekst bestand type.

2 Geef het bestand met een naam die u wenst, en geef het bestand een ".wsdl" extensie. Bijvoorbeeld, kan het bestand met de naam "HelloWorld.wsdl."

3 Maak een tweede nieuw bestand in uw tekst of XML-editor. Als de editor ondersteunt XML-schema's, selecteert u XML-schema of XSD als bestandstype. Als het niet ondersteunen XML-schema's, maar ondersteunt XML-bestand, selecteert u XML als het bestandstype. Als geen van beide XML-schema of XML worden ondersteund, selecteert u een platte tekst bestand type.

4 Geef het bestand met een naam die u wenst, en geef het bestand een "XSD" extensie. Bijvoorbeeld, kan het bestand met de naam "HelloWorld.xsd."

5 Voer de volgende markup in het XML-schema-bestand dat u hebt gemaakt:

<? Xml version = "1.0"?>

<Xsd: schema targetNamespace = "http://schemas.myorg.com/person/phone"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Xsd: import namespace = "http://www.w3.org/2001/XMLSchema" />

<Xsd: complexType name = "Telefoon">

&lt;xsd:sequence>

& Lt; xsd: element name = "netnummer" type = "xsd: int" />

& Lt; xsd: element name = type "uitwisseling" = "xsd: int" />

& Lt; xsd: element name = "nummer" type = "xsd: int" />

& Lt; / xsd: opeenvolging>

</ Xsd: complexType>

</ Xsd: schema>

Dit definieert een schema met de namespace "http://schemas.myorg.com/person/phone", die een enkel type data definieert "Phone."

6 Voer de volgende markup in het WSDL-bestand dat u hebt gemaakt:

<? Xml version = "1.0"?>

<Wsdl: omschrijving xmlns: wsdl = "http://www.w3.org/ns/wsdl"

xmlns: wsoap = "http://www.w3.org/ns/wsdl/soap"

xmlns: externe = "http://schemas.myorg.com/person/phone"

xmlns: helloworld = "http://schemas.myorg.com/wsdl/helloworld"

targetNamespace = "http://schemas.myorg.com/wsdl/helloworld">

<Wsdl: documentatie>

WSDL met een import voorbeeld

</ Wsdl: documentatie>

<Wsdl: types>

&lt;xs:import namespace="http://schemas.myorg.com/person/phone"

schemaLocation = "http://www.myorg.com/supporting/schemas/helloworld.xsd" />

& Lt; xsd: schema xmlns: xsd = "http://www.w3.org/2001/XMLSchema"

targetNamespace = "http://schemas.myorg.com/wsdl/helloworld">

& Lt; xsd: element name = "CallNumber" type = "external: Phone" />

& Lt; xsd: element name = "HelloResponse" type = "xsd: string" />

& Lt; / xsd: schema>

</ Wsdl: types>

<Wsdl:-interface name = "helloInterface">

&lt;wsdl:operation name="CallMe"

patroon = "http://www.w3.org/ns/wsdl/in-out"

style = "http://www.w3.org/ns/wsdl/style/iri">

& Lt; wsdl: ingang messageLabel = "In"

element = "HelloWorld: CallNumber" />

& Lt; wsdl: uitgang messageLabel = "Out"

element = "HelloWorld: HelloResponse" />

& Lt; / wsdl: bediening>

</ Wsdl: interface>

<Wsdl: binding name = "helloBinding"

interface="hy:helloInterface"

type = "http://www.w3.org/ns/wsdl/soap"

wsoap: protocol = "http://www.w3.org/2003/05/soap/bindings/HTTP/">

& Lt; wsdl: operatie ref = "hy: Hello"

wsoap: mep = "http://www.w3.org/2003/05/soap/mep/soap-response" />

</ Wsdl: binding>

<Wsdl: dienst name = "helloService"

interface="hy:helloInterface">

& Lt; wsdl: eindpunt name = "helloEndpoint"

binding = "hy: helloBinding"

adres = "http://www.myorg.com/Service/Hello" />

</ Wsdl: dienst>

</ Wsdl: description>

Deze opmaak definieert een WSDL dat een externe XML-schema met de naam "helloworld.xsd", die de namespace bevat importeert "http://schemas.myorg.com/person/phone."

De import verklaring in de WSDL importeert een XML namespace van een bestand. Het primaire doel van de invoer element is om de namespace te importeren, niet aan te geven waar de verklaringen in de namespace kan worden gevonden. Het element omvat de optionele "schemaLocation" attribuut. Het attribuut is optioneel omdat een namespace van hetzelfde bestand kan worden geïmporteerd of op een andere wijze worden geregistreerd. Volgens de WSDL-specificatie, "schemaLoction" is slechts een hint; een XML-parser is vrij om de locatie te negeren. Als de parser al weet over de soorten schema in die namespace, of heeft een ander mechanisme van het vinden van hen, heeft het niet naar de locatie te gebruiken. Echter, in veel gevallen een namespace wordt geïmporteerd dat de XML-parser weet niets over, dus de "schemaLocation" attribuut noodzakelijk wordt, maar technisch gezien is het nog maar een hint.

Hints

  • Nieuwe technologieën zoals metadata uitwisseling, MEX, zijn ingevoerd om meer informatie over de mogelijkheden van een dienst ondersteunt delen, maar deze normen nog niet op grote schaal aangenomen.
  • WSDL ondersteuning omvat en de invoer. Zij kunnen hetzelfde klinken, maar ze gedragen zich anders. Een import statement importeert een andere namespace. Een include-instructie soort invoer XML-gegevens verklaringen in een bestaande namespace.