Come importare XSD Into WSDL

October 25

Come importare XSD Into WSDL


Descrizione servizio Web linguaggio WSDL () è un modello e formato per la descrizione dei servizi web utilizzando XML. Un consumatore può individuare un servizio ed eseguire le sue operazioni. Questo processo può essere automatizzato utilizzando strumenti di sviluppo più diffusi, consentendo l'integrazione delle applicazioni con poco codice prodotto sviluppatore. WSDL sono un contratto tra il fornitore del servizio e dei consumatori; si fa un servizio di auto-descrizione. WSDL forniscono le descrizioni di tutte le operazioni pubbliche, i tipi di dati per tutti i messaggi di servizio, i dettagli vincolante per le informazioni protocollo di trasporto e l'indirizzo del servizio. Un elemento "importazione" può essere utilizzato in un WSDL per l'importazione WSDL o schemi XML esterni. Importazione di elementi esterni è utile per consentire il WSDL per essere più modulare, riutilizzo dei tipi di dati XML tra più definizioni di servizio e supporto più versioni di uno schema.

istruzione

1 Creare un nuovo file nel editor di testo o XML. Se l'editor supporta WSDL, selezionare WSDL come tipo di file. Se non supporta WSDL, ma supporta XML, selezionare XML come tipo di file. Se sono supportati né WSDL o XML, selezionare un tipo di file di testo.

2 Nome del file con qualsiasi nome che si desidera, e dare al file un estensione ".wsdl". Ad esempio, il file può essere nominato "HelloWorld.wsdl."

3 Creare un secondo nuovo file nel vostro editor di testo o XML. Se l'editor supporta schemi XML, selezionare schema XML o XSD come tipo di file. Se non supporta schemi XML, ma supporta file XML, selezionare XML come tipo di file. Se sono supportati né schemi XML o XML, selezionare un tipo di file di testo.

4 Nome del file con qualsiasi nome che si desidera, e dare al file un estensione ".xsd". Ad esempio, il file può essere nominato "HelloWorld.xsd."

5 Inserire il seguente codice nel file schema XML creato:

<? 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 = "Telefono">

&lt;xsd:sequence>

& Lt; xsd: element name = tipo "AreaCode" = "xsd: int" />

& Lt; xsd: element name = tipo "scambio" = "xsd: int" />

& Lt; xsd: element name = tipo "numero" = "xsd: int" />

& Lt; / xsd: sequence>

</ Xsd: complexType>

</ Xsd: schema>

Questo definisce uno schema con lo spazio dei nomi "http://schemas.myorg.com/person/phone", che definisce un solo tipo di dati "Phone".

6 Inserire il seguente codice nel file WSDL si è creato:

<? Xml version = "1.0"?>

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

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

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

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

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

<Wsdl: documentazione>

WSDL con un esempio di importazione

</ Wsdl: documentazione>

<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 = tipo "CallNumber" = "esterno: Telefono" />

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

& Lt; / xsd: schema>

</ Wsdl: types>

<Wsdl: nome dell'interfaccia = "helloInterface">

&lt;wsdl:operation name="CallMe"

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

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

& Lt; wsdl: ingresso messageLabel = "In"

elemento = "helloWorld: CallNumber" />

& Lt; wsdl: uscita messageLabel = "Out"

elemento = "helloWorld: HelloResponse" />

& Lt; / wsdl: operation>

</ Wsdl: Interfaccia>

<Wsdl: binding name = "helloBinding"

interface="hy:helloInterface"

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

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

& Lt; wsdl: operazione ref = "hy: Ciao"

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

</ Wsdl: binding>

<Wsdl: nome del servizio = "HelloService"

interface="hy:helloInterface">

& Lt; wsdl: nome dell'endpoint = "helloEndpoint"

vincolanti = "hy: helloBinding"

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

</ Wsdl: service>

</ Wsdl: description>

Questo markup definisce un WSDL che importa uno schema XML esterno denominato "helloworld.xsd" che contiene lo spazio dei nomi "http://schemas.myorg.com/person/phone."

L'istruzione import nel WSDL importa un namespace XML da un file. Lo scopo principale dell'elemento di importazione è di importare lo spazio dei nomi, non per indicare dove le dichiarazioni dello spazio dei nomi possono essere trovati. L'elemento include l'attributo opzionale "schemaLocation". L'attributo è facoltativo, perché uno spazio dei nomi può essere importato dallo stesso file o essere registrato in un altro modo. Secondo la specifica WSDL, "schemaLoction" è solo un accenno; un parser XML è libero di ignorare la posizione. Se il parser sa già sui tipi di schema in quello spazio dei nomi, o ha un altro meccanismo di trovare loro, ma non è necessario utilizzare il percorso. Tuttavia, in molti casi, uno spazio dei nomi è importata che il parser XML non sa nulla, quindi l'attributo "schemaLocation" diventa necessario, ma tecnicamente è ancora solo un suggerimento.

Consigli e avvertenze

  • Le nuove tecnologie come lo scambio dei metadati, MEX, sono state introdotte per condividere le informazioni su ciò che le funzionalità supporta un servizio, ma queste norme non sono ancora state ampiamente adottate.
  • supporto WSDL include e le importazioni. Essi possono sembrare simili, ma si comportano in modo diverso. Una dichiarazione di importazione importa altro spazio dei nomi. Un'istruzione include dichiarazioni di tipo di dati importazioni XML in uno spazio dei nomi esistente.