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.
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