640 likes | 742 Views
Transformations-mechanismen für semistrukturierte Daten. Transformation - Gliederung. Einleitung Cascading Stylesheets (CSS) Extensible Stylesheet Language (XSL) Transformation XSLT – XSL Transformations Formatobjekte YAT. Einleitung CSS XSL XSLT Formating Objects YAT.
E N D
Transformation - Gliederung • Einleitung • Cascading Stylesheets (CSS) • Extensible Stylesheet Language (XSL) • TransformationXSLT – XSL Transformations • Formatobjekte • YAT Einleitung CSS XSL XSLT FormatingObjects YAT
Logische Struktur vs. Layout-Struktur • Logische Dokumentbestandteile - Elementtypen können beliebige Bedeutung haben, • Layout-Struktur - Darstellung des Dokuments.users/boehm/Windows/temp/Sample/simple.xmlAussprache, ‚AudioWeb‘ Einleitung CSS XSL XSLT FormatingObjects YAT
Client, z.B. IE5.0 Client Konvert. Proxy/Firewall Konvert. Server Konvert. Server Architekturüberlegungen Client, z.B. IE5.0 Client, insbes. ‘alte’ Browser Einleitung CSS XSL XSLT FormatingObjects YAT Layout-Konvert. Layout-Konvert. Server Server Wann könnte serverseitige Konvertierung sinnvoll/vorteilhaft sein?
Stylesheets für XML • Beschreiben, wie Dokumente mit irgendeinem Medium dargestellt werden • Es gibt zwei Sprachen mit unterschiedlichen Fähigkeiten: • CSS (‚Cascading Stylesheets‘) -auch für HTML, keine Transformation, • XSL -auch Transformationen. Einleitung CSS XSL XSLT FormatingObjects YAT
CSS - Eigenschaften • Komplementär zu strukturierten Dokumenten,d.h. komplementaer zur Dokumenterstellung • plattformunabhängig, • einfach, • flexibel durch Cascading,d.h. Kombination mehrerer Stylesheets • erlaubt Einbettung von Scripts. Einleitung CSS XSL XSLT FormatingObjects YAT
Aufbau von CSS-Stylesheets • Begriffsbildung: selector { property1: wert1; property2: wert2 } • Beispiel:<HEAD> <TITLE>CSS Example</TITLE> <STYLE TYPE="text/css"> H1 { font-size: x-large; color: red } H2 { font-size: large; color: blue } </STYLE> </HEAD> Einleitung CSS XSL XSLT FormatingObjects YAT
Einbettung externer Stylesheets Beispiel:<HEAD><TITLE>CSS Example</TITLE><LINK REL=StyleSheet HREF="style.css” TYPE="text/css” MEDIA=screen><LINK REL=StyleSheet HREF="color-8b.css" TYPE="text/css” TITLE="8-bit Color Style" MEDIA="screen, print"><LINK REL="Alternate StyleSheet" HREF="color-24b.css” TYPE="text/css" TITLE="24-bit Color Style" MEDIA="screen, print"><LINK REL=StyleSheet HREF="aural.css” TYPE="text/css” MEDIA=aural></HEAD> Mehrere Stylesheets koennen einen Style definieren (TITLE muss gleich sein) REL=StyleSheet + TITLE -> kommt zur Anwend. MEDIA-Wert falsch - Stylesheet wird ignoriert Alternate Style - Idee ist, dass Benutzer es aktivieren kann, Browser unterstuetzen es aber nicht. Einleitung CSS XSL XSLT FormatingObjects YAT
Beispiel für CSS-Stylesheet golfplatz { display: block; background-color: #eeeeee; border-width: thin; border-style: solid; margin: 0.75em 0.75em 0.75em 0.75em; padding: 0.5em 0.5em 0.5em 0.5em; } adresse { display: block; } saison { display: block; font-style: italic; } greenfee, platz, telefon, fax, plz { display: none; } club { font-size: 140%; color: blue; font-weight: bold; display: block; } Einleitung CSS XSL XSLT FormatingObjects YAT
Pattern Matching mit CSS Beispiel:DIV H1 EM { font-size: x-large; color: red } EM-Element in H1-Element in DIV-Element Einleitung CSS XSL XSLT FormatingObjects YAT
Cascading Order • Im allgemeinen Fall sind mehrere Ersetzungen anwendbar. • Welcher Selektor gewinnt im Konfliktfall? • ‚!important‘-Label für Regeln, • Autor-Regel vs. Leser-Regel (Autor-Regel gewinnt), • ‚Specificity‘, • Reihenfolge (letzte Regel gewinnt). Einleitung CSS XSL XSLT FormatingObjects YAT
Eigenschaften von XSL • XSL verwendet XML Syntax, • deklarativ, • erweiterbar (Erweiterungen in Scripting Languages), • umfasst CSS-Funktionalität. Einleitung CSS XSL XSLT FormatingObjects YAT
XSL - Konzepte • XSL besteht aus zwei Teilen: • Sprache für Dokumenttransformation, • XML Vokabular zur Spezifikation der Formatierung. not required • Sogenannte Template Rulesspezifizieren die Dokumenttransformation. • Template Rule besteht aus zwei Teilen: • Pattern, das m. dem Source Tree gematcht wird, • Template, das instanziiert wird, u. diese Instanziierung ist Teil des Result Trees. Höhere Wiederverwertbarkeit von XSL-Code. Einleitung CSS XSL XSLT FormatingObjects YAT
The Times New Roman The Times New Roman XSL Formatierungsprozess Trans- forma- tion Inter- preta- tion HTML Browser Einleitung CSS XSL XSLT FormatingObjects YAT = PDF Papier XSL Stylesheet JFC GUI Element- baum Formatierungs- objekte Baum (FOT) Treiber- sprache Ausgabe- medium
XSLT - Übersicht • Template Rules, • Conflict Resolution, • “Kontrollstrukturen”, • Variablen, • sonstige Features. • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
XML-Dokument mit Stylesheet-Referenz <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="portfolio.xsl"?><portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes" xml:space="preserve"> <stock exchange="nyse"> <name>zacx corp</name> <symbol>ZCXM</symbol> <price dt:dt="number">28.875</price> </stock> <stock exchange="nasdaq"> <name>zaffymat inc</name> <symbol>ZFFX</symbol> <price dt:dt="number">92.250</price> </stock> <stock exchange="nasdaq"> ... </stock></portfolio> • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT Processing Instruction Stylesheet Language Namespace dt eingefuehrt und verwendet Stylesheet-Referenz - Anklicken xml:space=„preserve“ - preserves white space from the source doc. (Default-Behavior von IE5.0)
Pattern Template Arbeitet die Kinder des aktuellen Elements ab. Template Rules <xsl:template match="employee"> <fo:block> Employee <xsl:apply-templates select="name"/> belongs to group <xsl:apply-templates select="ancestor::department/group"/> </fo:block></xsl:template> <xsl:template match="product"> <table> <xsl:apply-templates select="sales/domestic"/> </table><table> <xsl:apply-templatesselect="sales/foreign"/> </table> </xsl:template> • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Patterns • Syntax von Patterns ist Teilmenge der Syntax von (XPath-)Ausdrücken, • Location Paths können (mit kleinen Einschränkungen) als Patterns verwendet werden. • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
“Selektiere section-Elemente (nur top-level) und wende passendes Template an.” Unregelmässige Daten Content von section optionale Elemente section in section emph ueberall F:\temp\iis\demos\pole.xml, pole2.xml <HTML> <HEAD> <TITLE><xsl:value-of select="document/title"/></TITLE> </HEAD> <BODY> <H1><xsl:value-of select="document/title"/></H1> <xsl:apply-templates select="document/section"/> </BODY> </HTML> <xsl:template match="section"> <DIV> <xsl:apply-templates /> </DIV> </xsl:template> <xsl:template match="section"> <DIV> <H2><xsl:value-of select="title"/></H2> <xsl:apply-templates /> </DIV> </xsl:template> • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT <xsl:apply-templates> - w/out ‘select’ attribute, all the children will be selected <xsl:template match="text()"><xsl:value-of /></xsl:template> match - identifiziert children, die text nodes sind Default fuer select-Attr. fuer value-of: value des akt. Knotens
Default-Namespace Beispiel: Kundentabelle ... <xsl:template match="name"> <TD><xsl:apply-templates/></TD> </xsl:template> <xsl:template match="addresse"> <TD><xsl:apply-templates/></TD> </xsl:template> <xsl:template match="telefon"> <TD><xsl:apply-templates/></TD> </xsl:template> <xsl:template match="*"> <TD> <xsl:copy> <xsl:value-of/> </xsl:copy> </TD> </xsl:template> </xsl:stylesheet> <?xml version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40“> <xsl:template match="/"> <HTML> <BODY> <TABLE> <xsl:for-each select="kunden/kunde"> <TR> <xsl:apply-templates select="name"/> <xsl:apply-templates select="adresse"/> <xsl:apply-templates select="telefon"/> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> ... • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT xsl:copy - kopiert den Targetknoten v. der Source in den Output.Attribute und Kinder werden nicht automatisch kopiert. (xsl:copy-of) xsl:value-of - retourniert das Element als Text
Erzeugen von Attributwerten <xsl:for-each select="portfolio/stock"> <TR> <xsl:attribute name="TITLE"> <xsl:value-of select="symbol"/> is listed on the <xsl:value-of select="@exchange"/> stock exchange. </xsl:attribute> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="price"/></TD> </TR> </xsl:for-each> Attributwert wird nicht ausgegeben.Muss offensichtlich das erste Element sein.Erzeugen eines Attributs mit einem Namen, der schon existiert. • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Erzeugen von Elementen • In vorangegangenen Beispielen wurde das Element, das Teil der Zielstruktur ist, direkt hingeschrieben. • Man kann Elementnamen auch on-the-fly generieren. • Beispiel für die Verwendung des entsprechenden Konstrukts:<xsl:element name = “DIV” namespace = “http://…”> optionales Attribut <!– Content: template --></xsl:element> • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Kopieren von Struktur und Text Alles wird kopiert:<xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templatesselect="@*|node()"/> </xsl:copy> </xsl:template> • Einleitung • CSS • XSL • XSLT • TemplateRules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Conflict Resolution • Es kann i.a. sein, dass ein Knoten mehrere Template Rules matcht. • Default Priority ist wie folgt: • Importierte oder inkludierte Regeln haben niedrigere Priorität, • Spezifischere Patterns haben höhere Priorität als weniger spezifische.Beispiel: Test, ob irgendein Knoten existiert, ist weniger spezifisch als Test für Knoten mit konkretem Namen. • Wenn es mehrere gleichberechtigte Regeln gibt, ist dies ein Fehler. • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Kontrollstrukturen –Beispiel-Dokument <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="portfolio.xsl"?><portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes" xml:space="preserve"> <stock exchange="nyse"> <name>zacx corp</name> <symbol>ZCXM</symbol> <price dt:dt="number">28.875</price> </stock> <stock exchange="nasdaq"> <name>zaffymat inc</name> <symbol>ZFFX</symbol> <price dt:dt="number">92.250</price> </stock> <stock exchange="nasdaq"> ... </stock></portfolio> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT Dokument von vorhin
Mögliche Zieldarstellung <HTML> <BODY> <TABLE BORDER="2"> <TR> <TD>Symbol</TD> <TD>Name</TD> <TD>Price</TD> </TR> <!-- repeat the following row for each stock --> <TR> <TD><!-- symbol goes here --></TD> <TD><!-- name goes here --></TD> <TD><!-- price goes here --></TD> </TR> </TABLE> </BODY></HTML> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Stylesheet mit Template <?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <HTML> <BODY> <TABLE BORDER="2"> <TR> <TD>Symbol</TD> <TD>Name</TD> <TD>Price</TD> </TR> <xsl:for-each select="portfolio/stock"> <TR> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="price"/></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template></xsl:stylesheet> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT ausgehend von der Dokument-Wurzel Stylesheet enthaelt keine Referenz auf Dok. / Template: spezifiziert Zielstruktur beliebig viele Templates portfolio.xsl simple.xml - Andere Einbettung der Templates .
Sortieren des Outputs <?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <HTML> <BODY> <TABLE BORDER="2"> <xsl:for-each select="portfolio/stock” order-by=“price”> <TR> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="name"/></TD> <TD><xsl:value-of select="price"/></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template></xsl:stylesheet> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT order-by=“BIDDER; - number(PRICE)”
Bedingter Output • <xsl:if test=„@exchange[.=‚nasdaq‘]“>*</xsl:if> • <xsl:choose> <xsl:when test=…> <xsl:when test=…> …</xsl:choose> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Templates mit Namen • Templates mit Namen können direkt aufgerufen werden. • Beispiel: Kopieren von bestimmten Attributen in den Zielbaum, unabhängig vom Elementtyp. • Template-Definition:<xsl:template name="apply-temp-copy-lang"> <xsl:for-each select="@xml:lang"><xsl:copy/> </xsl:for-each> <xsl:apply-templates/> </xsl:template> • Aufruf:<xsl:call-template name="apply-temp-copy-lang"/> anstelle von<xsl:apply-templates/> • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll-strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Variablen Zwei Arten der Variablendefinition: • Mittels select-Attribut: • Variablendefinition:<xsl:variable name="n" select="2"/> ... • Verwendung der Variablen:<xsl:value-of select="item[$n]"/> Wert des select-Attributes ist Expression. • Über den Inhalt des xsl:variable-Elements: • Variablendefinition:<xsl:variable name="n">2</xsl:variable> ... • Verwendung der Variablen:<xsl:value-of select="item[position()=$n]"/> Variable steht für Menge von Teilbäumen. • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Zusätzliche Features Unter anderem: • Numerierung, • Import und Inkludierung von Stylesheets, • Whitespace Stripping, • Erzeugung von Processing Instructions und Kommentaren. • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
Einbettung von DOM-Methoden in XSL-Stylesheets function invoiceTotal(invoice){ items = invoice.selectNodes("items/item"); var sum = 0; for (var item = items.nextNode(); item; item = items.nextNode()) { var price = item.selectNodes("price").item(0).nodeTypedValue; var qty = item.selectNodes("qty").item(0).nodeTypedValue; sum += price * qty; } return sum;} • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT <price dt:dt="number">18.00</price>
Einbettung von DOM-Methoden in XSL-Stylesheets Einbettung Albis/global/users/boehm/Windows/temp/invoice.xsl, invoice.xml Schlüsselwort this mit üblicher Bedeutung. • Einleitung • CSS • XSL • XSLT • Template Rules • Conflicts • - Kontroll- strukturen • Variablen • - Sonstiges • FormatingObjects • YAT
XSL - Layout-Beschreibungsmechanismen • Bisherige Beispiele: Direkte Erzeugung von HTML aus XML; • Jetzt: Erzeugung einer ‚abstrakten‘, plattformunabhängigen Beschreibung des gelayouteten Dokuments. • XSL standardisiert das Vokabular dieser Beschreibungssprache;Implementierung als XML-Namespace. Einleitung CSS XSL XSLT FormatingObjects YAT
XSL Regelmodell - Formating Objects <fo:block font-size ="24pt" font-family ="serif”>Warnung: ... </fo:block> Regel <xsl:template match="warnung"> <fo:block font-size="24pt" font-family="serif”> <xsl:text>Warnung: </xsl:text> <xsl:apply- templates/> </fo:block> </xsl:template> Muster Einleitung CSS XSL XSLT FormatingObjects YAT … <warnung> … </warnung> ... Aktion PlattformunabhängigeBeschreibung XML-Dokument ... ... warnung Warnung: ... ... ... ... Stylesheet ... ... . ... Text zwischen <xsl:text> und </xsl:text> wird explizit ausgegeben.
Formatting Objects • XSL Formatting Objects - spezifizieren die Formatierung, • eine Formatting Object Classrepräsentiert ein bestimmtes ‘Formatierverhalten’. • Formater erzeugt hierarchische Anordnung sog. Areas und Spaces. • Beispiel für Formatting Objects: • block -block Formatting Object erlaubt die Erzeugung einer Block-Level Area mit Textzeilen.Beispiel: Schriftgrösse • XSL legt nicht fest, wie genau das Formatting, z.B. Zeilenumbruch, Letterspacing, Hyphenation, implementiert sein muss, lediglich Constraints. Einleitung CSS XSL XSLT FormatingObjects YAT
Formatting Model • Areas sind das Ergebnis des Formatting. • Areas reservieren Platz und nehmen Inhalt auf. • Areas können ein Koordinatensystem definieren und andere Areas enthalten. • Formatting Object, durch das die Area erzeugt wurde, spezifiziert Eigenschaften der Area wie margin oder border. • Vier Arten von Areas mit unterschiedlichen Eigenschaften: area-containers, block-areas, line-areas, und inline-areas.area-containers: eigenes Koordinatensystem, eigener writing mode, im Ggs. zu block-areas. Einleitung CSS XSL XSLT FormatingObjects YAT
Stylesheet konstruiert Baum unter Verwendung des Formatting Object Vocabulary. Wert dieses Attributs gibt Output des XSL Processors an.Ist mit IE5.0 immer XML (inkl. HTML). Regel ist für den Wurzelknoten. Regel ist für para-Elemente. para-Elemente werden Block Formatting Objects. XSL Beispiel <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl” xmlns:fo="http://www.w3.org/TR/WD-xsl/FO” result-ns="fo"> <xsl:template match="/"> <fo:basic-page-sequence font-family="serif"> <xsl:apply-templates/> </fo:basic-page-sequence> </xsl:template> <xsl:template match="para"> <fo:block font-size="10pt" space-before="12pt"> <xsl:apply-templates/> </fo:block> </xsl:template></xsl:stylesheet> Einleitung CSS XSL XSLT FormatingObjects YAT
XSL Beispiel • Ausschnitt aus XML-Dokument:This is an <emph>important</emph> point. • Regel matcht Elemente vom Typ emph u. erzeugt ein fo:inline-sequence Formatting Object.<xsl:template match="emph"> <fo:inline-sequence font-weight="bold"> <xsl:apply-templates/> </fo:inline-sequence></xsl:template> Einleitung CSS XSL XSLT FormatingObjects YAT
XSL - Zusammenfassung • Konstrukte von XSLT: • Template Rules, • Kontrollstrukturen, • Variablen, • Formating Objects. Einleitung CSS XSL XSLT FormatingObjects YAT
YAT • System zur einfachen Manipulation von Transformationsprogrammen, • Explizite Beschreibung des Inputs und Outputs von Transformationsprogrammen, • YAT beinhaltet Typen von Datenstrukturen (Mengen, Listen), • akademische Entwicklung (INRIA, Frankreich, 1998). Einleitung CSS XSL XSLT FormatingObjects YAT
YAT Was für Features? • Customization:Programm wird automatisch in Spezifischeres transformiert, das dann von Hand modifiziert werden kann. • Automatische Zusammensetzung von Transformationsprogrammen. Abfolge: • Modell vorstellen - erlaubt Vererbung, • Transformationssprache -nicht speziell, wird aber gebraucht, um Customization zu illustrieren, • Customization, Composition Einleitung CSS XSL XSLT FormatingObjects YAT
Modell • Modell: Beschreibung dessen, was Input/Output der Konvertierung sein kann, z.B. Schema, d.h. Menge von Dokumenten, aber auch (pathologischer Fall) einzelnes Dokument. • Modell besteht aus Patterns und Wertebereichen der Variablen. • Fundamentaler Aspekt: Vererbung/Instanziierung. • Begriff ‘Instanziierung’ allgemeiner als im XML-Kontext: Spezielleres Schema ist Instanz des allgemeinen Schemas, nicht nur ‘Dokument ist Instanz eines Schemas’. • Wichtig für Customization. • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz.
Instanziierung Prog.‘ Input-Modell‘ Input-Modell‘ Customizing Customizing Pro-gramm Output-Modell Input-Modell • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz.
YAT - Modelle (1) Car Schema - Modell: • Kleinbuchstaben: Konstanten, • Grossbuchstaben: Variable, • fett: Patterns • ‘*’ bedeutet, dass Kante in Instanziierung mehrmals vorkommen darf. class Psup: Pcar: • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz. car ... desc suppliers name &Pcar set S1: string S2: string * &Psup
YAT - Modelle (2) ‘Golf’ Modell: • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz. class s1: s2: ... ... c1: car desc suppliers name set “Golf” “Der Golfbesticht durch …” &s1 &s1
YAT - Modelle (3) ODMG Modell: Pclass: class • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz. Class_name * Att Ptype Ptype: Z: (set, list, bag, array) tuple Y: Int String &Pclass * * Att Ptype Ptype
Erläuterungen • Kanten-Labels sind Occurrence-Indicators(kein explizites Label genau 1). • Variablen: Bei Instanziierung sind Einschränkungen des Wertebereichs möglich, z.B. ‘Int String’ ‘String’, • Patterns: können in Blättern Patterns oder Pattern-Referenzen enthalten(Rekursion, Sharing + Zykel). • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz.
Modell-Instanziierung ODMG Modell: Ptype: Pclass: class Z: (set, list, bag, array) &Pclass tuple Y: Int String Class_name * * • Einleitung • CSS • XSL • XSLT • FormatingObjects • YAT • Modell • Transform. sprache • Customiz. * Att Ptype Att Ptype Ptype class Pcar: Psup: car ... desc suppliers name &Pcar set S2: string S1: string * &Psup