150 likes | 252 Views
„ modernes XML im praktischen Einsatz “ - Schnittstellen und Integrationsmöglichkeiten von XML auf Basis von Konvertierungsproblemen. Gliederung. XML (Rec 1.0) DTD - D ocument T ype D efinition (Rec 1.0) XSLT (Rec 1.0) XSLT - Integration XSLT - Prozeß
E N D
„ modernes XML im praktischen Einsatz “ - Schnittstellen und Integrationsmöglichkeiten von XMLauf Basis von Konvertierungsproblemen
Gliederung • XML (Rec 1.0) • DTD - Document Type Definition (Rec 1.0) • XSLT (Rec 1.0) • XSLT - Integration • XSLT - Prozeß • XML - Szenario[1] extern • XML - Szenario[2] intern • Tech. Anforderungen - Konvertierung • XSL Prozessoren • WEB Seiten • XML / XSL Tools
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE LOOKUP_TABLE "./LOOKUP.dtd"> Header <!--Lookup table which maps counterparty IDs to DXS Depots--> Kommentar <LOOKUP_TABLE InputSystem="NTM" OutputSystem="DXS" InputObject="CounterpartyID" OutputObject="Depot"> Attribute <FROM>SAO PAOLO FFM</FROM> <TO>0000000001</TO> <FROM>RABO LDN</FROM> <TO>0000000006</TO> <FROM>RABO FFM</FROM> <TO>0000000007</TO> <FROM>VOBA BERLIN</FROM> <TO>0000000008</TO> <FROM>VOBA HAMBURG</FROM> <TO>0000000009</TO> <FROM>UNION</FROM> <TO>0000000010</TO> </LOOKUP_TABLE> Elemente XML(Rec 1.0) Standardisierte Beschreibungssprache von Datensätzen
Beschreibung der Datenstruktur einer XML Datei • Bestandteile: • Elemente • Attributlisten DTD - Document Type Definition (Rec 1.0) <!ELEMENT LOOKUP_TABLE (FROM,TO)+> <!ATTLIST LOOKUP_TABLE InputSystem (MUREX | NTM | DXS | ALL) #REQUIRED OutputSystem (MUREX | NTM | DXS | ALL) #REQUIRED InputObject CDATA #IMPLIED OutputObject CDATA #IMPLIED> <!ELEMENT FROM (#PCDATA)> <!ELEMENT TO (#PCDATA)>
XSLT(Rec 1.0) Standardisierte Transformationsprache für XML Daten ... <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"> <!--begin template rule--> <!--pattern--> <xsl:template match="MainHead"> <!--action--> <DIV font-size="20pt" color="red"> <xsl:apply-templates/> </DIV> </xsl:template> <!--end template rule--> </xsl:stylesheet> ... Welcome.xml <MainHead> Welcome to my Home Page! </MainHead>
XML File aufBasis von InhouseDTD XML File aufBasis einerStandard DTD XSLT File XSL Prozessor XSLT - Integration
XSLT - Prozeß <?xml version=“1.0”?> <xsl:stylesheet> <xsl:template match=“/”> [Aktion für Root-Element] </xsl:template> <xsl:template match=“BookCatalogue”> [Aktion für BookCatalogue] </xsl:template> <xsl:template match=“Book”> [Aktion für Book] </xsl:template> ... </xsl:stylesheet>
Bestellung Lieferschein Zahlungsanweisung Rechnung XML - Szenario[1] Zulieferer Hersteller XML_2 XML_1 XSLT
<AS>.xml P1=1 P2=B P1=0 P2=A <SB>.xml CORBA Service <A>.xml XSLT Service P1: S-XML(1|0) P2:System(A|B) <A2S>.xsl <N2S>.xsl DB | File <S2B>.xsl <S2M>.xsl XML - Szenario[2]
Lookup Tabellen <xsl:template match="CCY"> <xsl:variable name="currency"> <xsl:value-of select="."/> </xsl:variable> <xsl:for-each select="document(‘Isocodes.xml')"> <xsl:apply-templates select="//ISO"> <xsl:with-param name="cur"> <xsl:value-of select="$currency"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </xsl:template> <xsl:template match="ISO"> <xsl:param name="cur">default</xsl:param> <xsl:if test="$cur=string(.)"> <CCY> <xsl:value-of select="following-sibling::National"/> </CCY> </xsl:if> </xsl:template> Daten.xml <?xml version="1.0" ?> <Root> <CCY>GBP</CCY> <CCY>DEM</CCY> </Root> Isocodes.xml Prozeß <ISOToNationalCurrencies> <Currency> <ISO>GBP</ISO> <National>P</National> </Currency> <Currency> <ISO>DEM</ISO> <National>DM</National> </Currency> </ISOToNationalCurrencies>
Global-Variable Katalog-Variable Produkt- Variable Variablen Verfügbarkeit von Variablen ... <xsl:variable name=“Global” select=’’’Global”’/> <xsl:template match=”Katalog”> <xsl:variable name=”VAR_KAT” select=’”Katalog’”/> ... <xsl:for-each select=”Produkt”> <xsl:variable name=”VAR_PRO" select=”’Produkt’”/> ... <xsl:apply-templates select="."/> </xsl:for-each> </xsl:template> ... </xsl:stylesheet>
Kontrollfluß Debug Variablen Call-Funktion Kopieren Schleifen XSLT LookupTabellen Substrings Konkatenation Logging Validierung Formatierungen Templates Initialisieren Tech. Anforderungen - Konvertierung Kommentar
XSL Prozessoren • Lotus XSL (Java / Alphaworks) www.alphaworks.com/tech/LotusXSL • XT (Java / James Clark) www.jclark.com/xml/xt.html • Koala XSL engine for Java www.inria.fr/koala/XML/xslProcessor • XSL:P 1.0 Beta www.clc-marketing.com/xslp • MITRE C++ XSL processor lxr.mozilla.org/mozilla/source/extensions/transfoemiix • MSXML (C++ / Micosoft) www.microsoft.com
WEB - Sites • www.w3c.org/TR/XSLT • www.xslt.com • www.oasis-open.org/cover/xsl.html • www.clc-marketing.com/xslp/xsl-slides/ • www.cranesoftwrights.com/training/ • Google Search 19.12.1999 20.12 Uhr • Search: XSL Tools ca. 5060 Hits • Search: XSLT ca 2350 Hits
XML / XSL Tools • XML Spy (Icon) • Stylus Excelon (ODI) • VisualXMLTools (Alphaworks) • XSL Editor (Alphaworks)