150 likes | 263 Vues
This document explores the practical application of XML, focusing on conversion problems and integration opportunities. It discusses the essentials of XML (Recommendation 1.0), DTD (Document Type Definition), and XSLT (Extensible Stylesheet Language Transformations). The content includes standardized descriptions of XML file structures and technical requirements for conversion, along with various XML scenarios, XSLT integration processes, and transformation techniques. It aims to provide insight into effective XML usage in modern data environments.
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)