SlideShare ist ein Scribd-Unternehmen logo
Das
                                                                                              verknüpfte Bild
                                                                                              kann nicht
                                                                                              angezeigt
                                                                                              werden.
                                                                                              Möglicherweis
                                                                                              e wurde die
                                                                                              Datei
                                                                                              verschoben,




                          Mehr Möglichkeiten.
                           Mehr Chancen.
                           Mehr Geschäft.	

                                            Martin Brändle


              Grundlagen von XML, XSLT und Web 2.0
                                                    in
                    FileMaker Server Advanced 8

        	

1.12.2006        FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               1
Das
                                                                                                    verknüpfte Bild
                                                                                                    kann nicht
                                                                                                    angezeigt
                                                                                                    werden.
                                                                                                    Möglicherweis
                                                                                                    e wurde die
                                                                                                    Datei
                                                                                                    verschoben,




                     Inhalt	


              •  Custom Web Publishing	

              •  Allgemeines zu XML	

              •  Allgemeines zu XSLT	

              •  FileMaker XML und XSLT-Abfragen	

              •  Newsticker Demo	

              •  RSS	

              •  AJAX	





        	

1.12.2006              FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               2
Das
                                                                                                verknüpfte Bild
                                                                                                kann nicht
                                                                                                angezeigt
                                                                                                werden.
                                                                                                Möglicherweis
                                                                                                e wurde die
                                                                                                Datei
                                                                                                verschoben,




                 Über mich	


      •  Informationsspezialist Chemie
            (prom. Chemiker, NDS Information + Dokumentation)

      •  Informationszentrum Chemie Biologie Pharmazie, ETH Zürich	

            Entwicklung:	

             FileMaker: Datenbanken (Informationssystem CLICAPS)	

             FileMaker Custom Web Publishing (CWP): CDML (prä-7), XML/XSLT (post-6)	

             Websites	

            Ausbildung:	

             Studierende, Berufslehre I+D	

            Fachspezialist Chemie:	

             Erwerbung, Recherchen 	

      	

      •  e-Mail: braendle at chem dot ethz dot ch 	


        	

1.12.2006          FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               3
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       CWP Projekte mit XML/XSLT	


              •  CLICAPS Bibliotheksinformationssystem - http://www.clicaps.ethz.ch/	

                    Unterstützte Suchen, Personalisierung, StarTree	

                    	

              •  Website Informationszentrum : CWP-Komponenten -
                 http://www.infochembio.ethz.ch/	

                    Newsticker, > 2000 RSS-Feeds für elektronische Zeitschriften und News	

                    	

              •  Literaturdatenbank für Seile und Seilbahnen - http://www.ropeways.ethz.ch/	

                    AJAX-basierter Webshop	

                    	

              •  Artikelkatalog Chemieschalter - 
                 http://www.infochembio.ethz.ch/zv/zv_artikel_suche.html	


                        Ca. 320‘000 Zugriffe / Woche (25% FileMaker CWP Zugriffe)	




        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               4
Das
                                                                                                        verknüpfte Bild
                                                                                                        kann nicht
                                                                                                        angezeigt
                                                                                                        werden.
                                                                                                        Möglicherweis
                                                                                                        e wurde die
                                                                                                        Datei
                                                                                                        verschoben,




                         Über Sie	


              •    XML Import/Export mit XSLT?	

              •    Erfahrungen mit Web Design und Publishing (HTML, CSS, JavaScript)?	

              •    Projekte mit CDML (Claris Dynamic Markup Language)?	

              •    FileMaker Server Advanced (FMSA)?	

              •    XSLT Site Assistant?	

              •    CDML-nach-XSLT Konversionstool?	

              •    XML/XSLT vs. XML/PHP?	





        	

1.12.2006                  FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               5
Das
                                                                                           verknüpfte Bild
                                                                                           kann nicht
                                                                                           angezeigt
                                                                                           werden.
                                                                                           Möglicherweis
                                                                                           e wurde die
                                                                                           Datei
                                                                                           verschoben,




              CWP : Erzeugen von XML mit FMSA	





                                         DEMO	





        	

1.12.2006     FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               6
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       XML	


              •  XML = eXtensible Markup Language	

              •  Menge von Regeln zur Schaffung von Auszeichnungs- bzw. Markup-Sprachen	

              •  Markup-Sprache = Menge von Symbolen (Tags) im Dokument	

                      Benennung (Auszeichnung) einzelner Teile	

                      Abgrenzung einzelner Teile (Start-Tag, Ende-Tag)	

                      	

              Meldung	

                	

TitelNur noch 9 Tage bis zur FileMaker Konferenz 2006!/Titel
                   AbsatzDie zweitägige Konferenz bietet nichtwichtigvielfältige
                   Informationen zu unterschiedlichstenThemen/nichtwichtig. Sie haben
                   erstmals die Möglichkeit, unter einer Auswahl von 3 parallelen Sessions Ihr
                   maßgeschneidertes Programm selbst zusammen zu stellen. WichtigMelden
                   Sie sich gleich an und geben Sie uns Ihre Wünsche bekannt./Wichtig/
                   Absatz	

              /Meldung	



        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               7
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                   Elemente: Die Bausteine von XML	


              •  Behälter für Text und Unterelemente
                    	

                  	

TextDas ist im Element Text enthaltener Text/Text	

              	

                  	

AussenHier TextInnenund noch mehr Text/Innen und wieder Text/
                    Aussen	

              	

              •  Syntax
                    	

                  	

Name Attribut1=Wert1 Attribut2=Wert2Inhalt/Name	

              	

              •  Leeres Element	

              	

                  	

Leer/Leer ⇒ Leer/	

                  	

Leer Attribut1=Wert1 Attribut2=Wert2/	


        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft               8
Das
                                                                                                            verknüpfte Bild
                                                                                                            kann nicht
                                                                                                            angezeigt
                                                                                                            werden.
                                                                                                            Möglicherweis
                                                                                                            e wurde die
                                                                                                            Datei
                                                                                                            verschoben,




                   Element-Erweiterungen: Attribute	


              •  Syntax	

              	

                  	

Attributname=Wert oder Attributname='Wert'	

              	

                  	

Beispiel: resultset count=232 fetch-size=10	

              	

              •  Ein Element darf jedes Attribut nur einmal enthalten	

              	

                  	

Falsch: Gruppe Person=Max Person=Sonja Person=Jonas	

                  	

	

                  	

Richtig: Gruppe Personen=Max Sonja Jonas	

                  	

Richtig: Gruppe Person1=Max Person2=Sonja Person3=Jonas	

                  	

Richtig: GruppePersonMax/PersonPersonSonja/Person                      	

                             	

PersonJonas/Person/Gruppe	



        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                     9
Das
                                                                                                              verknüpfte Bild
                                                                                                              kann nicht
                                                                                                              angezeigt
                                                                                                              werden.
                                                                                                              Möglicherweis
                                                                                                              e wurde die
                                                                                                              Datei
                                                                                                              verschoben,




                       XML-Dokumente : Baumstruktur	

              ?xml version=1.0 encoding=UTF-8?	

                                  XML-Deklaration	

              Fruechte	

               !-- Kommentar: Hier folgen die einzelnen Fruechte --	

               Frucht id=1ApfelFarberot/Farbe/Frucht	

               Frucht id=2ZitroneFarbegelb/Farbe/Frucht	

              /Fruechte	





        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                   10
Das
                                                                                                               verknüpfte Bild
                                                                                                               kann nicht
                                                                                                               angezeigt
                                                                                                               werden.
                                                                                                               Möglicherweis
                                                                                                               e wurde die
                                                                                                               Datei
                                                                                                               verschoben,




                         Zeichen-Entities	


              •  Vordefinierte Zeichen-Entities	

                  	

amp; 	

: 	

 	

                  	

apos; 	

: 	

'	

                  	

gt;   	

: 	

	

                  	

lt;   	

: 	

	

                  	

quot; 	

: 	

	

              	

              •  Zahlendefinierte Zeichen-Entities : Unterstützung von Unicode in XML	


               	

Dezimal: 	

#8364;       	

:   	

€	

               	

Sedezimal: 	

x20ac;
                                      	

   	

:   	

€	





        	

1.12.2006                  FileMaker Konferenz 2006          Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           11
Das
                                                                                                         verknüpfte Bild
                                                                                                         kann nicht
                                                                                                         angezeigt
                                                                                                         werden.
                                                                                                         Möglicherweis
                                                                                                         e wurde die
                                                                                                         Datei
                                                                                                         verschoben,




                         Namensräume	


       •  Namensraum = Gruppe von Element- und Attributnamen	

       •  Vermeidung von Namenskonflikten	

       	

           	

Beispiel: Bank (Geldinstitut, Sitzgelegenheit, Untiefe)
              	

       •  Qualifizierte Elementnamen
              	

           	

Geldinstitute:Bank und Sitzgelegenheiten:Bank	


       •  Namensraum-Deklaration	


              	

xmlns:Name=url	

       	

              	

Beispiel: xsl:stylesheet xmlns:fmrs=http://www.filemaker.com/xml/fmresultset ...	



1.12.2006    	

           FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft            12
Das
                                                                                                             verknüpfte Bild
                                                                                                             kann nicht
                                                                                                             angezeigt
                                                                                                             werden.
                                                                                                             Möglicherweis
                                                                                                             e wurde die
                                                                                                             Datei
                                                                                                             verschoben,




                              Wohlgeformte XML-Dokumente	


              •  Jedes Element, das Text oder Elemente enthält, muss ein Start- und End-Tag
                 haben 	

              •  Der Tag eines leeren Elements muss vor der Abschlussklammer einen
                 Schrägstrich / haben	

              •  Alle Attributwerte müssen in Anführungszeichen stehen	

              •  Elemente dürfen sich nicht überlappen	

               	

	

                        BeispielRichtiges                          BeispielFalsches
                        fettBeispiel/fett für                    fettBeispiel/Beispiel für
                        Verschachtelung./Beispiel	

               Verschachtelung./fett	


              •  Keine isolierte Markupzeichen:  , ]] und  	

              •  Elementnamen dürfen nur mit Buchstaben und Unterstrichen _ beginnen	

              •  Elementnamen dürfen nur Buchstaben, Zahlen, Bindestriche, Punkte,
                 Unterstriche enthalten, und Doppelpunkte für Namensräume	

               	

	



        	

1.12.2006                       FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           13
Das
                                                                                                        verknüpfte Bild
                                                                                                        kann nicht
                                                                                                        angezeigt
                                                                                                        werden.
                                                                                                        Möglicherweis
                                                                                                        e wurde die
                                                                                                        Datei
                                                                                                        verschoben,




                         Sinn und Zweck von XML	


              •    W3C Standard 	

              •    Anwendungsspezifisch	

              •    Eindeutige Strukturen	

              •    Trennung von Inhalt und Präsentation ⇒ XSLT	

              •    Fehlerüberprüfung möglich	





        	

1.12.2006                  FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           14
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       FMSA XML Abfragen	


              •  Merkmal der URL	

              	

                  	

http://host/fmi/xml/fmresultset.xml?....	

              	

              •  Allgemeiner Aufbau der URL (kursiv = optional)	


               	

http://host/fmi/xml/fmresultset.xml?-db=Datenbank-lay=Layout
                  Feld1.op=bwFeld1=Wert1Feld2.op=bwFeld2=Wert2-sortfield.1=Feldname
                  -sortorder.1=ascend-max=Anzahl_Datensätze-befehl	

              	

              •  Häufige Befehle	

              	

                  	

-find, -findall, -new, -edit (-edit braucht -recid=Record_ID)	

              	

              Für alle Parameter und Befehle siehe FMSA CWP Handbuch, Anhang A!	


        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           15
Das
                                                                                                                                                                verknüpfte Bild
                                                                                                                                                                kann nicht
                                                                                                                                                                angezeigt
                                                                                                                                                                werden.
                                                                                                                                                                Möglicherweis
                                                                                                                                                                e wurde die
                                                                                                                                                                Datei
                                                                                                                                                                verschoben,




                                                                        fmresultset XML grammar (1)	


                                                              ?xml version=1.0 encoding=UTF-8?	

                                                              fmresultset xmlns=http://www.filemaker.com/xml/fmresultset version=1.0	

                                                               	

error code=0/	

                                                         Fehlercode	

  Prolog..........................................	





                                                               	

product build=06/14/2006 name=FileMaker Web Publishing Engine 
                                                               	

version=8.0.4.128/	

                                                               	

datasource database=Mitteilungen_fmi date-format=MM/dd/yyyy 
                                                               	

layout=WWW_Meldungen table=Meldungen time-format=HH:mm:ss 
                                                               	

timestamp-format=MM/dd/yyyy HH:mm:ss total-count=232/	

                                                               	

metadata	

                                                                 Layoutinfo	

                                                               	

 	

field-definition auto-enter=no global=no max-repeat=1 name=Aktiv not-
                                                               	

 	

empty=no result=text type=calculation/	

                                                               	

 	

...	

                                                               	

 	

relatedset-definition table=Meldungen_CT_Keywords	

                                                               	

 	

 	

field-definition auto-enter=no global=no max-repeat=1 
                                                               	

 	

 	

name=Keywords::Keyword_de not-empty=no result=text type=normal/	

                                                               	

 	

/related-definition	

                                                               	

/metadata	



1.12.2006                                               	

               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                    16
Das
                                                                                                                                                                                verknüpfte Bild
                                                                                                                                                                                kann nicht
                                                                                                                                                                                angezeigt
                                                                                                                                                                                werden.
                                                                                                                                                                                Möglicherweis
                                                                                                                                                                                e wurde die
                                                                                                                                                                                Datei
                                                                                                                                                                                verschoben,




                                                                                   fmresultset XML grammar (2)	

                                                                           	

resultset count=3 fetch-size=2	

  Daten......................................................	




                                                                           	

 	

record mod-id=13 record-id=233	

        Datensätze (0 ... mehrere)
                                                                           	

 	

 	

field name=Aktiv	

                     Feld (1 ... mehrere)	

                                                                           	

 	

 	

 	

dataja/data	

                     Felddaten (1 ... mehrere Wiederholungen)	

                                                                           	

 	

 	

/field	

                                                                           	

 	

 	

...	

                                                                           	

 	

 	

relatedset count=4 table=Meldungen_CT_Keywords	

 Portal (0 ... mehrere)	

                                                                           	

 	

 	

 	

record mod-id=0 record-id=558	

               Portaldatensätze (0 ... Mehrere)	

                                                                           	

 	

 	

 	

 	

field name=Keywords::Keyword_de	

                                                                           	

 	

 	

 	

 	

 	

dataFileMaker/data	

                                                                           	

 	

 	

 	

 	

/field	

                                                                           	

 	

 	

 	

 	

...	

                                                                           	

 	

 	

 	

/record	

                                                                           	

 	

 	

 	

...	

                                                                           	

 	

 	

/relatedset	

                                                                           	

 	

 	

...	

                                                                           	

 	

/record	

                                                                           	

 	

...	

                                                                           	

/resultset	

                                                                         /fmresultset	



1.12.2006                                                          	

                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                        17
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      XSLT	


              •  XSLT = eXtensible Stylesheet Language : Transformations	

              •  W3C Standard	

              •  Sprache, um die Struktur von XML-Dokumenten zu transformieren	

                    d.h. XSLT braucht immer XML (fast immer ...)	

              •  Resultat der Transformation: 	

                    XML, HTML (als XHTML), Text, irgendetwas (BLOB)	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           18
Das
                                                                                           verknüpfte Bild
                                                                                           kann nicht
                                                                                           angezeigt
                                                                                           werden.
                                                                                           Möglicherweis
                                                                                           e wurde die
                                                                                           Datei
                                                                                           verschoben,




              FMSA CWP mit XML/XSLT	





        	

1.12.2006     FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           19
Das
                                                                                                       verknüpfte Bild
                                                                                                       kann nicht
                                                                                                       angezeigt
                                                                                                       werden.
                                                                                                       Möglicherweis
                                                                                                       e wurde die
                                                                                                       Datei
                                                                                                       verschoben,




                        FMSA XSLT Abfragen	


              •  Merkmal der URL	

              	

                  	

http://host/fmi/xsl/stylesheetname.xsl?-grammar=fmresultset....	

              	

              •  Allgemeiner Aufbau der URL (kursiv = optional)	


               	

http://host/fmi/xsl/stylesheetname.xsl?-grammar=fmresultset-db=Datenbank	

               	

-lay=LayoutFeld1.op=bwFeld1=Wert1Feld2.op=bwFeld2=Wert2
                  -sortfield.1=Feldname-sortorder.1=ascend-max=Anzahl_Datensätze-befehl	

              	

              •  Häufige Befehle	

              	

                  	

-find, -findall, -new, -edit (-edit braucht -recid=Record_ID), -process	

              	

              Für alle Parameter und Befehle siehe FMSA CWP Handbuch, Anhang A!	


        	

1.12.2006                 FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           20
Das
                                                                                                       verknüpfte Bild
                                                                                                       kann nicht
                                                                                                       angezeigt
                                                                                                       werden.
                                                                                                       Möglicherweis
                                                                                                       e wurde die
                                                                                                       Datei
                                                                                                       verschoben,




                        XSLT : Eigenschaften	


              •  In XML definiert	

               	

xsl:for-each select=/fmrs:fmresultset/fmrs:resultset/fmrs:record”	

               	

 xsl:variable name=record select=current()/	

               	

 xsl:value-of select=$record/fmrs:field[@name = 'Feld1' ]/fmrs:data[1]/	

               	

/xsl:for-each	

                     	

              •  Deklarativ anstelle prozedural (nicht wie C++, Java, JavaScript, PHP, ...)	

                   Transformation wird beschrieben. 
                   XSLT-Prozessor entscheidet, wie am effizientesten transformiert wird.
                   	

              •  Regelbasiert	

                   Templat-basierte Regeln die für Muster, die im Input vorkommen, greifen und dann
                   den Output generieren.	

                   Reihenfolge der Deklaration egal.	




        	

1.12.2006                 FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           21
Das
                                                                                                                 verknüpfte Bild
                                                                                                                 kann nicht
                                                                                                                 angezeigt
                                                                                                                 werden.
                                                                                                                 Möglicherweis
                                                                                                                 e wurde die
                                                                                                                 Datei
                                                                                                                 verschoben,




                                 Allgemeine Struktur eines Stylesheets	


                        ?xml version=1.0 encoding=UTF-8?	

                        ?xml-processing-instruction (optional)?	

                        xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform
                             Namensraumdeklarationen ...	

                            !-- Kommentar --	

Elemente .........	

Top-Level-	





                                                                                                Kopfbereich	

                            !-- Include-Dateien (optional mit xsl:include) --	

                            !-- Variablen-Deklarationen (optional mit xsl:variable) --	

                            xsl:output method=html encoding=UTF-8/	

                        	

                            xsl:template match=/fmrs:fmresultset	

                             !-- HTML Code erzeugen --	

                             !-- HTML Code erzeugen --	

                            /xsl:template	

                        	

                            !-- evtl. Untertemplate (aka Unterroutinen) --	

                        /xsl:stylesheet	


1.12.2006         	

              FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft            22
Das
                                                                                                                         verknüpfte Bild
                                                                                                                         kann nicht
                                                                                                                         angezeigt
                                                                                                                         werden.
                                                                                                                         Möglicherweis
                                                                                                                         e wurde die
                                                                                                                         Datei
                                                                                                                         verschoben,




                       XSLT versus PHP	


       XSLT erzeugt alles	

                                         PHP speist ein	

                                                                   html	

       ?xml version=1.0 encoding=UTF-8?	

                                                                    ?php 	

       xsl:stylesheet version=1.0...	

        xsl:output method=html encoding=UTF-8/	

              require_once('FileMaker.php');	

                                                                     $fm = new FileMaker(‘meine_db');	

        xsl:template match=/fmrs:fmresultset	

                                                                     $findCommand = $fm-newFindAllCommand('Form
         xsl:variable name=record select=“$record/
          fmrs:fmresultset/fmrs:resultset/                         View');	

          fmrs:record[1]“/ 	

                                      // je nachdem 20-40 Zeilen für Query!	

         html	

                                                   $result = $findCommand-execute();	

            head..../head	

                                     $records = $result-getRecords();	

            body	

                                                $record = $records[1];	

              pGuten Morgen, /p	

                              ?	

              p	

                                                head..../head	

               xsl:value-of select=$record/fmrs:field[@name =      body	

          'Vorname']/fmrs:data[1]/	

                              pGuten Morgen, /p	

              /p	

                                                p	

           /body	

                                                   ?php echo $record-getField(‘Vorname'); ?	

         /html	

                                                  /p	

        /xsl:template	

                                          /body 	

       /xsl:stylesheet	

                                        /html	

                                                                             	



        	

1.12.2006                 FileMaker Konferenz 2006       Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                         23
Das
                                                                                                         verknüpfte Bild
                                                                                                         kann nicht
                                                                                                         angezeigt
                                                                                                         werden.
                                                                                                         Möglicherweis
                                                                                                         e wurde die
                                                                                                         Datei
                                                                                                         verschoben,




                          XSLT - Wichtige Elemente 	


              •     xsl:value-of select=XPath-Ausdruck, Ausdruck oder Datentyp/ für Ausgabe	

              •     xsl:template match=XPath-Ausdruck für Templatregeln	

              •     xsl:for-each select=XPath-Ausdruck für Loops	

              •     xsl:choose für Verzweigungen	

              •     xsl:attribute name=attributname zum Setzen von Elementattributen	

              •     xsl:copy-of select=XPath-Ausdruck/ zum Kopieren ganzer XML-Fragmente 	

              	





        	

1.12.2006                   FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           24
Das
                                                                                                                     verknüpfte Bild
                                                                                                                     kann nicht
                                                                                                                     angezeigt
                                                                                                                     werden.
                                                                                                                     Möglicherweis
                                                                                                                     e wurde die
                                                                                                                     Datei
                                                                                                                     verschoben,




                     Auswahl von XML-Elementen: XPath	


      •  XSLT und XPath bedingen sich gegenseitig! XPath = W3C Standard	

      •  XPath-Ausdrücke zum Auswählen von Knoten (Elemente, Attribute) eines XML-Baums	

      •  XPath verwendet Pfade und Achsen. Wir verwenden abgekürzte Notationen	

      	

              .                                  	

relativ im Kontext: Der aktuelle Knoten	

          	

record                              	

relativ im Kontext: alle record-Kinderknoten	

          	

/fmrs:fmresultset/fmrs:resultset    	

absolut: Alle resultset-Kinder des Kindelements fmresultset
                                                 	

des Wurzelelements	

          	

fmrs:resultset/fmrs:record          	

relativ im Kontext: Alle record-Kinder von resultset	

          	

fmrs:error/@code                    	

relativ im Kontext: Das Attribut code des Elements error	

          	

fmrs:record[2]                      	

relativ im Kontext: Das zweite record-Kindelement	

          	

fmrs:field[@name = 'Vorname'] 	

relativ im Kontext: Das Element field mit Attribut name, 
                                                 	

dessen Attributwert Vorname ist (Test-Ausdruck)	

      	

      •  XPath-Ausdrücke auch für Berechnungen und Vergleiche	

      	

          	

xsl:value-of select=($x + $y) div 10/ 	

          	

xsl:value-of select=$x != 'Vergleichstring'/	


        	

1.12.2006              FileMaker Konferenz 2006    Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft                           25
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       „Kontext“ in XSLT	


              •  Statischer Kontext	

                    Hängt von Position des Ausdrucks im Stylesheet ab	

                    Bsp. Globale Variablen (Kopf-Bereich)	

                    Bsp. Lokale Variable (Kind von xsl:template oder Unterelement)	

              •  Dynamischer Kontext	

                    Gegenwärtiger Wert der Variable	

                    Gegenwärtige Position im XML-Baum der Quelle, umfasst:	

                         	

Knoten (xsl:for-each, xsl:apply-templates)	

                         	

Kontext-Knoten (normalerweise gleich wie gegenwärtiger Knoten)	

                         	

Kontext-Position (abfragbar über position(), 
                         	

        	

        bestimmt durch Durchlauf in xsl:for-each )	

                         	

Kontext-Grösse (Anzahl der Knoten in der gegenwärtigen Knotenliste)	




        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           26
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      Datentypen in XSLT	


              •  Dynamische Typen, assoziiert mit Werten anstelle von Variablen	


              •  Boolean:     	

true(), false()	

              •  Zahlen:      	

Bsp. -10, 0, 9999999999, 1 div 0, NaN	

              •  Strings:     	

Bsp. 'Text', 'Abkamp;uuml;rzung'	

              •  Node-sets:   	

Satz von Knoten eines XML-Baums oder Kombination	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           27
Das
                                                                                                        verknüpfte Bild
                                                                                                        kann nicht
                                                                                                        angezeigt
                                                                                                        werden.
                                                                                                        Möglicherweis
                                                                                                        e wurde die
                                                                                                        Datei
                                                                                                        verschoben,




                         Beispiel: Newsticker	


              •    Zeigt neueste Meldungen an	

              •    Entfernt nicht mehr aktuelle Meldungen nach einem Verfalldatum	

              •    Anreisser (mehr ...) und Detailanzeige	

              •    Zweisprachig	

              •    Suchfunktion	

              •    RSS NewsFeed	

              •    AJAX-basierte Auswahl nach Schlagworten	

              •    E-mailing einzelner News	



                   Download: http://www.infochembio.ethz.ch/download/newsticker.zip	





        	

1.12.2006                  FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           28
Das
                                                                                            verknüpfte Bild
                                                                                            kann nicht
                                                                                            angezeigt
                                                                                            werden.
                                                                                            Möglicherweis
                                                                                            e wurde die
                                                                                            Datei
                                                                                            verschoben,




              Newsticker	





                                          DEMO	





        	

1.12.2006      FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           29
Das
                                                                                                          verknüpfte Bild
                                                                                                          kann nicht
                                                                                                          angezeigt
                                                                                                          werden.
                                                                                                          Möglicherweis
                                                                                                          e wurde die
                                                                                                          Datei
                                                                                                          verschoben,




                        Newsticker: Entwicklungszyklen	


       •      Schritt 0 :     	

Erstellen des Website-Templats	

       •      Schritt 1 :     	

Aktivieren der Datenbank, einfache Abfrage, Anzeige der aktuellen News	

       •      Schritt 1+ :    	

Refactoring - Auftrennen in Module	

       •      Schritt 2 :     	

Detailanzeige - cmdl2xsl_utilities-Bibliothek	

       •      Schritt 2+ :    	

Nachladen von XML - document()-Funktion 	

       •      Schritt 3 :     	

Einführen der Suche - Vom FM XML Query zum Formular	

       •      Schritt 3+ :    	

Smarte Suche : Logs, Stoppwortfilterung, Wiederverwendung	

       •      Schritt 4 :     	

RSS Feed	

       •      Schritt 4+ :    	

RSS optimiert	

       •      Schritt 5 :     	

AJAX für dynamische Themenwahl	

       •      Schritt 6 :     	

E-mails	



                 Download: http://www.infochembio.ethz.ch/download/newsticker.zip	


        	

1.12.2006                    FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           30
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                    Schritt 0 : Website-Templat	


              •  Erzeugen in einer Webseiten-Erstellungssoftware, bspw. Macromedia
                 Dreamweaver 	

              •  Erzeugte Seiten müssen im XHTML-Format sein	

                    Dreamweaver: Menu Datei  Konvertieren  XHTML 1.0 Transitional	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           31
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      Schritt 1 : Einfache Abfragen	



              •  XML und XSLT CWP einschalten	

              •  Datenbank CWP fähig machen	

                    Erweiterte Privilegien einstellen: fmxslt, fmxml	

                    WICHTIG fmxml immer mit passwort-geschütztem Account, sonst
                    Sicherheitsrisiko! 	

              •  Layouts für CWP erstellen	

                    WICHTIG Nur benötigte Felder für Suchen und Resultate aufnehmen	

              •  XHTML in Stylesheet-Vorlage einfüllen	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           32
Das
                                                                                                       verknüpfte Bild
                                                                                                       kann nicht
                                                                                                       angezeigt
                                                                                                       werden.
                                                                                                       Möglicherweis
                                                                                                       e wurde die
                                                                                                       Datei
                                                                                                       verschoben,




                         Was kommt wohin?	


              •  XSLT-Stylesheets 	

                    Relativ zum Verzeichnis, in welchem FileMaker Server installiert ist:	

                    Web Publishing/xslt-template-files/ oder Unterverzeichnisse desselben
                    	

              •  XML-Dateien, die nachgeladen werden	

                    Web Publishing/xslt-template-files/ oder Unterverzeichnisse desselben
                    	

              •  Alle statischen Dateien (HTML, CSS, JavaScript, GIF, JPG, PNG, ...)	

                    ins Verzeichnis der Webdateien , das im Webserver bezeichnet wurde, z.B.	

                    /Library/Webserver/Documents 	

(OS X)
                    oder ~/Sites                       	

(OS X, Personal Web Sharing)	

                    oder frei wählbares Verzeichnis    	

(OS X Server, Windows Server)	

                   	

                   	





        	

1.12.2006                 FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           33
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       XSLT: Variablen	


              Variable deklarieren (Variante 1, effizient)	

              	

                  	

xsl:variable name=meinevar select=/	

                  	

xsl:variable name=meinstring select='Text in einfachen Hochkommata'/!
              	

              Variable deklarieren (Variante 2, mächtig, aber ineffizient)	

              	

                  	

xsl:variable name=meinevar	

                  	

 !-- irgendein XSLT-Konstrukt --	

                  	

/xsl:variable	

              	

              Variable verwenden mit $name:	

              	

                  	

xsl:value-of select=$meinevar/	

        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           34
Das
                                                                                                       verknüpfte Bild
                                                                                                       kann nicht
                                                                                                       angezeigt
                                                                                                       werden.
                                                                                                       Möglicherweis
                                                                                                       e wurde die
                                                                                                       Datei
                                                                                                       verschoben,




                        XSLT: Loops mit xsl:for-each	


              xsl:for-each select=/fmrs:fmresultset/fmrs:resultset/fmrs:record”	

               !-- Aktuelles Element und alle Unterelemente mit current() wählen --	

               xsl:variable name=record select=current()/	

               !-- Position im Kontext mit position() wählen --	

               xsl:variable name=nummer select=position()/	

               !-- Nummer - Feld1 - Feld2 - Zeilenumbruch ausgeben --	

               xsl:value-of select=$nummer/	

               xsl:text - /xsl:text	

               xsl:value-of select=$record/fmrs:field[@name = 'Feld1' ]/fmrs:data[1]/	

                xsl:text - /xsl:text	

               xsl:value-of select=$record/fmrs:field[@name = 'Feld2' ]/fmrs:data[1]/	

               br/	

              /xsl:for-each	





        	

1.12.2006                 FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           35
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       Wichtige Xpath- und XSLT-Funktionen	


              •  String-Manipulation	

                    concat(), contains(), normalize-space(), starts-with(), string-length(),
                    substring(), substring-before(), substring-after()	

              •  Aggregation	

                    count(), sum()	

              •  Boole‘sche Funktionen	

                    false(),true(),not()	

              •  Information über den Kontext	

                    current(), last(), position()	

              •  XML-Dokument laden	

                    document()	


              Keine Angabe eines Namensraums nötig!	



        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           36
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      Schritt 1+: Refactoring 	


              •  Modularisierung: Integration von Seitenteilen in separate Stylesheets	

                   Kopf mit Breadcrumb 	

: header_de.xsl, header_en.xsl	

                   Resultate              	

: results_de.xsl, results_en.xsl 	

                   Fuss                   	

: footer_de.xsl, footer_en.xsl	


              •  Einbinden der Stylesheets in Hauptseite mit xsl:include href=url	


              •  Aufruf der Teile mit xsl:call-template name=name	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           37
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      XSLT: Subroutinen	


              •  Subroutinen über benannte Template implementieren
                  	

                      xsl:template name=meine_subroutine
                       xsl:param name=uebergabe1/
                       xsl:param name=uebergabe2/             Übergebene Parameter	

                       !-- hier etwas tun --
                      /xsl:template	

              	

              •  Aufruf der Subroutine
                  	

                      !-- hier etwas tun --	

                      xsl:call-template name=meine_subroutine	

                       xsl:with-param name=uebergabe1 select=$var1/	

   Übergabeparameter	

                       xsl:with-param name=uebergabe2 select=XPath-Ausdruck2/
                      /xsl:call template	

                      !-- hier etwas tun --	


        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           38
Das
                                                                                                       verknüpfte Bild
                                                                                                       kann nicht
                                                                                                       angezeigt
                                                                                                       werden.
                                                                                                       Möglicherweis
                                                                                                       e wurde die
                                                                                                       Datei
                                                                                                       verschoben,




                     FileMaker XSLT Erweiterungsfunktionen	


              •  Namensraum muss in 	

                  	

xsl:stylesheet xmlns:fmxslt=xalan://com.fmi.xslt.ExtensionFunctions“
                     spezifiziert werden	

              •  Angabe des fmxslt: Namensraumpräfixes	

              	

              •  Beispiele	

                        Stringmanipulation:     	

fmxslt:url_encode(), fmxslt:url_decode() u.a.	

                        Datumsfunktionen:       	

fmxslt:convert_datetime() u.a.	

                        e-Mail:                 	

fmxslt:send_email()	

              	

              Siehe FMSA CWP Handbuch, S. 65ff ; XSLT Reference.fp7 	





        	

1.12.2006                 FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           39
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       Schritt 2 : Aufruf der Detailseite	


              •  Verwendung des Templats get-link in der Bibliothek cdml2xsl_utilities.xsl	


              •  Falls Bibliothek nicht vorhanden	

                    Dummy-CDML generieren (wie: siehe lib/results_de.xsl)	

                    Mit CDML-XSLT Konversionstool konvertieren, erzeugt
                    cdml2xsl_utilities.xsl	

                    	

              •  Siehe: FMSA CWP Handbuch, Anhang C, insbesonders S. 139ff.	





        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           40
Das
                                                                                                    verknüpfte Bild
                                                                                                    kann nicht
                                                                                                    angezeigt
                                                                                                    werden.
                                                                                                    Möglicherweis
                                                                                                    e wurde die
                                                                                                    Datei
                                                                                                    verschoben,




                     Schritt 2+: Nachladen von Dokumenten	


              •  Verwendung der XSLT-Funktion document() und Abspeichern in einer
                 Variable	

              •  xsl:variable name=xmlbaum select=document('url')/	

              •  Verwendung von $xmlbaum an beliebiger Stelle im Stylesheet	

              •  document() akzeptiert nur wohlgeformtes XML	





        	

1.12.2006              FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           41
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      Schritt 3: Suche	


              •  XSLT-Abfrage in Formular umwandeln	

                  	

	

                  	

Parameter=Wert Paare ⇒	

              	

                  	

input type=... name=Parameter value=Wert/	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           42
Das
                                                                                                    verknüpfte Bild
                                                                                                    kann nicht
                                                                                                    angezeigt
                                                                                                    werden.
                                                                                                    Möglicherweis
                                                                                                    e wurde die
                                                                                                    Datei
                                                                                                    verschoben,




                      Schritt 3+ : Smarte Suche	


              •  Stoppwort-Filterung	

              •  Automatisch erzeugte Logdatei	

              •  Einsatz von fmxslt:set_status_code() und fmxslt:set_header() zur
                 Beeinflussung des HTTP-Headers (FMSA CWP Handbuch, S. 76) 	


              •  Weitere Möglichkeiten	

                  Abfrage umformulieren (CLICAPS, Seilbahnliteratur)	

                  Abfragen in mehreren Tabellen gleichzeitig (CLICAPS)	

                  Abfrageanalyse (CLICAPS)	

                  Unterstützte Abfragen (Meinen Sie? in CLICAPS)	

                  History-Funktion	

                  Alerts	




        	

1.12.2006              FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           43
Das
                                                                                                           verknüpfte Bild
                                                                                                           kann nicht
                                                                                                           angezeigt
                                                                                                           werden.
                                                                                                           Möglicherweis
                                                                                                           e wurde die
                                                                                                           Datei
                                                                                                           verschoben,




                            Schritt 4 : RSS	


       •  RSS = Familie von Nachrichtenformaten in XML, Transport über HTTP	

            RSS 0.9, 1.0 	

RDF Site Summary 	

            RSS 0.91, 1.0 	

Rich Site Summary	

            RSS 2.0        	

Really Simple Syndication	

            ATOM 1.0       	

Standard der IETF (versucht Probleme mit eingebettetem
                           	

HTML zu lösen)	


       •           Content-Syndication (Mehrfach-Verwendung von Inhalten)	

       •           Braucht NewsReader oder RSS-fähigen Browser (Safari, FireFox, IE7)	

       •           RSS 0.9-2.0 siehe Ben Hammersley, Content Syndication with RSS, O'Reilly, 2003	

       •           Beispiel: Erzeugen von RSS 1.0	


       	




1.12.2006    	

              FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           44
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       RSS 1.0 Grundstruktur	


              rdf:RDF ...	

               channel rdf:about=channel_url	

                   Kanal: Feed-Spezifikation	

                 titleTitel/title	

                 descriptionZusammenfassung des Feeds/description	

                 linkURL der Feed-Website/link	

                 items	

                  rdf:Seq	

                    rdf:item resource=URI des Items 1/	

                    rdf:item resource=URI des Items 2/	

                  /rdf:Seq	

                 /items	

               /channel	

               item/	

                                     Inhalt der einzelnen Meldungen	

               item/	

              /rdf:RDF	


        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           45
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      Schritt 4+ : RSS optimiert	


              •  Stetiges Pollen durch NewsReader	

                    ⇒ RSS-Meldungen fressen Bandbreite	

                    ⇒ Server wird durch Abfragen belastet
                    	

              •  Lösung: Meldungen nur schicken, wenn sich etwas geändert hat	

                    NewsReader lesen HTTP-Header aus: 
                        	

Not-Modified Statuscode (304) und Modified-Since Meldung	

                    NewsReader senden If-Modified-Since Meldung im HTTP-Header	

                    	

                    Verwenden der fmxslt:set_status_code(), fmxslt:get_header() und
                    fmxslt:set_header() Erweiterungsfunktionen zur Optimierung	





        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           46
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                       Web 2.0	


              •  Tim O'Reilly, What is Web 2.0 : Design Patterns and Business Models for the
                 Next Generation of Software, 2005
                 http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html	


              •  Prinzipen	

                    Web als Plattform	

                    Kollektive Aktivität ermöglichen (RSS, Blogs, Wikis, User Tagging, User
                    Content)	

                    Datengetriebene Applikationen	

                    Ende des Software-Release-Zyklus - Co-Entwicklung durch Benutzer	

                    Einfache Programmiermodelle und Protokolle (z.B. AJAX, RSS, REST)	

                    Software für verschiedene Devices	

                    Rich Internet Applications : AJAX als Schlüsselkomponente	


              •  Kritische Sicht: http://en.wikipedia.org/wiki/Web_2	


        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           47
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                        Schritt 5: AJAX	


              •  AJAX = Asynchronous JavaScript And XML	

              •  Umfasst mehrere Technologien	

                    Präsentation über XHTML und CSS	

                    Dynamische Anzeige und Interaktion via Document Object Model (DOM)	

                    Datenaustausch und -manipulation über XML und XSLT	

                    Asynchrones Laden/Schreiben von Daten über XMLHttpRequest-Objekt 	

                    Verbindung der Komponenten über JavaScript 	

              •  Prinzipien von AJAX	

                    Browser enthält Anwendung, nicht Inhalt	

                    Server liefert Daten, nicht Inhalt	

                    Interaktion des Benutzers ist flüssig und ununterbrochen	

                  	





        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           48
Das
                                                                                                      verknüpfte Bild
                                                                                                      kann nicht
                                                                                                      angezeigt
                                                                                                      werden.
                                                                                                      Möglicherweis
                                                                                                      e wurde die
                                                                                                      Datei
                                                                                                      verschoben,




                      AJAX: XMLHttpRequest()-Objekt 	


              •  Von neueren Browsern unterstütztes API	

              •  Laden und Schreiben von XML-Daten über HTTP	

              •  Ursprünglich von Microsoft entwickelt, jetzt W3C Draft	

              •  Dokumentation	

                    http://en.wikipedia.org/wiki/XMLHttpRequest	

                    http://www.w3.org/TR/XMLHttpRequest/	

                    	

              •  Diskussion anhand Beispielcode 	

                    (Crane, Pascarello, Ajax in Action, Manning, 2006)	

              •  Verwendung der OpenSource JavaScript Bibliothek prototype.js	





        	

1.12.2006                FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           49
Das
                                                                                                     verknüpfte Bild
                                                                                                     kann nicht
                                                                                                     angezeigt
                                                                                                     werden.
                                                                                                     Möglicherweis
                                                                                                     e wurde die
                                                                                                     Datei
                                                                                                     verschoben,




                      AJAX: DOM	


              •  Document Object Model (DOM) erschliesst geladene Webseite für JavaScript	

              •  Hierarchischer Baum von Dokumentknoten	

              •  Zugang in JavaScript über Methoden der document- und node-Objekte 	

                    document.createElement()	

                    document.createTextNode()	

                    document.createAttribute()	

                    document. getElementById()	

                    appendChild()	

                    	

                    Siehe http://de.selfhtml.org/javascript/objekte/	


              •  Alternativ: Methode des armen Mannes	

                    Verwendung der innerHTML Eigenschaft	



        	

1.12.2006               FileMaker Konferenz 2006   Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft           50
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8

Weitere ähnliche Inhalte

Andere mochten auch

Ventana de word
Ventana de wordVentana de word
Ventana de word
evanellysalazar
 
Actividad integradora 2
Actividad integradora 2Actividad integradora 2
Actividad integradora 2
Ana Alamilla
 
Famtour Alpen Park 2008/2009
Famtour Alpen Park 2008/2009Famtour Alpen Park 2008/2009
Famtour Alpen Park 2008/2009
Agência DUE
 
Ogia Egiten
Ogia EgitenOgia Egiten
Ogia Egiten
geroahh
 
Diseño de situación de aprendizaje
Diseño de situación de aprendizajeDiseño de situación de aprendizaje
Diseño de situación de aprendizaje
historiador1415
 
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
Daxboeck_Mostviertel
 
Smart Metering Berlin
Smart Metering BerlinSmart Metering Berlin
Smart Metering Berlin
conosco PR-Agentur
 
Presentación 1
Presentación 1Presentación 1
Presentación 1
juanfes16
 
Ayudar a los aprendices debiles
Ayudar a los aprendices debilesAyudar a los aprendices debiles
Ayudar a los aprendices debiles
JHENNYREYES
 
Erklärung von Slideshare
Erklärung von SlideshareErklärung von Slideshare
Erklärung von Slideshare
comenius2
 
plista Präsentation Paid Content Distribution
plista Präsentation Paid Content Distributionplista Präsentation Paid Content Distribution
plista Präsentation Paid Content Distribution
Dominik Matyka
 
Diapositivas felix
Diapositivas felixDiapositivas felix
Diapositivas felix
Lorenzo Pinto
 
Tourismus und Nachhaltigkeit: Version 2.0
Tourismus und Nachhaltigkeit: Version 2.0Tourismus und Nachhaltigkeit: Version 2.0
Tourismus und Nachhaltigkeit: Version 2.0
Daxboeck_Mostviertel
 
Portafolio de presentación
Portafolio de presentaciónPortafolio de presentación
Portafolio de presentación
mayalasamaniego
 
Realismo mágico
Realismo mágicoRealismo mágico
Realismo mágico
Ricardo Castillo
 
La tecnología
La tecnologíaLa tecnología
La tecnología
pecositogil
 
FileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning PresentationFileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning Presentation
Martin Brändle
 
Presentación Corporativas AS General Supply Llc,
Presentación Corporativas AS General Supply Llc,Presentación Corporativas AS General Supply Llc,
Presentación Corporativas AS General Supply Llc,
JESUS ALVARADO
 

Andere mochten auch (20)

Team Collaboration
Team CollaborationTeam Collaboration
Team Collaboration
 
Ventana de word
Ventana de wordVentana de word
Ventana de word
 
Actividad integradora 2
Actividad integradora 2Actividad integradora 2
Actividad integradora 2
 
Famtour Alpen Park 2008/2009
Famtour Alpen Park 2008/2009Famtour Alpen Park 2008/2009
Famtour Alpen Park 2008/2009
 
Ogia Egiten
Ogia EgitenOgia Egiten
Ogia Egiten
 
Diseño de situación de aprendizaje
Diseño de situación de aprendizajeDiseño de situación de aprendizaje
Diseño de situación de aprendizaje
 
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
„Nachhaltigkeit als Träger touristischen Marketings – Verpflichtungen und Cha...
 
Smart Metering Berlin
Smart Metering BerlinSmart Metering Berlin
Smart Metering Berlin
 
Presentación 1
Presentación 1Presentación 1
Presentación 1
 
Ayudar a los aprendices debiles
Ayudar a los aprendices debilesAyudar a los aprendices debiles
Ayudar a los aprendices debiles
 
Erklärung von Slideshare
Erklärung von SlideshareErklärung von Slideshare
Erklärung von Slideshare
 
plista Präsentation Paid Content Distribution
plista Präsentation Paid Content Distributionplista Präsentation Paid Content Distribution
plista Präsentation Paid Content Distribution
 
Diapositivas felix
Diapositivas felixDiapositivas felix
Diapositivas felix
 
Tourismus und Nachhaltigkeit: Version 2.0
Tourismus und Nachhaltigkeit: Version 2.0Tourismus und Nachhaltigkeit: Version 2.0
Tourismus und Nachhaltigkeit: Version 2.0
 
Portafolio de presentación
Portafolio de presentaciónPortafolio de presentación
Portafolio de presentación
 
Realismo mágico
Realismo mágicoRealismo mágico
Realismo mágico
 
05 Kurssoftware
05 Kurssoftware05 Kurssoftware
05 Kurssoftware
 
La tecnología
La tecnologíaLa tecnología
La tecnología
 
FileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning PresentationFileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning Presentation
 
Presentación Corporativas AS General Supply Llc,
Presentación Corporativas AS General Supply Llc,Presentación Corporativas AS General Supply Llc,
Presentación Corporativas AS General Supply Llc,
 

Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8

  • 1. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft. Martin Brändle Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 1
  • 2. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Inhalt •  Custom Web Publishing •  Allgemeines zu XML •  Allgemeines zu XSLT •  FileMaker XML und XSLT-Abfragen •  Newsticker Demo •  RSS •  AJAX 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 2
  • 3. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Über mich •  Informationsspezialist Chemie (prom. Chemiker, NDS Information + Dokumentation) •  Informationszentrum Chemie Biologie Pharmazie, ETH Zürich Entwicklung: FileMaker: Datenbanken (Informationssystem CLICAPS) FileMaker Custom Web Publishing (CWP): CDML (prä-7), XML/XSLT (post-6) Websites Ausbildung: Studierende, Berufslehre I+D Fachspezialist Chemie: Erwerbung, Recherchen •  e-Mail: braendle at chem dot ethz dot ch 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 3
  • 4. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, CWP Projekte mit XML/XSLT •  CLICAPS Bibliotheksinformationssystem - http://www.clicaps.ethz.ch/ Unterstützte Suchen, Personalisierung, StarTree •  Website Informationszentrum : CWP-Komponenten - http://www.infochembio.ethz.ch/ Newsticker, > 2000 RSS-Feeds für elektronische Zeitschriften und News •  Literaturdatenbank für Seile und Seilbahnen - http://www.ropeways.ethz.ch/ AJAX-basierter Webshop •  Artikelkatalog Chemieschalter - http://www.infochembio.ethz.ch/zv/zv_artikel_suche.html Ca. 320‘000 Zugriffe / Woche (25% FileMaker CWP Zugriffe) 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 4
  • 5. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Über Sie •  XML Import/Export mit XSLT? •  Erfahrungen mit Web Design und Publishing (HTML, CSS, JavaScript)? •  Projekte mit CDML (Claris Dynamic Markup Language)? •  FileMaker Server Advanced (FMSA)? •  XSLT Site Assistant? •  CDML-nach-XSLT Konversionstool? •  XML/XSLT vs. XML/PHP? 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 5
  • 6. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, CWP : Erzeugen von XML mit FMSA DEMO 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 6
  • 7. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XML •  XML = eXtensible Markup Language •  Menge von Regeln zur Schaffung von Auszeichnungs- bzw. Markup-Sprachen •  Markup-Sprache = Menge von Symbolen (Tags) im Dokument Benennung (Auszeichnung) einzelner Teile Abgrenzung einzelner Teile (Start-Tag, Ende-Tag) Meldung TitelNur noch 9 Tage bis zur FileMaker Konferenz 2006!/Titel AbsatzDie zweitägige Konferenz bietet nichtwichtigvielfältige Informationen zu unterschiedlichstenThemen/nichtwichtig. Sie haben erstmals die Möglichkeit, unter einer Auswahl von 3 parallelen Sessions Ihr maßgeschneidertes Programm selbst zusammen zu stellen. WichtigMelden Sie sich gleich an und geben Sie uns Ihre Wünsche bekannt./Wichtig/ Absatz /Meldung 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 7
  • 8. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Elemente: Die Bausteine von XML •  Behälter für Text und Unterelemente TextDas ist im Element Text enthaltener Text/Text AussenHier TextInnenund noch mehr Text/Innen und wieder Text/ Aussen •  Syntax Name Attribut1=Wert1 Attribut2=Wert2Inhalt/Name •  Leeres Element Leer/Leer ⇒ Leer/ Leer Attribut1=Wert1 Attribut2=Wert2/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 8
  • 9. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Element-Erweiterungen: Attribute •  Syntax Attributname=Wert oder Attributname='Wert' Beispiel: resultset count=232 fetch-size=10 •  Ein Element darf jedes Attribut nur einmal enthalten Falsch: Gruppe Person=Max Person=Sonja Person=Jonas Richtig: Gruppe Personen=Max Sonja Jonas Richtig: Gruppe Person1=Max Person2=Sonja Person3=Jonas Richtig: GruppePersonMax/PersonPersonSonja/Person PersonJonas/Person/Gruppe 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 9
  • 10. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XML-Dokumente : Baumstruktur ?xml version=1.0 encoding=UTF-8? XML-Deklaration Fruechte !-- Kommentar: Hier folgen die einzelnen Fruechte -- Frucht id=1ApfelFarberot/Farbe/Frucht Frucht id=2ZitroneFarbegelb/Farbe/Frucht /Fruechte 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 10
  • 11. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Zeichen-Entities •  Vordefinierte Zeichen-Entities amp; : apos; : ' gt; : lt; : quot; : •  Zahlendefinierte Zeichen-Entities : Unterstützung von Unicode in XML Dezimal: #8364; : € Sedezimal: x20ac; : € 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 11
  • 12. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Namensräume •  Namensraum = Gruppe von Element- und Attributnamen •  Vermeidung von Namenskonflikten Beispiel: Bank (Geldinstitut, Sitzgelegenheit, Untiefe) •  Qualifizierte Elementnamen Geldinstitute:Bank und Sitzgelegenheiten:Bank •  Namensraum-Deklaration xmlns:Name=url Beispiel: xsl:stylesheet xmlns:fmrs=http://www.filemaker.com/xml/fmresultset ... 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 12
  • 13. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Wohlgeformte XML-Dokumente •  Jedes Element, das Text oder Elemente enthält, muss ein Start- und End-Tag haben •  Der Tag eines leeren Elements muss vor der Abschlussklammer einen Schrägstrich / haben •  Alle Attributwerte müssen in Anführungszeichen stehen •  Elemente dürfen sich nicht überlappen BeispielRichtiges BeispielFalsches fettBeispiel/fett für fettBeispiel/Beispiel für Verschachtelung./Beispiel Verschachtelung./fett •  Keine isolierte Markupzeichen: , ]] und •  Elementnamen dürfen nur mit Buchstaben und Unterstrichen _ beginnen •  Elementnamen dürfen nur Buchstaben, Zahlen, Bindestriche, Punkte, Unterstriche enthalten, und Doppelpunkte für Namensräume 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 13
  • 14. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Sinn und Zweck von XML •  W3C Standard •  Anwendungsspezifisch •  Eindeutige Strukturen •  Trennung von Inhalt und Präsentation ⇒ XSLT •  Fehlerüberprüfung möglich 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 14
  • 15. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, FMSA XML Abfragen •  Merkmal der URL http://host/fmi/xml/fmresultset.xml?.... •  Allgemeiner Aufbau der URL (kursiv = optional) http://host/fmi/xml/fmresultset.xml?-db=Datenbank-lay=Layout Feld1.op=bwFeld1=Wert1Feld2.op=bwFeld2=Wert2-sortfield.1=Feldname -sortorder.1=ascend-max=Anzahl_Datensätze-befehl •  Häufige Befehle -find, -findall, -new, -edit (-edit braucht -recid=Record_ID) Für alle Parameter und Befehle siehe FMSA CWP Handbuch, Anhang A! 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 15
  • 16. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, fmresultset XML grammar (1) ?xml version=1.0 encoding=UTF-8? fmresultset xmlns=http://www.filemaker.com/xml/fmresultset version=1.0 error code=0/ Fehlercode Prolog.......................................... product build=06/14/2006 name=FileMaker Web Publishing Engine version=8.0.4.128/ datasource database=Mitteilungen_fmi date-format=MM/dd/yyyy layout=WWW_Meldungen table=Meldungen time-format=HH:mm:ss timestamp-format=MM/dd/yyyy HH:mm:ss total-count=232/ metadata Layoutinfo field-definition auto-enter=no global=no max-repeat=1 name=Aktiv not- empty=no result=text type=calculation/ ... relatedset-definition table=Meldungen_CT_Keywords field-definition auto-enter=no global=no max-repeat=1 name=Keywords::Keyword_de not-empty=no result=text type=normal/ /related-definition /metadata 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 16
  • 17. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, fmresultset XML grammar (2) resultset count=3 fetch-size=2 Daten...................................................... record mod-id=13 record-id=233 Datensätze (0 ... mehrere) field name=Aktiv Feld (1 ... mehrere) dataja/data Felddaten (1 ... mehrere Wiederholungen) /field ... relatedset count=4 table=Meldungen_CT_Keywords Portal (0 ... mehrere) record mod-id=0 record-id=558 Portaldatensätze (0 ... Mehrere) field name=Keywords::Keyword_de dataFileMaker/data /field ... /record ... /relatedset ... /record ... /resultset /fmresultset 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 17
  • 18. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT •  XSLT = eXtensible Stylesheet Language : Transformations •  W3C Standard •  Sprache, um die Struktur von XML-Dokumenten zu transformieren d.h. XSLT braucht immer XML (fast immer ...) •  Resultat der Transformation: XML, HTML (als XHTML), Text, irgendetwas (BLOB) 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 18
  • 19. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, FMSA CWP mit XML/XSLT 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 19
  • 20. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, FMSA XSLT Abfragen •  Merkmal der URL http://host/fmi/xsl/stylesheetname.xsl?-grammar=fmresultset.... •  Allgemeiner Aufbau der URL (kursiv = optional) http://host/fmi/xsl/stylesheetname.xsl?-grammar=fmresultset-db=Datenbank -lay=LayoutFeld1.op=bwFeld1=Wert1Feld2.op=bwFeld2=Wert2 -sortfield.1=Feldname-sortorder.1=ascend-max=Anzahl_Datensätze-befehl •  Häufige Befehle -find, -findall, -new, -edit (-edit braucht -recid=Record_ID), -process Für alle Parameter und Befehle siehe FMSA CWP Handbuch, Anhang A! 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 20
  • 21. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT : Eigenschaften •  In XML definiert xsl:for-each select=/fmrs:fmresultset/fmrs:resultset/fmrs:record” xsl:variable name=record select=current()/ xsl:value-of select=$record/fmrs:field[@name = 'Feld1' ]/fmrs:data[1]/ /xsl:for-each •  Deklarativ anstelle prozedural (nicht wie C++, Java, JavaScript, PHP, ...) Transformation wird beschrieben. XSLT-Prozessor entscheidet, wie am effizientesten transformiert wird. •  Regelbasiert Templat-basierte Regeln die für Muster, die im Input vorkommen, greifen und dann den Output generieren. Reihenfolge der Deklaration egal. 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 21
  • 22. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Allgemeine Struktur eines Stylesheets ?xml version=1.0 encoding=UTF-8? ?xml-processing-instruction (optional)? xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform Namensraumdeklarationen ... !-- Kommentar -- Elemente ......... Top-Level- Kopfbereich !-- Include-Dateien (optional mit xsl:include) -- !-- Variablen-Deklarationen (optional mit xsl:variable) -- xsl:output method=html encoding=UTF-8/ xsl:template match=/fmrs:fmresultset !-- HTML Code erzeugen -- !-- HTML Code erzeugen -- /xsl:template !-- evtl. Untertemplate (aka Unterroutinen) -- /xsl:stylesheet 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 22
  • 23. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT versus PHP XSLT erzeugt alles PHP speist ein html ?xml version=1.0 encoding=UTF-8? ?php xsl:stylesheet version=1.0... xsl:output method=html encoding=UTF-8/ require_once('FileMaker.php'); $fm = new FileMaker(‘meine_db'); xsl:template match=/fmrs:fmresultset $findCommand = $fm-newFindAllCommand('Form xsl:variable name=record select=“$record/ fmrs:fmresultset/fmrs:resultset/ View'); fmrs:record[1]“/ // je nachdem 20-40 Zeilen für Query! html $result = $findCommand-execute(); head..../head $records = $result-getRecords(); body $record = $records[1]; pGuten Morgen, /p ? p head..../head xsl:value-of select=$record/fmrs:field[@name = body 'Vorname']/fmrs:data[1]/ pGuten Morgen, /p /p p /body ?php echo $record-getField(‘Vorname'); ? /html /p /xsl:template /body /xsl:stylesheet /html 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 23
  • 24. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT - Wichtige Elemente •  xsl:value-of select=XPath-Ausdruck, Ausdruck oder Datentyp/ für Ausgabe •  xsl:template match=XPath-Ausdruck für Templatregeln •  xsl:for-each select=XPath-Ausdruck für Loops •  xsl:choose für Verzweigungen •  xsl:attribute name=attributname zum Setzen von Elementattributen •  xsl:copy-of select=XPath-Ausdruck/ zum Kopieren ganzer XML-Fragmente 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 24
  • 25. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Auswahl von XML-Elementen: XPath •  XSLT und XPath bedingen sich gegenseitig! XPath = W3C Standard •  XPath-Ausdrücke zum Auswählen von Knoten (Elemente, Attribute) eines XML-Baums •  XPath verwendet Pfade und Achsen. Wir verwenden abgekürzte Notationen . relativ im Kontext: Der aktuelle Knoten record relativ im Kontext: alle record-Kinderknoten /fmrs:fmresultset/fmrs:resultset absolut: Alle resultset-Kinder des Kindelements fmresultset des Wurzelelements fmrs:resultset/fmrs:record relativ im Kontext: Alle record-Kinder von resultset fmrs:error/@code relativ im Kontext: Das Attribut code des Elements error fmrs:record[2] relativ im Kontext: Das zweite record-Kindelement fmrs:field[@name = 'Vorname'] relativ im Kontext: Das Element field mit Attribut name, dessen Attributwert Vorname ist (Test-Ausdruck) •  XPath-Ausdrücke auch für Berechnungen und Vergleiche xsl:value-of select=($x + $y) div 10/ xsl:value-of select=$x != 'Vergleichstring'/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 25
  • 26. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, „Kontext“ in XSLT •  Statischer Kontext Hängt von Position des Ausdrucks im Stylesheet ab Bsp. Globale Variablen (Kopf-Bereich) Bsp. Lokale Variable (Kind von xsl:template oder Unterelement) •  Dynamischer Kontext Gegenwärtiger Wert der Variable Gegenwärtige Position im XML-Baum der Quelle, umfasst: Knoten (xsl:for-each, xsl:apply-templates) Kontext-Knoten (normalerweise gleich wie gegenwärtiger Knoten) Kontext-Position (abfragbar über position(), bestimmt durch Durchlauf in xsl:for-each ) Kontext-Grösse (Anzahl der Knoten in der gegenwärtigen Knotenliste) 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 26
  • 27. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Datentypen in XSLT •  Dynamische Typen, assoziiert mit Werten anstelle von Variablen •  Boolean: true(), false() •  Zahlen: Bsp. -10, 0, 9999999999, 1 div 0, NaN •  Strings: Bsp. 'Text', 'Abkamp;uuml;rzung' •  Node-sets: Satz von Knoten eines XML-Baums oder Kombination 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 27
  • 28. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Beispiel: Newsticker •  Zeigt neueste Meldungen an •  Entfernt nicht mehr aktuelle Meldungen nach einem Verfalldatum •  Anreisser (mehr ...) und Detailanzeige •  Zweisprachig •  Suchfunktion •  RSS NewsFeed •  AJAX-basierte Auswahl nach Schlagworten •  E-mailing einzelner News Download: http://www.infochembio.ethz.ch/download/newsticker.zip 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 28
  • 29. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Newsticker DEMO 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 29
  • 30. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Newsticker: Entwicklungszyklen •  Schritt 0 : Erstellen des Website-Templats •  Schritt 1 : Aktivieren der Datenbank, einfache Abfrage, Anzeige der aktuellen News •  Schritt 1+ : Refactoring - Auftrennen in Module •  Schritt 2 : Detailanzeige - cmdl2xsl_utilities-Bibliothek •  Schritt 2+ : Nachladen von XML - document()-Funktion •  Schritt 3 : Einführen der Suche - Vom FM XML Query zum Formular •  Schritt 3+ : Smarte Suche : Logs, Stoppwortfilterung, Wiederverwendung •  Schritt 4 : RSS Feed •  Schritt 4+ : RSS optimiert •  Schritt 5 : AJAX für dynamische Themenwahl •  Schritt 6 : E-mails Download: http://www.infochembio.ethz.ch/download/newsticker.zip 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 30
  • 31. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 0 : Website-Templat •  Erzeugen in einer Webseiten-Erstellungssoftware, bspw. Macromedia Dreamweaver •  Erzeugte Seiten müssen im XHTML-Format sein Dreamweaver: Menu Datei Konvertieren XHTML 1.0 Transitional 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 31
  • 32. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 1 : Einfache Abfragen •  XML und XSLT CWP einschalten •  Datenbank CWP fähig machen Erweiterte Privilegien einstellen: fmxslt, fmxml WICHTIG fmxml immer mit passwort-geschütztem Account, sonst Sicherheitsrisiko! •  Layouts für CWP erstellen WICHTIG Nur benötigte Felder für Suchen und Resultate aufnehmen •  XHTML in Stylesheet-Vorlage einfüllen 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 32
  • 33. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Was kommt wohin? •  XSLT-Stylesheets Relativ zum Verzeichnis, in welchem FileMaker Server installiert ist: Web Publishing/xslt-template-files/ oder Unterverzeichnisse desselben •  XML-Dateien, die nachgeladen werden Web Publishing/xslt-template-files/ oder Unterverzeichnisse desselben •  Alle statischen Dateien (HTML, CSS, JavaScript, GIF, JPG, PNG, ...) ins Verzeichnis der Webdateien , das im Webserver bezeichnet wurde, z.B. /Library/Webserver/Documents (OS X) oder ~/Sites (OS X, Personal Web Sharing) oder frei wählbares Verzeichnis (OS X Server, Windows Server) 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 33
  • 34. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT: Variablen Variable deklarieren (Variante 1, effizient) xsl:variable name=meinevar select=/ xsl:variable name=meinstring select='Text in einfachen Hochkommata'/! Variable deklarieren (Variante 2, mächtig, aber ineffizient) xsl:variable name=meinevar !-- irgendein XSLT-Konstrukt -- /xsl:variable Variable verwenden mit $name: xsl:value-of select=$meinevar/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 34
  • 35. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT: Loops mit xsl:for-each xsl:for-each select=/fmrs:fmresultset/fmrs:resultset/fmrs:record” !-- Aktuelles Element und alle Unterelemente mit current() wählen -- xsl:variable name=record select=current()/ !-- Position im Kontext mit position() wählen -- xsl:variable name=nummer select=position()/ !-- Nummer - Feld1 - Feld2 - Zeilenumbruch ausgeben -- xsl:value-of select=$nummer/ xsl:text - /xsl:text xsl:value-of select=$record/fmrs:field[@name = 'Feld1' ]/fmrs:data[1]/ xsl:text - /xsl:text xsl:value-of select=$record/fmrs:field[@name = 'Feld2' ]/fmrs:data[1]/ br/ /xsl:for-each 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 35
  • 36. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Wichtige Xpath- und XSLT-Funktionen •  String-Manipulation concat(), contains(), normalize-space(), starts-with(), string-length(), substring(), substring-before(), substring-after() •  Aggregation count(), sum() •  Boole‘sche Funktionen false(),true(),not() •  Information über den Kontext current(), last(), position() •  XML-Dokument laden document() Keine Angabe eines Namensraums nötig! 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 36
  • 37. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 1+: Refactoring •  Modularisierung: Integration von Seitenteilen in separate Stylesheets Kopf mit Breadcrumb : header_de.xsl, header_en.xsl Resultate : results_de.xsl, results_en.xsl Fuss : footer_de.xsl, footer_en.xsl •  Einbinden der Stylesheets in Hauptseite mit xsl:include href=url •  Aufruf der Teile mit xsl:call-template name=name 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 37
  • 38. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT: Subroutinen •  Subroutinen über benannte Template implementieren xsl:template name=meine_subroutine xsl:param name=uebergabe1/ xsl:param name=uebergabe2/ Übergebene Parameter !-- hier etwas tun -- /xsl:template •  Aufruf der Subroutine !-- hier etwas tun -- xsl:call-template name=meine_subroutine xsl:with-param name=uebergabe1 select=$var1/ Übergabeparameter xsl:with-param name=uebergabe2 select=XPath-Ausdruck2/ /xsl:call template !-- hier etwas tun -- 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 38
  • 39. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, FileMaker XSLT Erweiterungsfunktionen •  Namensraum muss in xsl:stylesheet xmlns:fmxslt=xalan://com.fmi.xslt.ExtensionFunctions“ spezifiziert werden •  Angabe des fmxslt: Namensraumpräfixes •  Beispiele Stringmanipulation: fmxslt:url_encode(), fmxslt:url_decode() u.a. Datumsfunktionen: fmxslt:convert_datetime() u.a. e-Mail: fmxslt:send_email() Siehe FMSA CWP Handbuch, S. 65ff ; XSLT Reference.fp7 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 39
  • 40. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 2 : Aufruf der Detailseite •  Verwendung des Templats get-link in der Bibliothek cdml2xsl_utilities.xsl •  Falls Bibliothek nicht vorhanden Dummy-CDML generieren (wie: siehe lib/results_de.xsl) Mit CDML-XSLT Konversionstool konvertieren, erzeugt cdml2xsl_utilities.xsl •  Siehe: FMSA CWP Handbuch, Anhang C, insbesonders S. 139ff. 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 40
  • 41. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 2+: Nachladen von Dokumenten •  Verwendung der XSLT-Funktion document() und Abspeichern in einer Variable •  xsl:variable name=xmlbaum select=document('url')/ •  Verwendung von $xmlbaum an beliebiger Stelle im Stylesheet •  document() akzeptiert nur wohlgeformtes XML 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 41
  • 42. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 3: Suche •  XSLT-Abfrage in Formular umwandeln Parameter=Wert Paare ⇒ input type=... name=Parameter value=Wert/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 42
  • 43. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 3+ : Smarte Suche •  Stoppwort-Filterung •  Automatisch erzeugte Logdatei •  Einsatz von fmxslt:set_status_code() und fmxslt:set_header() zur Beeinflussung des HTTP-Headers (FMSA CWP Handbuch, S. 76) •  Weitere Möglichkeiten Abfrage umformulieren (CLICAPS, Seilbahnliteratur) Abfragen in mehreren Tabellen gleichzeitig (CLICAPS) Abfrageanalyse (CLICAPS) Unterstützte Abfragen (Meinen Sie? in CLICAPS) History-Funktion Alerts 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 43
  • 44. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 4 : RSS •  RSS = Familie von Nachrichtenformaten in XML, Transport über HTTP RSS 0.9, 1.0 RDF Site Summary RSS 0.91, 1.0 Rich Site Summary RSS 2.0 Really Simple Syndication ATOM 1.0 Standard der IETF (versucht Probleme mit eingebettetem HTML zu lösen) •  Content-Syndication (Mehrfach-Verwendung von Inhalten) •  Braucht NewsReader oder RSS-fähigen Browser (Safari, FireFox, IE7) •  RSS 0.9-2.0 siehe Ben Hammersley, Content Syndication with RSS, O'Reilly, 2003 •  Beispiel: Erzeugen von RSS 1.0 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 44
  • 45. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, RSS 1.0 Grundstruktur rdf:RDF ... channel rdf:about=channel_url Kanal: Feed-Spezifikation titleTitel/title descriptionZusammenfassung des Feeds/description linkURL der Feed-Website/link items rdf:Seq rdf:item resource=URI des Items 1/ rdf:item resource=URI des Items 2/ /rdf:Seq /items /channel item/ Inhalt der einzelnen Meldungen item/ /rdf:RDF 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 45
  • 46. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 4+ : RSS optimiert •  Stetiges Pollen durch NewsReader ⇒ RSS-Meldungen fressen Bandbreite ⇒ Server wird durch Abfragen belastet •  Lösung: Meldungen nur schicken, wenn sich etwas geändert hat NewsReader lesen HTTP-Header aus: Not-Modified Statuscode (304) und Modified-Since Meldung NewsReader senden If-Modified-Since Meldung im HTTP-Header Verwenden der fmxslt:set_status_code(), fmxslt:get_header() und fmxslt:set_header() Erweiterungsfunktionen zur Optimierung 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 46
  • 47. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Web 2.0 •  Tim O'Reilly, What is Web 2.0 : Design Patterns and Business Models for the Next Generation of Software, 2005 http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html •  Prinzipen Web als Plattform Kollektive Aktivität ermöglichen (RSS, Blogs, Wikis, User Tagging, User Content) Datengetriebene Applikationen Ende des Software-Release-Zyklus - Co-Entwicklung durch Benutzer Einfache Programmiermodelle und Protokolle (z.B. AJAX, RSS, REST) Software für verschiedene Devices Rich Internet Applications : AJAX als Schlüsselkomponente •  Kritische Sicht: http://en.wikipedia.org/wiki/Web_2 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 47
  • 48. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 5: AJAX •  AJAX = Asynchronous JavaScript And XML •  Umfasst mehrere Technologien Präsentation über XHTML und CSS Dynamische Anzeige und Interaktion via Document Object Model (DOM) Datenaustausch und -manipulation über XML und XSLT Asynchrones Laden/Schreiben von Daten über XMLHttpRequest-Objekt Verbindung der Komponenten über JavaScript •  Prinzipien von AJAX Browser enthält Anwendung, nicht Inhalt Server liefert Daten, nicht Inhalt Interaktion des Benutzers ist flüssig und ununterbrochen 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 48
  • 49. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, AJAX: XMLHttpRequest()-Objekt •  Von neueren Browsern unterstütztes API •  Laden und Schreiben von XML-Daten über HTTP •  Ursprünglich von Microsoft entwickelt, jetzt W3C Draft •  Dokumentation http://en.wikipedia.org/wiki/XMLHttpRequest http://www.w3.org/TR/XMLHttpRequest/ •  Diskussion anhand Beispielcode (Crane, Pascarello, Ajax in Action, Manning, 2006) •  Verwendung der OpenSource JavaScript Bibliothek prototype.js 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 49
  • 50. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, AJAX: DOM •  Document Object Model (DOM) erschliesst geladene Webseite für JavaScript •  Hierarchischer Baum von Dokumentknoten •  Zugang in JavaScript über Methoden der document- und node-Objekte document.createElement() document.createTextNode() document.createAttribute() document. getElementById() appendChild() Siehe http://de.selfhtml.org/javascript/objekte/ •  Alternativ: Methode des armen Mannes Verwendung der innerHTML Eigenschaft 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 50