XML mit Java OpenSource. (c) Mark Egloff 2003 XSL << EXSLT >>
|
|
- Gerburg Becker
- vor 6 Jahren
- Abrufe
Transkript
1 XSL << EXSLT >> 1
2 Extensions for XSL Transformations EXSLT XSL 1.0 hat noch diverse Mängel an Funktionalität. Eine Initiative standardisiert vermisste Funktionalität und stellt sie als Stylesheet Library zur Verfügung EXSLT definiert Funktionen für folgende Bereiche Dates, Times, Dynamic, Common, Functions, Math, Random, Regular Expressions, Sets, Strings 2 Hersteller haben schon begonnen diese Funktionen direkt in die Prozessors wie Xalan fest zu integrieren d.h. externe Library ist nicht immer notwendig
3 3 Beispiel einer Anwendung einer EXLST Funktion Aufgabe Alle Länder der CD s ermitteln EXSLT set:distinct <catalog> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <country>usa</country> <price>10.90</price> </cd> <cd> <title>hide your heart</title> <artist>bonnie Tyler</artist> <country>uk</country> <price>9.90</price> </cd>... </catalog> USA UK EU Norway
4 4 <xsl:stylesheet... > EXSLT set:distinct Beispiel einer Anwendung einer EXLST Funktion Alle Länder der CD s ermitteln Erste Lösung, erfüllt aber Anforderung nicht so ganz. <xsl:template match="/catalog"> <xsl:for-each select="cd/country"> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> </xsl:stylesheet> USA USA USA UK USA Resultat ergibt eine Liste in der mehrmals die gleichen Einträge vorkommen. Analogie SQL: select distinct country from cd oder select country from cd group by country
5 EXSLT set:distinct Beispiel einer Anwendung einer EXLST Funktion Alle Länder der CD s ermitteln Dieses Beispiel verwendet die externe Library von <xsl:stylesheet... xmlns:set=" extension-element-prefixes="set"> <xsl:import href="set/set.xsl" /> <xsl:template match="/catalog"> <xsl:for-each select="set:distinct(cd/country)"> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> 5 </xsl:stylesheet>
6 Eingebettete Extensions in Xalan EXSLT In Xalan sind schon folgende EXSLT Module integriert. dynamic: map(), max(), min(), sum(), math: abs(), sin(), exp(), sqrt(), max(), sets: difference(), distinct(), leading(), strings: align(), concat(), padding(), tokenize() Xalan Javadoc: org.apache.xalan.lib.exsltbase 6 Um die Funktionen dieser Module aufzurufen muss nur der jeweilige Namespace zuvor aufgeführt werden z.b.
7 EXSLT set:distinct Beispiel einer Anwendung einer EXLST Funktion Alle Länder der CD s ermitteln Dieses Beispiel verwendet die eingebettete set:distinct() Funktion von Xalan. Keine zusätzliche EXSLT Library notwendig. <xsl:stylesheet... xmlns:set=" extension-element-prefixes="set"> <xsl:template match="/catalog"> <xsl:for-each select="set:distinct(cd/country)"> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> 7 </xsl:stylesheet>
8 XSL << Xalan Java Extensions >> 8
9 Xalan Extensions XSL Xalan Extensions Xalan bietet verschiedene API s um Extensions zu realisieren. Es ist so flexibel das die Extensions z.t. direkt im XSL in der jeweiligen Sprache geschrieben werden können Xalan Extensions können in folgenden Sprachen geschrieben werden: Java JavaScript NetRexx(IBM) BML (IBM) JScript (MicroSoft) VBScript (MicroSoft) Python Perl TCL 9 Allerdings wird meist für die jeweilige Sprache ein Java JNI Wrapper oder ein entsprechender Interpreter in Java benötigt Zusatz Libraries
10 XSL Xalan Extensions Beispiel einer Xalan Extension verfass in Javascript und direkt im XSL integriert 10 <xsl:stylesheet... > <xalan:component prefix="myext" functions="getdate"> <xalan:script lang="javascript"> // This is javascript function getdate(numdays) { var d = new Date(); var totaldays = parseint(numdays); d.setdate(d.getdate() + totaldays); return d.tolocalestring(); } </xalan:script> </xalan:component> <xsl:template match="deadline"> <xsl:value-of select="myext:getdate(string(@numdays))"/> </xsl:template> </xsl:stylesheet>
11 XSL Xalan Java Extensions Java Integration bei Xalan App 1 <xml> <xml> XSLT Processor <xml> <xml> <xsl> <xsl> <JExt> <JExt> Java Class DB Das XSL enthält Funktionsaufrufe die mit einer bestimmten Java Klasse verknüpft sind. Die Funktionen selber werden in Java Klassen geschrieben. 11
12 XSL Xalan Java Extensions Erstellung von Xalan Java Extensions Die Java Klassen benötigen kein API von Xalan d.h. sie können unabhängig entwickelt werden keine Vererbung, Interfaces oder Relationen Dies bedeutet wiederum, dass jede Java Klasse verwendet werden kann 12 Es gibt 2 Prinzipien um Java Klassen in XSL zu verwenden: Mittels java Namespace einzelne Objektinstanzen erstellen und als <xsl:variable> handzuhaben für Instanzen Eigenen Namespace für die Klasse einrichten und static Methoden direkt aufrufen für static
13 XSL Xalan Java Extensions Erstellung von Xalan Java Extensions Verwendung von Objektinstanzen Um Objektinstanzen zu erstellen muss der Xalan java Namespace definiert werden. Danach kann auf jede Klasse im Classpath über diesen Namespace zugegriffen werden. xmlns:java=" Instanzierungen werden mit dem Syntax java:klasse.new(param) erzeugt und einer <xsl:variable> zugewiesen 13 Instanz Methoden werden mit dem Syntax java:methode($xslvar,param) aufgerufen
14 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension (1/2) Verwendung von Objektinstanzen, einfache Java Klasse Counter public class Counter { long count = 0; } public long incr() { return ++count; } public long decr() { return --count; } public long get() { return count; } Klasse hat nur Instanz Members 14 Klasse ist unabhängig von Xalan
15 XSL Xalan Java Extensions 15 Beispiel einer Xalan Java Extension (2/2) Verwendung von Objektinstanzen, Klasse Counter im Stylesheet <xsl:stylesheet... xmlns:java=" <xsl:variable name="i" select="java:counter.new()"/> <xsl:template match="/catalog"> <xsl:apply-templates select="cd"/> </xsl:template> <xsl:template match="cd"> <xsl:variable name="temp" select="java:incr($i)"/> <xsl:value-of select="java:get($i)"/> </xsl:template> </xsl:stylesheet> Syntax ist gewöhnungsbedürftig. Temporäre Variabeln nötig um Java Methoden ausführen zu lassen
16 XSL Xalan Java Extensions Erstellung von Xalan Java Extensions Verwendung von static Methoden Um static Methoden aufzurufen muss der xalan Namespace definiert werden. Danach kann ein eigener Namespace für Klasse eingeführt werden xmlns:xalan=" xmlns:[myspace]="xalan://[klassennamen]" Static Methoden werden mit dem Syntax MySpace:Methode(param) aufgerufen 16
17 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension (1/2) Verwendung von static Methoden, einfache Log4J Klasse import org.apache.log4j.logger; public class Log4JXslExtension { static Logger log = Logger.getLogger(Log4JXslExtension.class); public static void debug(string s){ log.debug(s);} public static void info(string s){ log.info(s); } public static void warn(string s){ log.warn(s); } } public static void error(string s){ log.error(s); } 17 Klasse ist unabhängig von Xalan
18 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension (2/2) Verwendung von static Methoden im Stylesheet <xsl:stylesheet... xmlns:xalan=" xmlns:log4j="xalan://log4jxslextension"> <xsl:template match="/catalog"> <xsl:apply-templates select="cd"/> </xsl:template> <xsl:template match="cd"> <!-- Aufruf der static Methode --> <xsl:value-of select="log4j:info(title)"/> </xsl:template> </xsl:stylesheet> 18
19 XSL Xalan Java Extensions Mapping der Java Datentypen zu XSL Datentypen Folgende Ad-hoc Umwandlungen passieren bei Parameterübergaben Java Types org.w3c.dom.traversal.nodeiterator org.w3c.dom.node org.w3c.dom.nodelist java.lang.string java.lang.boolean java.lang.number org.w3c.dom.documentfragment XSLT Type NodeSet String Boolean Number Result Tree Fragment 19
20 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension Integrierung von Jakarta RegExp in XSL Was ist Regexp? Ein Beispiel // Compile expression, looking for multiple a before b RE r = new RE("(a*)b"); // Match boolean matched = r.match("xaaaab"); // wholeexpr will be 'aaaab' String wholeexpr = r.getparen(0); // insideparens will be 'aaaa' String insideparens = r.getparen(1); 20 RegExp (Reguläre Expressions) dienen dazu um Textdaten anhand Patterns (Regeln) zu verarbeiten
21 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension Integrierung von Jakarta RegExp in XSL Die grep() Funktion, Auszug aus dem Javadoc public java.lang.string[] grep(java.lang.object[] search) Returns an array of Strings, whose tostring representation matches a regular expression. This method works like the Perl function of the same name. Given a regular expression of "a*b" and an array of String objects of [foo, aab, zzz, aaaab], the array of Strings returned by grep would be [aab, aaaab]. Parameters: search - Array of Objects to search Returns: Array of Strings whose tostring() value matches this regular expression. 21 Mittels grep können wir nach bestimmten Stringpatterns suchen
22 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension Integrierung von Jakarta RegExp in XSL grep() Funktion für XSL Funktion wrappen, Nodes als Parameter 22 public static NodeList grep(string pattern, NodeList nlist) { NodeSet resultset = new NodeSet(); String[] sarr = new String[nlist.getLength()]; } for (int i = 0; i < nlist.getlength(); i++) { Node n = nlist.item(i); sarr[i] = n.getnodevalue(); } RE re = new RE(pattern); String[] resultgrep = re.grep(sarr); for (int i = 0; i < resultgrep.length; i++) resultset.addnode(doc.createtextnode(resultgrep[i])); return resultset;
23 XSL Xalan Java Extensions Beispiel einer Xalan Java Extension Integrierung von Jakarta RegExp in XSL Die grep() Funktion im Stylesheet angewendet <xsl:stylesheet... xmlns:xalan=" xmlns:reg="xalan://regexp"> <xsl:template match="/catalog"> <xsl:for-each select="reg:grep('b.*t.*',cd//text())"> <xsl:value-of select="."/> </xsl:for-each> </xsl:template> </xsl:stylesheet> 23 Ausgabe Boonie Tyler
24 XSL Xalan Java Extensions Wann XSL Funktionen wann Java Extensions? Dort wo es Sinn macht! z.b. nützt es nichts 200 Zeilen XSL zu schreiben wenn man es mit Java Extensions in ca. 10 Linien erreichen kann (oder umgekehrt). Die Stärke von XSL liegt daran Baumstrukturen zu verarbeiten Die Stärke von Java sind vorwiegend im Bereich Datenumwandlungen u. Algorithmen 24 Falls Extensions eingesetzt werden müssen, so entwickelt ein offenes, generisches Design um die Wiederverwendbarkeit zu garantieren
25 XSL - Links W3C XSL: SUN Tutorial: Introducing XSL, XSLT and XPath IBM XSL Tutorial: Hands on XSL Apache Xalan: EXSLT: XSLT Standard Library: Jakarta RegExp: 25
26 JAXP << JAXP TRAX API >> 1
27 Was ist TRAX? JAXP TRAX TRAX = Transformation API for XML Mittels TRAX können XSL Transformationen in Java ausgeführt werden. TRAX ist in JAXP integriert und besteht aus folgendem Package: javax.xml.transform 2 Seit Java 1.4.x ist JAXP schon integriert und besitzt für das TRAX eine Xalan Implementation im rt.jar Java Endorsed für neuere Versionen
28 JAXP TRAX Konfiguration Implementationen festlegen: Die JAXP Implementationen können auf verschiedene Weise angegeben werden. Die JVM versucht dabei in folgender Reihenfolge die Konfiguration zu finden: 3 1. Über die System Properties 2. Über die jaxp.properties im JAVA_HOME 3. Mittels dem Jar Service Provider Mechanism 4. Falls nichts gefunden wurde wird jeweils die Standard Implementation der jeweiligen Plattform genommen. JAVA_HOME\jre\lib\rt.jar Xalan
29 JAXP TRAX Konfiguration Implementationen festlegen: Die Implementation kann beim Start der JVM mittels den SystemProperties festgelegt werden: javax.xml.transform.transformerfactory Als Wert muss eine Klasse angegeben werden, die dieses Interface unterstützt. z.b: java classpath xml-apis.jar -Djava.endorsed.dirs=lib/endorsed -Djavax.xml.transform.TransformerFactory= org.apache.xalan.processor.transformer FactoryImpl TestXSLT 4 Ab Java 1.4.x die neuen Xalan Libraries mit dem Endorsed Feature einbinden! Djava.endorsed.dirs!
30 JAXP TRAX Konfiguration JAXP- TRAX Implementationen festlegen: Die Implementation wird mittels dem Jar Service Provider Discovery Mechanism festgelegt. Hierbei wird ein Textfile mit dem gleichem Namen ins META-INF/services des *.jar Files abgelegt: javax.xml.transform.transformerfactory 5 Ab Java 1.4.x die neuen Xalan Libraries mit dem Endorsed Feature einbinden! Djava.endorsed.dirs!
31 Die wichtigsten Klassen von TRAX API: javax.xml.transform Transformer / TransfomerFactory Factory und XSLT Processor für die Ausführung einer Transformation Source XSL und XML EingabeMedium, kann eine SAXSource, DOMSource oder StreamSource sein Result AusgabeMedium kann ein SAXResult, DOMResult oder ein StreamResult sein 6 Templates vorkompilierte Stylesheets, können direkt für Transformationen verwendet werden (Perfomanceoptimierung)
32 Interface Transformer und TransformerFactory 7
33 Verwendung Klassen von TRAX API: Ein Transformer verwenden (single threading) XSL XSL Source Source Transformer Factory XML XML Source Source Trans former Result Result 8
34 Wann welche Source? Source Type DOMSource StreamSource SAXSource Beschreibung Daten liegen schon geparst als DOM vor für kleinere Datenmengen (< 1MB) Daten liegen als Stream vor z.b. als lokales File, oder über TCP/IP Socket für grosse Datenmengen (> 1MB) Daten liegen nicht in XML vor, müssen mit einen eigenen Parser in XML Form gebracht werden eigener SAXParser schreiben 9
35 Wann welches Result? 10 Result Type DOMResult StreamResult SAXResult Beschreibung Falls Ausgabe wieder ein XML in DOM Form sein muss, z.b. für weitere Verarbeitung mit XPath Aus einem DOMResult kann schnell wieder ein DOMSource gemacht werden, somit kann gerade eine weitere Folgetransformation erfolgen. für kleinere Datenmengen (< 1MB) Falls Ausgabe nicht unbedingt XML sein muss z.b. Text, CSV, HTML etc. für grosse Datenmengen (> 1MB) Falls Ausgabe zwar in XML erfolgen muss jedoch Endformat dennoch selber erstellt werden muss eigener ContentHandler schreiben
36 Vorgang einer XSL Transformation mit TRAX: (single threading) 1. TransformerFactory instanzieren 2. XSL Source erzeugen 3. Transformer erzeugen 4. XML Source erzeugen 5. Result Objekt erzeugen 6. Transformation durchführen 11 Der Transformer wird für ein XSL einmal erzeugt und kann dann für mehrere Transformationen verwendet werden
37 12 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation (1/3) import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; public class RunDOM2DOMTransformation { public static void main( String args[] ) { try { // Transformerfactory initialisieren TransformerFactory tfactory = TransformerFactory.newInstance(); 1. if (!tfactory.getfeature(streamsource.feature)!tfactory.getfeature(streamresult.feature)) throw new Exception("not Supported!");
38 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation (2/3) //XSL einlesen und StreamSource erzeugen StreamSource ssxsl = new StreamSource(new File("cdhtml.xsl"); 2. // Transformer erzeugen Transformer trans = tfactory.newtransformer(ssxsl); 3. // Eingabe XML als StreamSource erzeugen StreamSource ssxml = new StreamSource(new File("catalog.xml")); 4. 13
39 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation (3/3) // Result Objekt erzeugen um Ergebnis aufzunehmen StreamResult sr = new StreamResult( new File("cdcatalog.html")); 5. // Transformation durchführen trans.transform(ssxml,sr); 6. } catch(exception ex) {ex.printstacktrace();} } } 14
40 15 Beispiel XSL Transformation mit TRAX DOM 2 DOM Transformation (1/3) import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.parsers.*; import java.io.*; import org.w3c.dom.*; public class RunDOM2DOMTransformation { public static void main( String args[] ) { try { // Transformerfactory initialisieren TransformerFactory tfactory = TransformerFactory.newInstance(); if (!tfactory.getfeature(domsource.feature)!tfactory.getfeature(domresult.feature)) throw new Exception("not Supported!"); 1.
41 Beispiel XSL Transformation mit TRAX DOM 2 DOM Transformation (2/3) // DOMBuilder initialisieren um XSL und XML zu lesen DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dbuilder = dbfactory.newdocumentbuilder(); //XSL einlesen und DOMSource erzeugen Document docxsl = dbuilder.parse(new File("cdhtml.xsl")); 2. DOMSource dsxsl = new DOMSource(docXSL); // Transformer erzeugen Transformer trans = tfactory.newtransformer(dsxsl); // Eingabe XML als DOMSource erzeugen 4. Document docxml = dbuilder.parse(new File("catalog.xml")); DOMSource dsxml = new DOMSource(docXML);
42 Beispiel XSL Transformation mit TRAX DOM 2 DOM Transformation (3/3) 17 } } // Result Objekt erzeugen um Ergebnis aufzunehmen DOMResult dr = new DOMResult(); 5. // Transformation durchführen trans.transform(dsxml,dr); 6. // Ergebnis ist ein DOM aus Result Objekt extrahieren Document docres = (Document) dr.getnode();... // weitere Verarbeitung des Resultats } catch(exception ex) {ex.printstacktrace();}
43 Mehrstufige Transformation <xml> <xml> 1 XSLT Processor 1 <xml> <xml> 2 XSLT Processor 2 <xml> <xml> 3 <xsl> <xsl> XML1 XML1 <xsl> <xsl> XML2 XML2 Transformationen können hintereinander geschaltet werden Mehrstufige Transformation 18 Damit lassen sich komplexere Transformationen vereinfachen bessere Wartungsfreundlichkeit
44 Beispiel XSL Transformation mit TRAX Mehrstufige Transformation DOM 2 DOM //DOMSource für Eingabe XML festlegen DOMSource dsxml = new DOMSource(docXML); // Result Objekt erzeugen um Ergebnis aufzunehmen DOMResult dr = new DOMResult(); // 1. Transformation durchführen transformer1.transform(dsxml,dr); // Ergebnis ist neue Eingabe für nächste Transformation dsxml = new DOMSource(dr.getNode()); // neues Result Objekt erzeugen um Ergebnis aufzunehmen dr = new DOMResult(); 19 // 2. Transformation durchführen transformer2.transform(dsxml,dr);
45 Verwendung Klassen von TRAX API: Mehrere Transformer gleichzeitig verwenden (multi threading) XSL XSL Source Source Transformer Factory Templates ThreadThreadThread Workers XML XML Source Source Trans former Trans former Trans former Result Result 20
46 Nutzen der Templates Klasse: Bei einer Templates Instanzierung wird das XSL schon vorkompiliert und in Logik gewandelt Bei mehrer Verwendung entsteht dadurch eine enorme Performancegewinnung, da das XSL Stylesheet nicht ständig übersetzt werden muss Templates ist Threadsafe, kann von mehreren Threads gleichzeitig benützt werden 21
47 Vorgang einer XSL Transformation mit TRAX: (multi threading) 1. TransformerFactory instanzieren 2. XSL Source erzeugen 3. Template erzeugen 4. Thread erzeugen 5. Transformer erzeugen 6. XML Source erzeugen 7. Result Objekt erzeugen 8. Transformation durchführen 22 Aus einem Template werden mehrere Transformer erzeugt und einem Thread zugeordnet Threadsafe
48 23 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation mit Templates (1/5) import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; public class RunDOM2DOMTransformation { public static void main( String args[] ) { try { // Transformerfactory initialisieren TransformerFactory tfactory = TransformerFactory.newInstance(); 1. if (!tfactory.getfeature(streamsource.feature)!tfactory.getfeature(streamresult.feature)) throw new Exception("not Supported!");
49 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation mit Templates (2/5) //XSL einlesen und StreamSource erzeugen StreamSource ssxsl = new StreamSource(new File("cdhtml.xsl"); 2. // Template erzeugen Templates templ = tfactory.newtemplates(ssxsl); // Threads erzeugen, Templates sharen Thread[] arrthread = new Thread[10]; for( int i=0; i<arrthread.length; i++) { MyTransiThread thread = new MyTransiThread(i,templ); arrthread[i] = thread; thread.start(); } 4.
50 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation mit Templates (3/5) // auf Threads warten und beenden for( int i=0; i<arrthread.length; i++) { arrthread[i].join(); } } // end try catch( Exception ex ) { ex.printstacktrace(); } } // end main } end class 25
51 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation mit Templates (4/5) import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; public class MyTransiThread extends Thread { // gemeinsames Objekt, Referenz auf main templ Templates templ; 26 // Constructor public MyTransiThread(int i, Templates templ) { super("mytransi"+i); this.templ = templ; }
52 27 Beispiel XSL Transformation mit TRAX Stream 2 Stream Transformation mit Templates (5/5) public void run() { try { // Transformer erzeugen 5. Transformer trans = templ.newtransformer(); // Eingabe XML als StreamSource erzeugen StreamSource ssxml = new StreamSource(new File("catalog.xml")); // Result Objekt erzeugen um Ergebnis aufzunehmen StreamResult sr = new StreamResult( new File(getName()+".html")); // Transformation durchführen trans.transform(ssxml,sr); } catch(exception ex) {ex.printstacktrace();} }}
53 Klasse TransformatorFactory Verwendung von Features Features definieren in der TRAX API ob eine bestimmte Source oder Result Art unterstützt wird. z.b. So kann man zur Laufzeit überprüfen ob die verwendetete TRAX Implementation diese auch unterstützt z.b.: TransformerFactory tfactory = TransformerFactory.newInstance(); if (!tfactory.getfeature(streamsource.feature)!tfactory.getfeature(streamresult.feature)) throw new Exception("not Supported!"); 28
54 Klasse TransformatorFactory Verwendung von Attributes Die TRAX API erlaubt mittels Attributes herstellerspezifische Optionen zu aktivieren oder auszuschalten. 29 z.b.: import org.apache.xalan.processor.transformerfactoryimpl;... TransformerFactory tfact = TransformerFactory.newInstance(); if (tfact instanceof TransformerFactoryImpl) { tfact.setattribute( TransformerFactoryImpl.FEATURE_INCREMENTAL, Boolean.FALSE); }
55 Klasse Transformator Unterstützung von Parametern Es können für eine Transformation Parameter angegeben werden. Diese überschreiben die Standardwerte von globalen Parametern (Variabeln) welche im XSL definiert wurden z.b.: // Transformer erzeugen Transformer trans = tfactory.newtransformer(dsxsl); // Parameter setzen trans.setparameter("var55", new Integer(55)); trans.setparameter("src","c:/mydocs/pics/image.gif"); // transfomration durchführen trans.transform(dsxml,dsresult); 30
56 Klasse Transformator Ausgabeoptionen festlegen Es können für die Transformation bestimmte Optionen für die Ausgabeformatierung gesetzt werden Diese Angaben überschreiben die Angaben im XSL Stylesheet <xsl:output>. Von der TRAX API gibt es die Klasse OutputKeys welche die standardisierten Ausgabeoptionen als statische Konstanten vorgibt. Es gibt jedoch auch herstellerspezifische Optionen. 31
57 Klasse Transformator Ausgabeoptionen festlegen z.b.: // Transformer erzeugen Transformer trans = tfactory.newtransformer(dsxsl); // Standardisierte Ausgabeoptionen setzen trans.setoutputproperty(outputkeys.encoding, "ISO "); trans.setoutputproperty(outputkeys.indent,"yes"); // herstellerspezifische Ausgabeoptionen setzen trans.setoutputproperty(org.apache.xml.serializer.out putpropertiesfactory.s_key_indent_amount,"4"); // transfomration durchführen trans.transform(dsxml,dsresult); 32
58 Interface URIResolver Eigene Auflösung von Ressourceangaben realisieren Klasse Transformer sowie die Factory unterstützen die Möglichkeit einen eigenen URIResolver zu verwenden seturiresolver() Dadurch besitzt man die Möglichkeit Pfade zu externen Ressourcen in XSL selber aufzulösen siehe auch JAXP Parser API, EntityResolver 33 public interface URIResolver { public Source resolve(string href, String base) throws TransformerException; }
59 Interface URIResolver Eigene Auflösung von Ressourceangaben realisieren <xml> <xml> XSLT Processor result result <xsl> <xsl>? Res Res source source URIResolver File File etc. DB 34 XSL können auf externe Dateien verweisen. Der XSLT Prozessor benützt den Resolver um die Pfadangabe auf das jeweilige Environment anzupassen.
60 Interface URIResolver Eigene Auflösung von Ressourcepfaden realisieren javax.xml.transform URIResolver MyResolver resolve() public class MyResolver implements URIResolver { static final String ROOT = "D:/MyRoot"; public Source resolve(string href, String base) throws TransformerException 35 } { } return new StreamSource( new File(ROOT + "/" + href));
61 Interface ErrorListener Eigener ErrorListener realisieren Klasse Transformer sowie die Factory unterstützen die Möglichkeit einen eigenen ErrorListener zu verwenden seterrorlistener() Dadurch besitzt man die Möglichkeit eine eigene Fehlerbehandlung zu realisieren siehe auch JAXP Parser API, ErrorHandler 36 public interface ErrorListener { public void warning(transformerexception ex); public void error(transformerexception ex); public void fatalerror(transformerexception ex); }
62 Interface ErrorListener Eigener ErrorListener realisieren javax.xml.transform ErrorListener MyListener public class MyListener implements ErrorListener { public void warning(transformerexception ex) throws TransformerException { } logger.warning("mylistener.warning",ex); 37 }...
63 JAXP- TRAX Links JSR 63: Java API for XML Processing Xalan-J : Saxon: OnJava.com: XML Processing with TRAX developer.com: Optimizing Stylesheet Execution with the Java Transformation API for XML (TRAX) 38
JAVA/XML Das bhv Taschenbuch
Michael Seeboerger-Weichselbaum JAVA/XML Das bhv Taschenbuch UMLJJLLLUJJ Inhaltsverzeichnis Inhaltsverzeichnis Vorwort 15 Teil I: Installation und erste Schritte 17 1 Das Konzept des Buches 19 Aufbau des
MehrWeb (Site) Engineering (WebSE)
1 / 22 Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 2 / 22 Übersicht XML-Beispiel Zugriff
MehrÜbersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung
Übersicht Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung XML-Beispiel B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 Zugriff auf Inhalt,
MehrProjektseminar "Texttechnologische Informationsmodellierung"
Projektseminar "Texttechnologische Informationsmodellierung" Analyse mit XSLT Ziel diese Sitzung Nach dieser Sitzung sollten Sie: Einen ersten Überblick über Funktionen in XPath haben Stylesheets und Templates
MehrSoftwaretechnik 2 - XML -
Softwaretechnik 2 - XML - Wirtschaftsinformatik 20.07.10 Thomas Perschke Inhalt XML Überblick: Java-API für XML JAXP Heute: SAX Ausblick: DOM Beispielszenario XSL Was ist XML? XML (Extensible Markup Language)
MehrXML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung
XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung Matthias Bethke bethke@linguistik.uni-erlangen.de Linguistische Informatik Universität Erlangen-Nürnberg Sommersemester
MehrEinführung. Hallo-Welt in XSLT
2. Vorlagen-Technik Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Vorgaben für Ein- und Ausgabeformate 8. Auslagerung
MehrLinux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs
BNC/XML 7 BNC/XML XML BNC XSLT extensible Markup Language I XML erlaubt es, strukturierte Daten in Textdateien zu speichern. Zum Schreiben und Lesen von XML-Dateien genügen einfache Text-Editoren wie Emacs
MehrSemistrukturierte Daten
Semistrukturierte Daten 7. XSLT Semistrukturierte Daten XSLT Stefan Woltran Institut für Informationssysteme Technische Universität Wien Sommersemester 2011 Stefan Woltran Seite 1 Semistrukturierte Daten
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrBerner Fachhochschule Software Schule Schweiz JDOM. http://www.jdom.org/ Beatrice Amrhein. Oktober 06
Berner Fachhochschule Software Schule Schweiz JDOM http://www.jdom.org/ Beatrice Amrhein Oktober 06 1 Motivation JDOM ist ein Open Source, Baumbasiertes, Java API zum Parsen, Erzeugen, Verarbeiten und
Mehr1 Software Engineering 1
1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt
Mehr> Datenstrukturen in Java (Teil 3)
Datenstrukturen > Datenstrukturen in (Teil 3) Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen noch eine zusätzliche Datenstrukturen und Ihre Bedeutung kennen Bäume > Sie wissen die Vor und Nachteile
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrEine Schnelleinführung in XSL
Eine Schnelleinführung in XSL Michael Dienert 8. Juli 2014 1 Was ist XSL? XSL ist die Abkürzung von Extensible Stylesheet Language. XSL ist selbst wieder eine XML-Anwendung, d.h. XSL-Dokumente müssen immer
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrXSL Transformation. Eine praxisorientierte Einführung Philip Heck
XSL Transformation Eine praxisorientierte Einführung Philip Heck Agenda Motivation Hello World - Getting Started with XSLT XSLT Verarbeitung im Detail XPath 2 Motivation datenzentriertes XML als Standard
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrXML Vorlesung FHA SS
XML Vorlesung FH Aargau, SS 2006 XSL Transformation (XSLT) Teil II Erik Wilde 19.6.2006 Übersicht Conflict Resolution Variablen und Parameter Sortieren Erzeugen des Ausgabebaumes XPath Erweiterungen um
MehrIN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. IN A NUTSHELL Elliotte Rusty Harold & W, Scott Means Deutsche Übersetzung
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrProjektseminar "Texttechnologische Informationsmodellierung"
Projektseminar "Texttechnologische Informationsmodellierung" Formatierung und Transformation http://www.text-technology.de/projects/sekimo.html Ziel dieser Sitzung Nach dieser Sitzung sollten Sie: XPath
Mehr11 XML Programmierung
11 XML Programmierung Programmatische Interfaces (API) zur Manipulation von XML (DOM und JDOM) Data Binding: Abbildung von DTD/Schema auf isomorphe Datenstrukturen Strombasierte Verarbeitung Integration
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
Mehr<< Syntax von XSL (2) >>
XSL > 1 XSL Einfache Conditions, Anweisung Mittels kann eine einfache Bedingung mittels XPath Syntax ausgewertet werden. können nur innerhalb
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrErzeugungsmuster. Kapselung der Objekt-Erzeugung
Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrÜbersicht. Web (Site) Engineering (WebSE) Java-Applets II. Java-Applets. Client-basierte Techniken Applets
Übersicht Web (Site) Engineering (WebSE) Vorlesung 6: Dynamisierungstechniken für Client und Server B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 20. 11. 2007 XSL-Verarbeitung
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrProgrammieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008
Programmieren II SAX Dr. Klaus Höppner DOM Hochschule Darmstadt SS 2008 JAXB 1 / 21 2 / 21 SAX SAX (Simple API for XML) ist eine ereignisorientierte Methode zum Parsen von XML-Dateien. Dies bedeutet, das
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrXSLT XSL Transformations
XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel
MehrObjektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer
Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;
MehrXSLT XSL Transformations
XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrExtensible Stylesheet Language Transformations XSLT
Extensible Stylesheet Language Transformations XSLT 13.06.2007 Grundlagen der Stylesheets XSLT Extensible Stylesheet Language Transformation Transformation Überführt XML-Daten in ein neues Format wieder
MehrSeminar Dokumentenverarbeitung
XPath und XSL/XSLT Seminar Dokumentenverarbeitung Juni 2002 Jan-Gerrit Drexhage jdrexhag@techfak.uni-bielefeld.de Garvin Gripp ggripp@techfak.uni-bielefeld.de 1 XSLT extensible Stylesheet Language (for
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrInstrumentierung und Dekodierung
116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so
MehrVariablen manipulieren per JDI
Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt
MehrReflection. Arthur Zaczek. Nov 2014
Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
MehrThemen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
MehrXSL. extended Stylesheet Language. Die Stylesheet Sprache für XML
XSL extended Stylesheet Language Die Stylesheet Sprache für XML XPath www.w3.org/tr/xpath Adressierung Die Templates im Stylesheet können nur dann richtig (an der richtigen Stelle) angewandt werden, wenn
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrSemistrukturierte Daten
Semistrukturierte Daten Teil 8: XSLT 1.0 Sommersemester 2007 8.1. Einführung 8.2. Aufbau von XSLT-Stylesheets 8.3. Abarbeitung von XSLT-Stylesheets 8.4. Result Tree 8.5. Kontrollstrukturen 8.6. Variablen,
MehrDateien. DVG Dateien 1
Dateien DVG2-05 - Dateien 1 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem JAVA-Programm her. Das Filesystem enthält als Objekte Devices, Verzeichnisse
MehrRainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR
Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrLambda Expressions in Java 8
Sie sind da Lambda Expressions in Java 8 Rolf Borst Lambda Expressions sind cool Aus dem Internet Stimmt das? Das total uncoole Beispiel Person nachname : String vorname : String alter : int plz : String
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrKlausur: Java (Liste P)
Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrXSLT: Transformation von XML
namics Developer Days 21./22.6.2002 XSLT: Transformation von XML Erik Wilde ETH Zürich http://dret.net/netdret/ 21.6.2002 namics DevDays XSLT 1 Übersicht XML als Format für strukturierte Daten Zugriff
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
Mehr10. OLAPLINE-Anwendertreffen
10. OLAPLINE-Anwendertreffen 26. und 27. April 2017 Schloss Garath Düsseldorf Zwei Tage Weiterbildung und Networking integriert: Vorträge, Workshops und Erfahrungsaustausch rund um TM1 JAVA EXTENSIONS
MehrJava Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1
Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrTransformation von XML-Dokumenten mit XSLT
Transformation von XML-Dokumenten mit XSLT Fabian Holzer Proseminar XML - Grundlagen, Verarbeitung und Anwendungen Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl für Systeme der
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrProgrammieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik
Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
Mehr1. Einführung. Gliederung. Document Object Model (DOM) DOM Die Spezifikation (1) Level 2 HTML Specification. 1. Einführung. 2.
Gliederung Document Object Model (DOM) Level 2 HTML Specification 1. Einführung Spezifikation 2. DOM Module Levels, Core, Überblick 3. DOM Intern Funktionsweise, Parser 4. DOM Level 2 HTML Eigenschaften,
MehrKapitel 5: Interfaces
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,
MehrÜbungsstunde 10. Einführung in die Programmierung I
Übungsstunde 10 Einführung in die Programmierung I Probleme bei Übung 9 [TODO Assistent] Nachbesprechung Übung 10 Aufgabe 1 Comparable boolean lessthan(comparable other) Ziel: Schreiben von Methoden,
MehrJava Beans. http://java.sun.com/beans/
Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrMaster of Advanced Studies in Software Engineering Java - Advanced Concepts. Musteraufgaben
1/7 Musteraufgaben Nr. 1 Enum 1 2 Enum 2 3 Generics 1 4 Generics 2 5 Generics 3 6 Annotation 7 Reflection Aufgabe Hinweis: An der Prüfung dürfen beliebige Papier-Unterlagen verwendet verwendet werden!
MehrKurzanleitung zu XML2DB
Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines
MehrKurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1
Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen
MehrSemistrukturierte Daten
Semistrukturierte Daten 8. XSLT Semistrukturierte Daten XSLT Stefan Woltran Emanuel Sallinger Institut für Informationssysteme Technische Universität Wien Sommersemester 2014 Stefan Woltran, Emanuel Sallinger
MehrApplets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer
Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrRemote Method Invocation
Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrBeispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme
Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,
Mehr11. Java Klassen. Klassen - Technisch. Klassen - Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 11. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
Mehr