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