540 likes | 855 Views
XML , e- k atalogi in e-poslovanje. 8. november 2001 Branko Šafarič. Vsebina. E -poslovanje XML XML sheme XSL SOAP/Web Servis. 1. E - poslovanje. E-poslovanje. Pomembnost B2B ali B2C Minitel, Amazon “nevidni del” Stroški. E-poslovanje je stara stvar. EDIFACT EANCOM.
E N D
XML, e-katalogi in e-poslovanje 8. november 2001 Branko Šafarič
Vsebina E-poslovanje XML XML sheme XSL SOAP/Web Servis
E-poslovanje Pomembnost B2B ali B2C Minitel, Amazon “nevidni del” Stroški
E-poslovanje je stara stvar EDIFACT EANCOM
Klasičen poslovni cikel (papir) PRODAJALEC DOBAVITELJ Vpisano in odtipkano naročilo Faksiranje Vpis naročila Odprema Prejem in zajem računa Odpošiljanje Izpis računa Vpis računa
Podjetje A Pretvorba/ dekodiranje Interna aplikacija RIP sporočilo Interna aplikacije Podjetje B Pretvorba/ kodiranje Sporočila
RIP v poslovnem procesu kupec dobavitelj Prevod naročila v RIP sporočilo Dekodiranje RIP naročila Integracija RIP naročila v bazo Odtipkano naročilo Prenos Odprema blaga Dekodiranje RIP računa Prevod računa v RIP sporočilo Integracija računa v bazo Generiranje računa Prenos
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
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
Kaj je XML Strukturirani podatki kot na primer: <Ime> Micka </Ime> <Cena> 12345 </Cena>
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>
…(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'
XML = 42? XML definitivno NI odgovor na vse naše probleme
Tri XML Faze • Razčlenjevanje (parsanje) • Prenos (transfer) • Kontrola (validacija)
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
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)
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>
Definicija podatka Najpreprostejša definicija v shemi je lahko: <xsd:element name=“znesek” /> Nekoliko bolj pravilno je: <xsd:element name=“znesek” type=“number”/>
…Definicija podatka Lahko določimo tudi dodatne omejitve <xsd:element name=“znesek” type=“number” minOccurs=“0” maxOccurs=“1” />
Tipi podatkov • String • Boolean • Number • Double • Integer • DateTime • Date • Token • language • name • ID • ...
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>
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"/>
… <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>
4. XSL Extensible Stylesheet Language
XSL Potreba po orodju kot je XSL • Omejitve XML-a pri prikazovanjupodatkov • Omejitve pri transformacijah • Omejitve pri restrukturiranju / dodajanjupodatkov
Primer dokumenta XSL <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <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>
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>
Web, SOAP in Web servis • Razvoj WWW je posledica množice inovacij • TCP/IP • FTP • HTML • “Link”
SOAP 1 HTTP
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>
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)
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)
Primer WSDL <?xml version="1.0" ?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" 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"/>
…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/IEANUdelezenciSeminarja"/> </port> </service> </definitions>
Orodja • MS SOAP Toolkit • C# • Delphi • C++