Your SlideShare is downloading. ×
Grundlagen von XML, XSLT und Web 2.0 in FileMaker Server Advanced 8
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

2,402
views

Published on

Dies ist ein alter Vortrag, gehalten an der FileMaker Konferenz 2006 Deutschland. Er könnte für Anfragende nützlich sein, die sich für RSS mit FileMaker interessieren. …

Dies ist ein alter Vortrag, gehalten an der FileMaker Konferenz 2006 Deutschland. Er könnte für Anfragende nützlich sein, die sich für RSS mit FileMaker interessieren.
This is an old presentation given at FileMaker Conference 2006 in Germany. It could be useful for some requesters that are interested in RSS publishing with FileMaker.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,402
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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, OReilly, 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 OReilly, 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
  • 51. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Schritt 6: E-mails •  Einsatz von AJAX und fmxslt:send_email() 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 51
  • 52. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Anhang Anhang 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 52
  • 53. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Werkzeuge: FMSA •  FileMaker Site Assistant •  FileMaker CDML Converter •  Query String Reference.fp7 •  XSLT Reference.fp7 •  FMSA8_Custom_Web-Handbuch.pdf 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 53
  • 54. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Werkzeuge: Editoren •  Adobe Macromedia Dreamweaver 8 (WYSIWYG, unterstützt XSLT) •  Altova XMLSpy (MS Windows) •  oXygen/ XML Editor 2.0 (MS Windows, Mac OS X, Linux, Java Web, Eclipse) •  cladonia XML Exchanger 3.2 Lite (Java-basiert, gratis für nicht-kommerzielle Nutzung) •  Einfache Texteditoren wie Barebones TextWrangler, Notepad, vi, ... 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 54
  • 55. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Werkzeuge: XSLT-Prozessoren •  Saxon : http://saxon.sourceforge.net/ •  Apache Xalan : http://xalan.apache.org/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 55
  • 56. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Literatur •  Michael Kay, XSLT - Programmer‘s Reference, 2. Auflage, Wiley, 2003 •  Beverly Voth, FileMaker Pro 6 : Developers Guide to XML/XSL, Wordware, 2003 •  Sal Mangano, XSLT Cookbook, OReilly, 2003 •  Erik T. Ray, Einführung in XML, OReilly, 2001 •  Ben Hammersley, Content Syndication with RSS, OReilly, 2003 •  Dave Crane, Eric Pascarello, AJAX in Action, Manning, 2005 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 56
  • 57. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, Websites •  XSLT FAQ - http://www.dpawson.co.uk/xsl/index.html •  FMForums, XML/XSLT Subforum - http://www.fmforums.com/ •  FileMaker Forum - http://www.filemaker.de/forum/ •  W3C XSLT 1.0 Recommendation - http://www.w3.org/TR/xslt •  W3C XPath 1.0 Recommendation - http://www.w3.org/TR/xpath •  W3C DOM - http://www.w3.org/DOM/ •  Prototype Javascript Framework (mit AJAX) - http://prototype.conio.net/ •  Rico JavaScript Library - http://openrico.org/ •  RSS Feed Validator - http://feedvalidator.org/ •  SELFHTML (HTML und JavaScript zum Selberlernen) - http://de.selfhtml.org/ 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 57
  • 58. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT : Besonderheiten (1) •  XSLT erlaubt keine Seiteneffekte. Seiteneffekt = Funktion oder Prozedur ändert eigene Umgebung ⇒  Richtige Anzahl und Reihenfolge der Aufrufe Definitionen wie xsl:choose xsl:when test=$x = true()xsl:variable name=str select=abc//xsl:when xsl:otherwisexsl:variable name=str select=def//xsl:otherwise /xsl:choose gehen nicht! Lösung: Umdrehen xsl:variable name=str xsl:choose xsl:when test=$x = true()xsl:value-of select=abc//xsl:when xsl:otherwisexsl:value-of select=def//xsl:otherwise /xsl:choose /xsl:variable 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 58
  • 59. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT : Besonderheiten (2) •  ... keine Seiteneffekte Zuweisungen wie xsl:variable name=x select=$x + 1/ (analog zu x = x + 1) gehen nicht! Lösung: Rekursive Programmierung, Wechsel des Kontexts •  XSLT ist erweiterbar JavaScript, Java Siehe FMSA CWP Handbuch, S. 86 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 59
  • 60. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, XSLT: Verzweigungen mit xsl:choose xsl:choose xsl:when test=/fmrs:fmresultset/fmrs:error/@code = 0 !-- Zeige Resultate an -- /xsl:when xsl:when test=/fmrs:fmresultset/fmrs:error/@code = 102 !-- Zeige Text für Fehler 102 an -- /xsl:when xsl:otherwise !-- Bringe alternative Fehlermeldung -- /xsl:otherwise /xsl:choose 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 60
  • 61. Das verknüpfte Bild kann nicht angezeigt werden. Möglicherweis e wurde die Datei verschoben, FMSA XML-Antworten debuggen •  Einfügen der Zeile textarea cols=80 rows=20xsl:copy-of select=.//textarea 1.12.2006 FileMaker Konferenz 2006 Mehr Möglichkeiten. Mehr Chancen. Mehr Geschäft 61

×