XML, XSD, XSL, SOAP - A T N E T

Download Report

Transcript XML, XSD, XSL, SOAP - A T N E T

XML,
e-katalogi in
e-poslovanje
8. november 2001
Branko Šafarič
1
Vsebina
1. E-poslovanje
2. XML
3. XML sheme
4. XSL
5. SOAP/Web Servis
2
1. E - poslovanje
3
E-poslovanje
Pomembnost
 B2B ali B2C
 Minitel, Amazon
 “nevidni del”
 Stroški

4
E-poslovanje je stara stvar
EDIFACT
 EANCOM

5
Klasičen poslovni cikel (papir)
PRODAJALEC
Vpisano in odtipkano naročilo
DOBAVITELJ
Faksiranje
Vpis naročila
Odprema
Prejem in zajem računa
Odpošiljanje
Izpis računa
Vpis računa
6
Sporočila
Podjetje A
Interna
aplikacije
Pretvorba/
dekodiranj
e
RIP
sporočilo
Interna
aplikacija
Podjetje B
Pretvorba/
kodiranje
7
RIP v poslovnem procesu
kupec
dobavitelj
Prevod naročila v
RIP sporočilo
Odtipkano
naročilo
Dekodiranje RIP
naročila
Integracija RIP
naročila v bazo
Prenos
Odprema blaga
Dekodiranje RIP
računa
Integracija
računa v bazo
Prevod računa
v RIP sporočilo
Prenos
Generiranje
računa
8
2. XML
9
XML
Izvor
 Kaj je XML

 XML je
nosilec podatkov
 XML sam po sebi ne naredi ničesar
 XML je narejen za opis podatkovne strukture in
prenos podaktov
 XML ni zamenjava za HTML
 Lahko rečemo, da HTML prikazuje podatke
(informacije), XML pa jih opisuje
10
Zakaj XML
XML is poised to become the future of computing. As a
technology its effects will permeate every aspect of
programming, from embedded systems to graphical
interfaces, to distributed systems and database
management...It will likely become the language in
which most documents are created and stored, both on
and off the Internet, and could well become the
foundation for Internet application servers that some
believe will replace many of the shrink-wrapped products
currently produced.
Microsoft
11
Kaj je XML
Strukturirani podatki kot na primer:
<Ime> Micka </Ime>
<Cena> 12345 </Cena>
12
RIP danes
13
RIP jutri
14
Primer XML-a
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="podjetje.xslt"?>
<Podjetja>
<Podjetje>
<Naziv>EAN Slovenija</Naziv>
<Naslov>
<Ulica>Dimičeva 13 </Ulica>
<Kraj>Ljubljana</Kraj>
<Ptt>1000</Ptt>
</Naslov>
<Telefon>58 98 320</Telefon>
</Podjetje>
</Podjetja>
15
Graf XML
16
…isti dokument
17
…isti dokument
18
…(skoraj) isti dokument
UNH+ME0001+PARTIN:D:96A:UN:EAN006'
BGM+10+PAR123456+9'
DTM+137:20011108:102'
NAD+FR+3831234567890::9'
NAD+MR+EAN SLOVENIJA::::
DIMIČEVA 13:::LJUBLJANA:1000:SI'
UNS+D'
UNT+8+ME0001'
19
XML = 42?
XML definitivno
NI
odgovor na vse naše
probleme
20
3. XML Sheme (XSD)
21
Tri XML Faze
Razčlenjevanje (parsanje)
 Prenos (transfer)
 Kontrola (validacija)

22
Sheme

Zakaj jih potrebujemo
Bolj natančno opisujejo podatke v XML
dokumentih (validacija)
 Omogočajo centraliziran nadzor nad kontrolo
dokumentov
 Poenostavijo medaplikacijske procese pri
izdelavi in procesiranju dokumentov
 Standardi

23
Lastnosti
Podpirajo podatkovne tipe
 Uporabljajo sintakso XML
 Omogočajo kontrolo vsebine podatkov
 Omogočajo kontrolo zaporedja podatkov
 Možnost izgradnje novih tipov podatkov
 Možnost naslavljanja drugih shem
 Skalabilne (uporaba obstoječih segmentov)

24
Namespaces
Enolična identifikacija imen
“Imenovana skupina imen”
<?xml version="1.0" encoding="UTF-8"?>
<NekaShema xmlns:Predp="urn:Doma:www.Doma.com">
<Predp:element name=“Ime">
</Predp:element>
</NekaShema>
25
Definicija podatka
Najpreprostejša definicija v shemi
je lahko:
<xsd:element name=“znesek” />
Nekoliko bolj pravilno je:
<xsd:element name=“znesek” type=“number”/>
26
…Definicija podatka
Lahko določimo tudi dodatne omejitve
<xsd:element name=“znesek”
type=“number”
minOccurs=“0”
maxOccurs=“1” />
27
Tipi podatkov






String
Boolean
Number
Double
Integer
DateTime






Date
Token
language
name
ID
...
28
Kompleksni tipi
<xsd:element name="Naslov">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Ulica"/>
<xsd:element ref="Kraj"/>
<xsd:element ref="Ptt"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
29
Shema
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema“
elementFormDefault="qualified">
<xsd:element name="Naslov">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Ulica"/>
<xsd:element ref="Kraj"/>
<xsd:element ref="Ptt"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Naziv" type="xsd:string"/>
30
…
<xsd:element name="Podjetja">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Podjetje"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Podjetje">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Naziv"/>
<xsd:element ref="Naslov"/>
<xsd:element ref="Telefon"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Kraj" type="xsd:string"/>
<xsd:element name="Ptt" type="xsd:short"/>
<xsd:element name="Telefon" type="xsd:string"/>
<xsd:element name="Ulica" type="xsd:string"/>
</xsd:schema>
31
4. XSL
Extensible Stylesheet Language
32
XSL
Potreba po orodju kot je XSL
 Omejitve XML-a pri prikazovanju
podatkov
 Omejitve pri transformacijah
 Omejitve pri restrukturiranju / dodajanju
podatkov
33
Proces XSLT
34
Primer dokumenta XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transfor
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Podjetje">
<Firma>
<xsl:value-of select="Naziv" />
<xsl:value-of select="Naslov/Ulica" />
</Firma>
</xsl:template>
</xsl:stylesheet>
35
Rezultat transformacije
36
2. primer
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<H2>Podjetje</H2>
<SPAN STYLE="font-style:italic"> naziv </SPAN>
<xsl:value-of select="Podjetja/Podjetje/Naziv"/><BR/>
<TABLE Border="1"> <TR>
<TD> <SPAN STYLE="font-style:italic"> naslov </SPAN></TD>
<TD>
<xsl:value-of select="Podjetja/Podjetje/Naslov/Ulica"/><BR/>
<xsl:value-of select="Podjetja/Podjetje/Naslov/Ptt"/>
<xsl:text> </xsl:text>
<xsl:value-of select="Podjetja/Podjetje/Naslov/Kraj"/><BR/>
</TD> </TR>
</TABLE>
</xsl:template>
</xsl:stylesheet>
37
2. rezultat
38
5. SOAP / Web servis
39
Web, SOAP in Web servis

Razvoj WWW je posledica množice
inovacij




TCP/IP
FTP
HTML
“Link”
40
SOAP 1
HTTP
41
SOAP 2
42
SOAP 3
43
SOAP Paket
44
Primer sporočila SOAP
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>
No interface registered for URL
/Soap
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
45
Web Servis

Kaj je to



Tisto, kar je Web stran za človeka, je Web servis za
računalnik
Perspektiva
WSDL (www.w3.org/TR/wsdl)
46
WSDL
Web Services Describtion Language
 Določa

 Kje
je implementiran servis (lokacijo)
 Katere operacije podpira (vsebino)
 Kakšna sporočila so potrebna pri operacijah
 Kako se predaja parametre (tipi)
47
Primer WSDL
<?xml version="1.0" ?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSche
name="IEANUdelezenciSeminarjaservice"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<message name="UdelezenciRequest">
<part name="sIme" type="xs:string" />
</message>
<message name="UdelezenciResponse">
<part name="return" type="xs:string" />
</message>
<portType name="IEANUdelezenciSeminarja">
<operation name="Udelezenci">
<input message="UdelezenciRequest" />
<output message="UdelezenciResponse" />
</operation>
</portType>
<binding name="IEANUdelezenciSeminarjabinding" type="IEANUdelezenciSeminarja">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
48
…Primer WSDL
<operation name="Udelezenci">
<soap:operation soapAction="urn:U_EAN_SOAP2_Intf-IEANUdelezenciSeminarja#Udelezenci" />
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:U_EAN_SOAP2_Intf-IEANUdelezenciSeminarja" />
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:U_EAN_SOAP2_Intf-IEANUdelezenciSeminarja" />
</output>
</operation>
</binding>
<service name="IEANUdelezenciSeminarjaservice">
<port name="IEANUdelezenciSeminarjaPort" binding="IEANUdelezenciSeminarjabinding">
<soap:address location="http://198.107.2.100/scripts/EAN_SOAP2.dll/soap/IEANUdelezenciSemina
</port>
</service>
</definitions>
49
Orodja
MS SOAP Toolkit
 C#
 Delphi
 C++

50
Delujoči Web servisi
http://www.xmethods.com/
TakisActiveLib
Rabljeni avtomobili
Weather Conditions
Vreme
Hertz-Car-Reserve
Rent a car
WSGenerator
Generator unikatnih števil
Sun/Moon rise and set data
Položaj lune in sonca
Mapservice
GIS načrti
eByz Verification Center
Registrske številke v NY
Credit Card Validation
Kontrola kreditnih kartic
ZipCode Resolver
Poštne številke v Ameriki
Captain Haddock Curser
Generator kletvic
GPS Web Service
GIS za Ameriko
LatestSoccerNews
Zadnje nogometne novice
Joke of the Day
Vic dneva
FedEx Tracker
Informacije o FedEx pošiljkah
BabelFish
Slovar Babilonska riba
51
Primer 1
52
Primer 2
53
VPRAŠANJA?
54