Über diesen Blog

Diese Webseiten waren ursprünglich als chronologisch geordneter Blog konzipiert. Im Lauf der Zeit ist viel Inhalt hinzu gekommen, so daß eine andere Aufteilung notwendig wurde. Die folgende Liste zeigt die Reihenfolge der Updates.

Vielen Dank an Sie alle für die zahlreichen Tipps und Anregungen!

1 2018-10-31 XPath-Funktionen: XPath 3.0 und XPath 3.1 bieten mehrere Hundert verschiedene Standard-Funktionen. Ein Teil davon steht bereits seit XPath 1.0 bzw. XPath 2.0 zur Verfügung.
2 2018-10-16 xsl:apply-templates bei Referenzierungen: Sinnvoll kann der Einsatz von xsl:apply-templates und xsl:template match bei wiederholten Referenzierungen im XML-Input Dokument sein. ➪Das XSLT-Mapping ➪Das XQuery-Mapping ➪XSL-FO Darstellung in PDF ➪XQuery: Darstellung in PDF
3 2018-10-15 xsl:apply-templates, xsl:next-match: Ein alternativer Ansatz zur Arbeit mit xsl:for-each ist xsl:apply-templates. ➪Arbeiten mit xsl:next-match
4 2018-10-15 xsl:apply-templates bei mixed content: Da die Struktur der mixed-content-Dokumente oft nicht so klar und übersichtlich erkennbar ist, wie das bei datensatzbasierten Dokumenten erwartet werden kann, ist hier eine hohe Flexibilität bei der Behandlung erforderlich.
5 2018-10-04 XPath: tokenize: Die XPath-Funktion tokenize konvertiert einen String in eine Sequenz. ➪Flags ➪Type-casting ➪tokenize vs. xs:token
6 2018-10-04 XPath: count(): Die count-Funktion zählt die Anzahl der Items in der Sequenz. Sie steht auch unter XPath 1.0 zur Verfügung.
7 2018-10-04 XPath: generate-id(): Die generate-id()-Funktion generiert eine Zeichenkette, die einen Node (zum Beispiel Element, Attribut, Kommentar) eindeutig benennt. Ist der Node leer, so ist auch die Zeichenkette leer. ➪generate-id() in XSLT 2.0 / Xpath 2.0
8 2018-10-04 XPath: innermost, outermost: innermost und outermost sind spezielle Funktionen zur gezielten Auswahl von "innersten" bzw. "äußersten" Nodes. ➪innermost ➪outermost
9 2018-09-22 Zeit ist Geld: Die XML-Schema-Datentypen xs:date, xs:time und xs:dateTime haben einen klar definierten Aufbau. Die aktuelle Systemzeit ist ermittelbar durch current-dateTime(), current-date() bzw. current-time(). Wichtig sind noch Spezialfunktionen zur Formatierung. Diese können prozessorbedingt (auch bei unterschiedlichen Versionen desselben Anbieters) beträchtlich abweichen, sodass ein eingehendes Testen der Ergebnisse notwendig erscheint. ➪xs:date ➪xs:time ➪xs:dateTime ➪format-dateTime ➪implicit-timezone() ➪adjust-date-to-timezone ➪Duration: Rechnen mit der Zeit
10 2018-09-22 Toll, ein Kalender: Um den Kalender für die Restlaufzeit bis zu einem Enddatum zu erstellen, können Sie mit rekursiven Aufrufen arbeiten.
11 2018-09-22 Zeitkalkulation in Java:
12 2018-09-15 XPath-Achsen: XPath-Pfade und -Achsen definieren den Verlauf, Umfang und die Richtung, in dem die umgebenden Nodes abgearbeitet werden.
13 2018-09-15 ancestor::*: ancestor::* gibt die Liste aller vorhergehender Nodes aus, aber ohne den aktuellen Mensch-Node.
14 2018-09-15 ancestor-or-self::*: ancestor-or-self::* gibt Ihnen eine Nodeliste aller vorhergehender Knoten bis zum Root-Element, und zwar in der Reihenfolge, dass der Rootnode zuerst ausgegeben wird.
15 2018-09-15 attribute::*: Mit attribute::* erhalten Sie alle Attribute eines adressierten Nodes. ➪Maximalwerte berechnen
16 2018-09-15 child::*: Mit child::* erhalten Sie die Childnodes des aktuellen Nodes.
17 2018-09-15 descendant::*: Mit descendant::* erhalten Sie sämtliche Nachkommen des akuellen Knotens.
18 2018-09-15 descendant-or-self::*: Mit descendant-or-self::* erhalten Sie den aktuellen Node und dessen sämtliche Nachkommen. ➪XML-Schema Analyse mit descendant-or-self::*
19 2018-09-15 Verschachtelungstiefe: Um eine maximale Verschachtelungstiefe ermitteln zu können, ist eine kombinierte Anwendung von descendant-or-self und ancestor-or-self sinnvoll. ➪Ermittlung der Verschachtelungstiefe in XQuery
20 2018-09-15 following::*: Mit following::* erhalten Sie Folge-Nodes des aktuellen Knotens.
21 2018-09-15 following-sibling::*: Mit following-sibling::* erhalten Sie Folge-Nodes des aktuellen Knotens.
22 2018-09-15 namespace::*: Sind Namespaces im Spiel, so erhalten Sie eine Liste aller Namepaces, die im betreffenden Node benannt worden sind, sodass sie für den aktuellen Node und dessen Childnodes gelten können. Das umfasst aber nicht jene Childnodes, deren Namespaces lokal definiert wurde.
23 2018-09-15 parent::*: Mit parent::* erhalten Sie den Parentnode des aktuellen Nodes.
24 2018-09-15 preceding::*: Mit preceding::* erhalten Sie Vorgänger-Nodes des aktuellen Knotens. Analog dem following::* erhalten Sie bei preceding::* sämtliche Nodes und deren Childnodes, die dem adressierten Node /Orte/Ort[2]/Mensch[2] vorausgehen.
25 2018-09-15 preceding-sibling::*: Mit preceding-sibling::* erhalten Sie Vorgänger-Nodes des aktuellen Knotens. ➪Countdown
26 2018-09-15 self::*: self::* spricht den jeweiligen Knoten an.
27 2018-09-15 Automatische Generierung des XPath-Statements: Der gezielte Einsatz von ancestor-or-self::*, preceding-sibling::*, wahlweise auch in Kombination mit descendant-or-self::* erlaubt, den XPath jedes Elements in einem XML-Dokument zu ermitteln. Das ist hilfreich für die Entwicklung und das professionelle Testen von XSL-Stylesheets sowie XQuery.
28 2018-09-15 XPath: concat: Die XPath-Funktion concat verkettet mehrere Informationen zu einem String. ➪Verknüpfungsoperatoren in XSL 3.0 / XPath 3.0
29 2018-09-15 XPath: collection: Die XPath-2.0-Funktion collection ermöglicht, mehrere XML-Dateien als Input anzusprechen und deren jeweiligen Dateinamen über base-uri zu ermitteln. In XPath 3.0 steht die uri-collection bereit, die erlaubt, eine Collection auch von Nicht-XML-Dateien (z.B. CSV) anzusprechen und auszuwerten. ➪XSL-Analyse mit Collections ➪Mehrfach-Implementierungen ➪uri-collection: Auflistung von Nicht-XML-Dateien
30 2018-09-15 XPath: empty, XSLT, XQuery: Die XPath-Funktion empty überprüft, ob eine Sequenz leer ist, und gibt einen Booleanwert zurück. ➪Die empty-Lösung in XQuery
31 2018-09-15 XPath: for-each: Die XPath-Funktion for-each fordert zwei Parameter ein: a) ein oder mehrere Items als Sequenz, b) eine Funktion, die für jedes Item dieser Sequenz aufgerufen wird. ➪Die Lösung mit XQuery
32 2018-09-15 Anonyme Funktionen: In XSLT 3.0 gibt es die Möglichkeit, in einer Variablen einen anonymen Funktionsaufruf zu implementieren.
33 2018-09-15 XPath: unparsed-text: Eine häufige Aufgabe ist die Konvertierung CSV nach XML. In XSLT 2.0 ist auch die Konvertierung von CSV nach XML problemlos möglich. ➪Konvertierung von CSV nach XML
34 2018-09-15 XPath: unparsed-text-lines: Eine häufige Aufgabe ist die Konvertierung CSV nach XML. In XSLT 3.0 gestaltet sie sich noch einfacher als in XSLT 2.0. ➪unparsed-text-lines: CSV in XML konvertieren
35 2018-09-15 available-environment-variables: available-environment-variables gibt eine Liste der Umgebungsvariablen zurück; den jeweiligen Einzelwert erfahren über die Funktion environment-variable. ➪Die Lösung in XQuery
36 2018-09-15 XSLT 3.0, XPath 3.0: XSLT 3.0 und XPath 3.0 stehen gegenüber XSLT 2.0 weitere sehr leistungsfähige Features zur Verfügung.
37 2018-09-15 xsl:assert: xsl:assert ist in der Lage, den Programmablauf zu kontrollieren.
38 2018-09-15 xsl:evaluate: xsl:evaluate bietet die Möglichkeit, zur Laufzeit generierte XPath-Statements auszuführen. ➪Generische Template-Aufrufe in XSL 1.0
39 2018-09-15 xsl:iterate, xsl:break: Die xsl:iterate-Iteration läuft eine Reihe von Items einer Sequenz durch, sie kann dabei z.B. durch xsl:break abgebrochen werden.
40 2018-09-15 xsl:try/xsl:catch: Wie in diversen Programmier-Sprachen üblich, ist nun auch in XSLT 3.0 mit xsl:try/xsl:catch ein leistungsfähiges Exception-Handling verfügbar, mit dem diverse Fehler aufgefangen werden können.
41 2018-09-15 xsl:variable: Im XSL übernimmt eine Variable einen temporären Inhalt, der in der Regel zur Laufzeit gesetzt und an passender anderer Stelle wieder ausgelesen wird. ➪Rechnen mit xsl:variable ➪xsl:variable als komplexe Nodelist ➪Inkrementelle Anpassung der xsl:variable ➪Attribut-Atomisierung mit data ➪Externe XML-Dokumente als xsl:variable ➪xsl:sequence ➪Anonyme Funktionen
42 2018-07-07 JSON: JSON, die JavaScript-Object-Notation, ist ein textbasiertes Datenformat, das XML an Flexibilität am nächsten kommt. Zahlreiche REST-Webservices bieten neben XML auch JSON zur freien Auswahl an (auch CSV oder Text). Daher ist die Konvertierung von XML nach JSON eine häufige Aufgabe. ➪XML oder JSON? ➪JSON-Auswertung mit JavaScript ➪JSON-Auswertung mit JavaScript in XSL ➪JSON-Auswertung mit C#.NET ➪Der JavaScriptSerializer
43 2018-06-28 XPath: string-join: Bei der XPath-Funktion string-join kann eine Sequenz als Parameter übergeben werden, die dann mithilfe eines Trennzeichens in eine Zeichenkette konvertiert wird. ➪string-join-basierter Vergleich unterschiedlicher XML-Strukturen ➪Lösung mit XQuery ➪string-join vs. xsl:value-of separator ➪Verknüpfungsoperatoren in XSL 3.0 / XPath 3.0
44 2018-06-25 xsl:element: xsl:element erlaubt die flexible Generierung von XML-Elementen im Zieldokument. Der Vorteil gegenüber fixer Namensdefinition ist, dass der Elementname dynamisch generiert werden kann. ➪Das XML-Dokument mit xmlns:xsi und Attribut erzeugen ➪Konvertierung von Attributen in Elemente ➪Namespaces im XML-Input-Dokument ➪Timestamp-Elemente
45 2018-06-24 xsl:result-document: Ab XSLT 2.0 erlaubt xsl:result-document die Generierung mehrerer Zieldokumente.
46 2018-06-02 XML auswerten mit Powershell: Solide Unterstützung für XML-Auswertung mittel XPath wird auch in Powershell geboten.
47 2018-05-31 sum(): Die sum-Funktion berechnet die Summe der Zahlenwerte in der Sequenz (vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gecastet werden können). Die sum()-Funktion steht bereits seit XSLT 1.0/XPath 1.0 zur Verfügung. ➪sum() ab XSLT 2.0 ➪Prozessorabhängige Verarbeitung
48 2018-05-13 Gruppieren in XPath 1.0/XSL 1.0: Die Zusammenfassung mehrfach auftretender Werte ist eine häufige Aufgabe auch in XSLT 1.0/XPath 1.0. Wenn die Systemkonfiguration den Einsatz spezieller XSL-Prozessoren erzwingt, die nicht über geeignete Extensions verfügen, bleibt die Suche nach geeigneten Konzepten. ➪Arbeiten mit not und following:: ➪Arbeiten mit generate-id() ➪Die Muench'sche Methode
49 2018-05-13 xsl:for-each-group: xsl:for-each-group ist in der Lage, eine durch XPath ausgewählte Itemlist durch einen gewählten Grupperungsschlüssel so zusammenzufassen, dass die in der Itemlist wiederholt aufgeführten Werte jeweils nur einmal auftauchen (etwa analog einer DISTINCT-Auswertung bei einer SQL-Datenbankabfrage). ➪Zusammengesetzte Schlüssel ➪Gruppieren mit group-adjacent ➪Gruppieren mit group-starting-with und group-ending-with
50 2018-05-13 xsl:include, xsl:import, xsl:apply-imports: Mit xsl:import sowie xsl:include ist es möglich, externe XSL-Stylesheets in die aktuelle XSL-Logik einzubinden. Der Unterschied liegt in der Art, wie der Prozessor die externen Dokumente einbindet. ➪Arbeiten mit xsl:apply-imports ➪Mehrfachimplementierungen
51 2018-05-08 max(): Die max-Funktion berechnet den Maximalwert der Zahlen in der Sequenz (vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gecastet werden können). Die Funktion steht erst ab XSLT 2.0/XPath 2.0 zur Verfügung. ➪Selbst definierte Sequenzen ab XSL 2.0 ➪Maximalwerte in XSL 1.0 ermitteln ➪Maximalwerte mit C#.NET Scripting ermitteln
52 2018-05-03 xsl:for-each select: xsl:for-each select erlaubt eine effiziente Programmierung auf Basis komplexer, klar definierter Datenstrukturen, die sich beispielsweise aus verschachtelten Datenbankabfragen ergeben. Ein hilfreicher Trick ist auch der Loop allein um das Root-Element. ➪Präzise XPath-Adressierung ➪Der initiale Loop
53 2018-05-03 xsl:number: xsl:number bietet erweiterte, selektive wie hierarchische Möglichkeiten zur Nummerierung von Elementen. ➪Selektiv nummerieren mit count ➪Jedem Element seine ID ➪Hierarchisch nummerieren mit level="multiple" ➪Hierarchische Einzelnummerierung mit level="single" ➪Korrekturbedarf bei xsl:sort
54 2018-04-30 XPath: distinct-values: Die XPath-Funktion distinct-values löscht mehrfache identische Einträge in einer Sequenz und reduziert die Ausgabe auf Einzelresultate.
55 2018-04-23 min(): Die min-Funktion berechnet den Minimalwert der Zahlen in der Sequenz (vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gecastet werden können). ➪Selbst definierte Sequenzen ab XSL 2.0 ➪Minimalwerte in XSL 1.0 ermitteln
56 2018-04-22 XSL-Prozessoren: In der Entwicklung, im Test- und im Produktivsystem werden mitunter unterschiedliche Prozessoren bzw. Versionen verwendet. Das kann zum Problem führen, wenn unterschiedliche Prozessoren nicht einheitlich arbeiten.
57 2018-04-13 XPath: analyze-string: Die XPath-Funktion analyze-string ist eine hervorragende Möglichkeit zur Stringanalyse mittels regulärer Ausdrücke. Sie generiert ein analyze-string-result-Element mit den Childnodes match bzw. non-match. Möglich ist so auch die Datenvalidierung von CSV-Dateien in XSLT 2.0 und XSL 3.0. ➪CSV validieren mit XSLT 3.0
58 2018-04-13 Reguläre Ausdrücke: Reguläre Ausdrücke sind eine zwar kryptische, aber mächtige Möglichkeit zur Stringverarbeitung.
59 2018-04-13 Reguläre Ausdrücke in Java: In Java bietet die Stringklasse mit der matches-Methode eine effiziente Möglichkeit zum Umgang mit regulären Ausdrücken.
60 2018-04-13 Reguläre Ausdrücke in C#.NET: Reguläre Ausdrücke sind eine zwar kryptische, aber mächtige Möglichkeit zur Stringverarbeitung.
61 2018-04-13 XPath: string oder xs:string?: Die XPath-Funktion string konvertiert einen Textnode in einen String. ➪fn:string oder xs:string? ➪Typabhängige Auswertung ➪Sonderzeichen
62 2018-04-13 XPath Sequenzen: concat, union, except, intersect: Ab XSLT/XPath 2.0 sind Sequenzen äußerst leistungsfähig, nicht zuletzt durch die Möglichkeiten der Mengenoperationen: concat, union, except, intersect. ➪Sequenzen verketten ➪Sequenzen vereinigen ➪Sequenzen ausschließen mit "except" ➪Schnittmengen von Sequenzen bilden mit "intersect"
63 2018-04-13 Der Vergleich von leeren Sequenzen mit leeren Strings: Der Vergleich von leeren Sequenzen mit leeren Elementen liefert immer false(). Um eine Vergleichbarkeit herzustellen, ist eine string-Konvertierung der Sequenz beziehungsweise des Elements hilfreich.
64 2018-04-13 XPath: for-each-pair: Die XPath-Funktion for-each-pair bildet Kombinationen aus zwei Sequenzen, die dieselbe Anzahl Items haben müssen.
65 2018-04-13 XPath: fold-right: Die XPath-Funktion fold-right verarbeitet alle Items einer Sequenz von rechts nach links.
66 2018-04-13 XPath 3.1: Map, xsl:map: Wie Arrays sind auch Maps neue Datentypen in XDM 3.1. Das Datenformat JSON wird in beiden exzessiv genutzt. Spezialfunktionen wie map:size, map:keys, map:find, map:merge, map:get, map:contains, map:put, map:remove, map:entry, map:for-each sowie der Einsatz anonymer Programmierung heben die Möglichkeiten flexibler Implementierungen in XSLT bzw. XQuery auf eine neue Ebene. ➪XPath: map:size ➪XPath: map:keys ➪XPath: map:contains ➪XPath: map:find ➪XPath: map:put ➪XPath: map:remove ➪XPath: map:get ➪XPath: map:entry ➪XPath: map:merge ➪XPath: map:for-each ➪random-number-generator
67 2018-04-13 XPath 3.1: Array: Ein Array ist ein neuer Datentyp in XDM 3.1. ➪XPath: array:size ➪XPath: array:get ➪XPath: array:append ➪XPath: array:subarray ➪XPath: array:remove ➪XPath: array:insert-before ➪XPath: array:head ➪XPath: array:tail ➪XPath: array:reverse ➪XPath: array:join ➪XPath: array:for-each ➪XPath: Array generieren ➪XPath: array:filter ➪XPath: array:for-each-pair ➪XPath: array:sort
68 2018-04-13 xsl:preserve-space, xsl:strip-space: xsl:strip-space und xsl:preserve-space erlauben eine unterschiedliche Behandlung bestehender Whitespaces zwischen den Elementen des XML-Input-Dokuments.
69 2018-04-13 XSLT-Konvertierung von XML nach HTML: Mit xsl:for-each, xsl:apply-templates und xsl:call-template stehen unterschiedliche Möglichkeiten zur Verfügung, um XML-Daten nach HTML zu transformieren.
70 2018-04-13 Arbeiten mit xsl:for-each: Die Arbeit mit xsl:for-each ermöglicht eine übersichtliche Programmierlogik, die den Programmiergewohnheiten vieler Developer sehr entgegenkommt und sich zudem weitgehend unabhängig von ausgelagerten Subroutinen realisieren lässt. Damit können gegenseitige Abhängigkeiten reduziert werden, was sich sehr positiv auf die Wartbarkeit der Applikationen auswirkt.
71 2018-04-13 Einbindung externer XML-Dokumente: Der Datenimport aus separaten XML-Dokumenten kann sinnvoll sein, um zusätzliche Informationen in den Konvertierungsprozess einzubinden, die im eigentlichen XML-Input-Dokument nicht vorhanden sind.
72 2018-04-13 Arbeiten mit xsl:apply-templates: Alternativ zur Arbeit mit xsl:for-each besteht die Möglichkeit, dasselbe Ergebnis durch separate Templates (xsl:template match) zu erzielen.
73 2018-04-13 Arbeiten mit xsl:template name/xsl:call-template: Ein nochmals anderer Ansatz basiert auf der kompletten oder teilweisen Auslagerung der Implementierungslogik in benannte Templates (xsl:template name), die über xsl:call-template aufgerufen werden.
74 2018-04-12 Positionsbestimmung bei following-sibling: Mitunter stehen Sie vor der Spezialaufgabe, mit following-sibling::* die Abstände zwischen Elementen zu ermitteln, die sich beispielsweise durch das Vorhandensein eines bestimmten Attributs unterscheiden. ➪Lösung über eine separate Variable ➪Lösung in XSLT 2.0
75 2018-04-12 XPath: Pfade, Prädikate: Statt der möglicherweise aufwendigen Arbeit mit child::*, descendant::* etc. gibt es noch die Möglichkeit, Elemente und Attribute mit einer "Kurzschreibweise" sowie über sogenannte Prädikate präzise zu adressieren, um sie in eine Sequenz einzufügen, die ausgewertet werden kann. ➪XPath-Prädikate
76 2018-04-12 XPath-Operatoren: Mit XPath können auch Vergleiche, nummerische oder boolesche Rechenoperationen durchgeführt werden. ➪Nummerische Operatoren ➪Logische Operatoren ➪Boolesche Operatoren
77 2018-04-12 XPath: translate: Die XPath-Funktion translate erlaubt, jedes Zeichen eines Strings gezielt durch ein anderes Zeichen zu ersetzen.
78 2018-04-12 XPath: Sequenz-Funktionen: In XPath 2.0 kommen (gegenüber XPath 1.0) die mächtigen Sequenzen hinzu, auf denen wiederum zahlreiche Funktionen in XPath 2.0 und XPath 3.0 beruhen.
79 2018-04-12 XPath: copy-of: Die XPath-Funktion copy-of liefert eine tiefe Kopie einer Sequenz zurück.
80 2018-04-12 XPath: data: Die data()-Funktion liefert die atomisierten Werte einer Sequenz: Jeder Node wird also durch seinen Wert ersetzt. Das ist besonders wertvoll bei der Verarbeitung von Attributen. ➪Auswertung von xsl:attribute-set
81 2018-04-12 XPath: one-or-more: Die Funktion one-or-more überprüft, ob eine Sequenz überhaupt Inhalte hat: Mindestens ein Item muss vorhanden sein.
82 2018-04-07 xsl:param: xsl:param kommt zum Einsatz bei globaler und lokaler Parameterübergabe. ➪Globale Parameter ➪Lokale Parameter: Einzelwert bei xsl:call-template ➪Lokale Parameter: Nummerierung bei xsl:apply-templates
83 2018-04-06 XSL-Übersicht: XSL ist eine leistungsfähige Sprache zur Konvertierung vorrangig von XML-Input-Daten (aber z.B. auch Textformaten wie CSV), die in unterschiedlichem Kontext für unterschiedliche Zielformate (XML, HTML, Text sowie Formatting Object) zum Einsatz kommt.
84 2018-04-05 XPath: Codepoints: Die Spezialfunktionen string-to-codepoints, codepoints-to-string und codepoint-equal unterstützen die Konvertierung von Strings in Codepoints sowie den Vergleich von Zeichenketten auf Codepoint-Basis. ➪string-to-codepoints ➪codepoints-to-string ➪codepoint-equal ➪Spezialsuche
85 2018-04-05 XPath: matches: Die XPath-Funktion matches prüft, ob ein Item einem regulären Ausdruck entspricht. ➪Flags
86 2018-04-05 XPath: substring, string-length: Die XPath-Funktion substring erlaubt, aus einer Zeichenkette einen Teilstring zu ermitteln.
87 2018-04-05 XPath: exactly-one: Die exactly-one-Funktion erzwingt, dass eine Sequenz genau ein einziges Item aufweist.
88 2018-04-05 head, tail, snapshot: Weitere XPath-Funktionen bieten zusätzliche Möglichkeiten, Sequenzen auszuwerten. ➪head ➪tail ➪snapshot
89 2018-04-05 XPath: transform: Die XPath-Funktion transform startet eine XSL-Transformation mit einem dynamisch geladenen XSL-Stylesheet.
90 2018-04-05 system-properties: available-system-properties() generiert eine Liste verfügbarer System-Properties, deren Einzelwerte mit system-property ausgelesen werden können.
91 2018-04-05 xsl:accumulator: xsl:accumulator bietet leistungsfähige Unterstützung bei der Implementierung globaler Counter.
92 2018-04-05 xsl:analyze-string: xsl:analyze-string ist eine hervorragende Möglichkeit zur Stringanalyse mittels regulärer Ausdrücke.
93 2018-04-05 xsl:attribute: Mit der Anweisung xsl:attribute ist es möglich, ein Attribut in eine XML- bzw. HTML-basierte Zielstruktur einzufügen.
94 2018-04-05 xsl:attribute-set: Mit xsl:attribute-set kann eine ganze Anzahl einzelner xsl:attribute in einer Gruppierung vordefiniert werden, die schließlich mit xsl:use-attribute-sets komplett in das XML-Element eingefügt wird. ➪Deklarationskonflikte? ➪xsl:attribute-set in XSLT generieren
95 2018-04-05 xsl:for-each vs. xsl:apply-templates: Grundsätzlich gibt es verschiedene Wege, in XSL Nodelists abzuarbeiten. Mit Blick auf eine effiziente Wartbarkeit des Programmcodes empfiehlt sich, die Entscheidung auch von der Struktur des XML-Dokuments abhängig zu machen. xsl:for-each, xsl:call-template und xsl:apply-templates bieten jeweils Vor- und Nachteile für unterschiedliche Aufgabenstellungen, mit unterschiedlichen Konsequenzen für den Maintenance-Aufwand.
96 2018-04-05 xsl:call-template: xsl:call-template ruft benannte Templates (xsl:template name=") auf. Damit eignet sich xsl:call-template gut zur Implementierung von "Unterprogrammen", die duch die eigentlichen "Hauptprogramme" beliebig oft aufgerufen werden können.
97 2018-04-05 xsl:choose: xsl:choose erlaubt eine erweiterte, mehrstufige Fallunterscheidung nach dem Konzept "if/then/elseif/then/else". Dabei gibt es einige Besonderheiten zu beachten.
98 2018-04-05 xsl:copy, xsl:copy-of: xsl:copy generiert eine flache Kopie eines jeweils aktuellen Knotens. xsl:copy-of generiert eine tiefe Kopie eines jeweils aktuellen Knotens. ➪xsl:copy ➪xsl:copy-of
99 2018-04-05 xsl:decimal-format: xsl:decimal-format erlaubt eine benutzerdefinierte Zahlen-Formatierung: Für Dezimaltrenner (z.B. Komma) und Gruppierungszeichen (z.B. Punkt) können Sonderzeichen festgelegt werden (z.B. 1.234.567,89), die vom Standardwert (z.B. 1,234,567.89) abweichen. xsl:decimal-format kommt optional zum Einsatz in der XPath-Funktion format-number.
100 2018-04-05 xsl:fallback: xsl:fallback wird verwendet, wenn das XSL-Stylesheet Elemente beinhaltet, für die keine Implementierung vorhanden sind.
101 2018-04-05 xsl:fork: xsl:fork erlaubt, das Streaming von XML-Input in mehrere Prozesse aufzuteilen. Das ist vorteilhaft bei Datenstrukturen, deren Streaming nicht problemlos verläuft.
102 2018-04-05 xsl:if: xsl:if erlaubt eine einfache Fallprüfung.
103 2018-04-05 xsl:import-schema: xsl:import-schema bindet XML-Schema-Validierung in den XSL-Transformationsprozess ein.
104 2018-04-05 xsl:key: xsl:key erlaubt die Indizierung von Nodes in einer Sequenz durch ein key-value-Paar.
105 2018-04-05 xsl:merge: xsl:merge erlaubt, die Inhalte diverser xsl:merge-source mit xsl:merge-key in eine Sequenz zu mergen. In der xsl:merge-action kann jedes einzelne Item der current-merge-group() angesprochen werden; dabei ist der jeweilige merge-key durch current-merge-key() erreichbar.
106 2018-04-05 xsl:message: xsl:message bietet sich beim Debuggen oder zum bedingungsgesteuerten Abbruch der Transformation an.
107 2018-04-05 xsl:namespace: xsl:namespace bietet ab XSLT 2.0 die Möglichkeit, Namespaces dynamisch zu generieren. Dabei übernimmt das Attribut "name", das zwingend vorhanden sein muss, den Namespace-Präfix. ➪xsl:namespace-alias
108 2018-04-05 xsl:output: Für xsl:output, unter XSLT 2.0 auch für xsl:result-document, gibt es eine Reihe von Attributen, die den Prozessor anweisen, den Ausgabestrom zu modifizieren. ➪method ➪indent ➪cdata-section-elements ➪encoding ➪omit-xml-declaration ➪name ➪version ➪use-character-maps
109 2018-04-05 Konvertierung von XML nach XML: Da viele Programmierer die mehrfache Implementierung identischer Codezeilen als No-Go ansehen, ist es sinnvoll, redundante Logik in separate Templates auszulagern. Bei der Konvertierung einer XML-Input-Struktur in eine andere Zielstruktur gibt es dabei unterschiedliche Konzepte. ➪Implementierung mit xsl:template match ➪Implementierung mit xsl:for-each und direktem xsl:call-template ➪Implementierung mit xsl:for-each und parametrisiertem xsl:call-template
110 2018-04-05 XSL-Transformationsaufrufe: Die XSL-Transformation kann direkt in ANT, XProc, Java, C#.NET oder anderen Programmiersprachen aufgerufen werden. ➪XSL-Transformationen mit ANT ➪XSL-Transformationen mit XProc ➪XSL-Transformationen mit C#.NET ➪XSL-Transformationen mit Java
111 2018-04-04 avg(): Die avg-Funktion berechnet den arithmetischen Durchschnitt der Zahlenwerte in der Sequenz (vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gecastet werden können). avg() steht erst seit XSLT 2.0 / XPath 2.0 zur Verfügung.
112 2018-04-04 XPath: compare: Die compare-Funktion vergleicht zwei Stringparameter miteinander. ➪collations
113 2018-04-04 XPath: contains: Die XPath-Funktion contains prüft, ob in einem String ein bestimmter Teilstring enthalten ist. ➪XSL-Versionierung ➪Case-insensitive Suche ➪fn:contains-token
114 2018-04-04 XPath ends-with: Die XPath-Funktion ends-with prüft, ob ein Item (das als String gecastet werden kann) mit einer bestimmten Zeichenfolge endet.
115 2018-04-04 XPath: lower-case: Die lower-case-Funktion konvertiert jeden Großbuchstaben eines Strings in den entsprechenden Kleinbuchstaben.
116 2018-04-04 XPath: normalize-space: Die normalize-space-Funktion löscht führende und schließende Leerzeichen in einem String. ➪Sonderzeichen
117 2018-04-04 XPath: replace: Die XPath-Funktion replace erlaubt, einen String, der durch ein Pattern identifiziert wird, durch eine andere Zeichenkette zu ersetzen. ➪Flags
118 2018-04-04 XPath: starts-with: Die starts-with-Funktion prüft, ob ein Item (das als String gecastet werden kann) mit einer bestimmten Zeichenfolge beginnt. ➪starts-with und local-name
119 2018-04-04 XPath: substring-after: Die substring-before-Funktion liefert aus einem gegebenen String jenen Teil, der nach dem Auftreten eines zweiten Parameters liegt.
120 2018-04-04 XPath: substring-before: Die substring-before-Funktion liefert aus einem gegebenen String jenen Teil, der vor dem Auftreten eines zweiten Parameters liegt.
121 2018-04-04 XPath: upper-case: Die upper-case-Funktion konvertiert jeden Kleinbuchstaben eines Strings in den entsprechenden Großbuchstaben.
122 2018-04-04 XPath: deep-equal: Die deep-equal-Funktion kann zwei Sequenzen miteinander vergleichen.
123 2018-04-04 XPath: exists: exists überprüft, ob eine Sequenz NICHT leer ist, und gibt einen Booleanwert zurück.
124 2018-04-04 XPath: filter: Die XPath-Funktion filter gibt jene Items einer Sequenz zurück, die in der anonymen Funktion ein true() ergeben. ➪filter in XQuery
125 2018-04-04 XPath: fold-left: Die XPath-Funktion fold-left verarbeitet alle Items einer Sequenz von links nach rechts.
126 2018-04-04 XPath: index-of(), position(), last(): XPath bietet eine Reihe von Spezialfunktionen zur Positionsbestimmung eines Items in einer Sequenz, beispielsweise index-of(), position(), last(). ➪position() ➪last() ➪XPath: index-of
127 2018-04-04 XPath: in-scope-prefixes: Die XPath Funktion in-scope-prefixes gibt eine Liste aller Namespace-Präfixe, die im Kontext verwendet werden.
128 2018-04-04 XPath: insert-before: Die insert-before-Funktion fügt ab einer bestimmten Position zusätzliche Items in eine ursprüngliche Sequenz ein, sodass im Ergebnis eine neue Sequenz entsteht. ➪insert-after
129 2018-04-04 XPath: json-to-xml, xml-to-json: json-to-xml konvertiert JSON in eine XML-Struktur, die im Namespace http://www.w3.org/2013/XSL/json definiert ist. xml-to-json konvertiert ein XML-Dokument mit analoger Datenstruktur in einen JSON-String. ➪xml-to-json
130 2018-04-04 XPath: fn:json-doc: fn:json-doc liest eine externe Datei aus und gibt das Ergebnis als JSON zurück.
131 2018-04-04 XPath: fn:parse-json: fn:parse-json parst einen JSON-String und gibt den Wert als Map oder Array zurück.
132 2018-04-04 XPath 3.0: path: Die XPath-Funktion path() gibt den XPath-Pfad eines Nodes zurück.
133 2018-04-04 XPath: remove: Die remove-Funktion löscht bestimmte Items (die sich aus ihrer Indexposition ergeben) aus einer Sequenz.
134 2018-04-04 XPath: reverse: Die reverse-Funktion kehrt die Reihenfolge der Items in einer Sequenz um.
135 2018-04-04 XPath: serialize: Die XPath-Funktion serialize konvertiert eine Sequenz in einen String.
136 2018-04-04 XPath: subsequence: Die subsequence-Funktion kann aus einer Sequenz einzelne Teile filtern, die sich über die Position und die Anzahl der Items definiert.
137 2018-04-04 XPath: zero-or-one: Die zero-or-one-Funktion stellt sicher, dass eine Sequenz maximal ein Item haben darf; die Sequenz kann auch leer sein.
138 2018-04-04 Liste der Sonderzeichen selbst erstellen: Was ich in der Praxis oft benötige, ist ein schneller Überblick, hinter welcher Codenummer sich welches Zeichen verbirgt.
139 2018-04-04 Zeichensätze generieren mit C#.NET: Eine grobe Übersicht von über 55.000 Zeichen können Sie sich auch in C#.NET einfach generieren.
140 2018-04-01 xsl:sort, xsl:perform-sort, fn:sort: Eine häufige Aufgabe ist das Sortieren von Ergebnissen. Hier finden Sie in xsl:sort, xsl:perform-sort und fn:sort leistungsfähige Unterstützung. ➪Sortierungen mit xsl:sort ➪Sortierungen mit fn:sort ➪Funktionsbasierte Sortierungen mit fn:sort ➪Textbasierte Sortierung mit Collations ➪Sortierungen mit xsl:perform-sort
141 2018-04-01 xsl:template: xsl:template ist ein Top-Level-Element und muss daher direkt als Childnode von xsl:stylesheet bzw. xsl:transform definiert werden.
142 2018-04-01 xsl:text: xsl:text fügt einen Textnode im Transformations-Output ein. Dieser kann auch in Whitespaces bestehen.
143 2018-04-01 xsl:value-of: Mit xsl:value-of sind Sie in der Lage, die Textinhalte einzelner Elemente, Attribute oder berechneter Werte direkt oder formatiert auszugeben. Darüber hinaus können Sie mit xsl:value-of auch Sequenzen mehrerer Items abarbeiten.
144 2018-04-01 XSLT 2.0: Erweiterte Syntax: Ab XSLT 2.0 haben Sie die Möglichkeit, komplexe Logiken (Schleifen, Bedingungen) mit einer erweiterten Syntax zusammenzufassen. ➪Type-Casting ➪Alle oder nur einige?
145 2018-04-01 Konvertierung von Elementen in Attribute: In diesem Abschnitt lesen Sie, wie die Konvertierung von Elementen in Attribute mit Pfaden und Achsen einfach umgesetzt werden kann. ➪local-name(), node-name()
146 2018-04-01 Arbeit mit temporären Bäumen: Aufgabe: Stellen Sie alle Menschen in der Orte_hierarchisch.xml in Dreiergruppen dar, absteigend sortiert nach Gehalt und entsprechend nummeriert, so dass jeweils drei Menschen in einer Zeile stehen.
147 2018-03-31 sitemap.xml mit XSLT 3.0 generieren: Dieser Abschnitt beschreibt die Konvertierung einer Textdatei in eine "sitemap.xml"-Datei.
148 2018-03-31 Schattenkabinett: In XSLT 3.0 ist es möglich, mit einem statischen Wert während der Präprozessing-Phase zu arbeiten.
149 2018-03-30 Arbeiten mit optionalen Elementen: Bei der Arbeit mit optionalen Elementen/Attributen können Programmierfehler zu Informationsverlust führen. ➪XPath-Adressierung optionaler Werte ➪Gruppierung optionaler Werte
150 2018-03-29 xsl:character-map: In XSLT 2.0 gibt es die Möglichkeit, zur Behandlung von Zeichensätzen spezielle Character-Maps zu verwenden.
151 2018-03-29 xsl:function: In XSL 2.0 besteht auch die Möglichkeit, eigene Funktionen zu schreiben, denen Parameter übergeben werden können. Dabei können die Datentypen der übergebenen Parameter wie auch der Rückgabetyp klar definiert werden.
152 2018-03-28 XSLT 3.0: Dieser Abschnitt zeigt eine Liste von XSLT-3.0-Elementen, deren Attributen, Assertions und Childnodes. ➪xsl:accept ➪xsl:accumulator ➪xsl:accumulator-rule ➪xsl:analyze-string ➪xsl:apply-imports ➪xsl:apply-templates ➪xsl:assert ➪xsl:attribute ➪xsl:attribute-set ➪xsl:break ➪xsl:call-template ➪xsl:catch ➪xsl:character-map ➪xsl:choose ➪xsl:comment ➪xsl:context-item ➪xsl:copy ➪xsl:copy-of ➪xsl:decimal-format ➪xsl:declaration ➪xsl:document ➪xsl:element ➪xsl:evaluate ➪xsl:expose ➪xsl:fallback ➪xsl:for-each ➪xsl:for-each-group ➪xsl:fork ➪xsl:function ➪xsl:global-context-item ➪xsl:if ➪xsl:import ➪xsl:import-schema ➪xsl:include ➪xsl:instruction ➪xsl:iterate ➪xsl:key ➪xsl:literal-result-element ➪xsl:map ➪xsl:map-entry ➪xsl:matching-substring ➪xsl:merge ➪xsl:merge-action ➪xsl:merge-key ➪xsl:merge-source ➪xsl:message ➪xsl:mode ➪xsl:namespace ➪xsl:namespace-alias ➪xsl:next-iteration ➪xsl:next-match ➪xsl:non-matching-substring ➪xsl:number ➪xsl:on-completion ➪xsl:on-empty ➪xsl:on-non-empty ➪xsl:otherwise ➪xsl:output ➪xsl:output-character ➪xsl:override ➪xsl:package ➪xsl:param ➪xsl:perform-sort ➪xsl:preserve-space ➪xsl:processing-instruction ➪xsl:result-document ➪xsl:sequence ➪xsl:sort ➪xsl:source-document ➪xsl:strip-space ➪xsl:stylesheet ➪xsl:template ➪xsl:text ➪xsl:transform ➪xsl:try ➪xsl:use-package ➪xsl:value-of ➪xsl:variable ➪xsl:when ➪xsl:where-populated ➪xsl:with-param
153 2018-03-28 xsl:apply-templates: Teilkonvertierung: Manchmal stehen Sie vor der Aufgabe, ein komplexes XML-Input-Dokument fast unverändert übernehmen und nur eine Teilstruktur verändern zu müssen.
154 2018-03-26 XPath 3.0, XPath 2.0, XPath 1.0: Die XML Path Language ist eine Empfehlung des W3C, um XML-Dokumente gezielt auswerten zu können. XPath-Statements sind in der Auswertung von XML-Dokumenten von zentraler Bedeutung. Ihr effizienter Einsatz erlaubt eine gezielte Adressierung komplexer Nodelisten wie auch Singlenodes bzw. Attribute und damit deren Auswertung.
155 2018-03-26 Zahlenfunktionen: Dieser Abschnitt bietet eine Übersicht über Spezialfunktionen zur Auswertung von Zahlensequenzen: avg, count, max, min, number, sum. Zudem stehen mathematische Standardfunktionen bereit: acos, asin, atan, cos, log, log10, number, pi, pow, sin, sqrt, tan.
156 2018-03-26 Zahlen-Rundungsfunktionen: In XSL bzw. XPath stehen auch mehrere Funktionen zum Auf- oder Abrunden von Zahlen zur Verfügung.
157 2018-03-26 Stringfunktionen: Unverzichtbar für zahlreiche tägliche XPath-Aufgaben ist die Verarbeitung von Zeichenketten. Hier stehen zahlreiche Funktionen zur Verfügung.
158 2018-01-18 XSLT 1.0 Elemente: Die Seite bietet eine alphabetisch sortierte Kurzreferenz von XSLT-1.0-Elementen, deren Attribute und Childnodes. ➪xsl:apply-imports ➪xsl:apply-templates ➪xsl:attribute ➪xsl:attribute-set ➪xsl:call-template ➪xsl:choose ➪xsl:comment ➪xsl:copy ➪xsl:copy-of ➪xsl:decimal-format ➪xsl:element ➪xsl:fallback ➪xsl:for-each ➪xsl:if ➪xsl:import ➪xsl:include ➪xsl:key ➪xsl:message ➪xsl:namespace-alias ➪xsl:number ➪xsl:otherwise ➪xsl:output ➪xsl:param ➪xsl:preserve-space ➪xsl:processing-instruction ➪xsl:sort ➪xsl:strip-space ➪xsl:stylesheet ➪xsl:template ➪xsl:text ➪xsl:transform ➪xsl:value-of ➪xsl:variable ➪xsl:when ➪xsl:with-param
159 2018-01-18 XSLT 2.0 Elemente: Die Seite bietet eine alphabetisch sortierte Kurzreferenz von XSLT-2.0-Elementen, deren Attribute und Childnodes. ➪xsl:analyze-string ➪xsl:apply-imports ➪xsl:apply-templates ➪xsl:attribute ➪xsl:attribute-set ➪xsl:call-template ➪xsl:character-map ➪xsl:choose ➪xsl:comment ➪xsl:copy ➪xsl:copy-of ➪xsl:decimal-format ➪xsl:declaration ➪xsl:document ➪xsl:element ➪xsl:fallback ➪xsl:for-each ➪xsl:for-each-group ➪xsl:function ➪xsl:if ➪xsl:import ➪xsl:import-schema ➪xsl:include ➪xsl:instruction ➪xsl:key ➪xsl:literal-result-element ➪xsl:matching-substring ➪xsl:message ➪xsl:namespace ➪xsl:namespace-alias ➪xsl:next-match ➪xsl:non-matching-substring ➪xsl:number ➪xsl:otherwise ➪xsl:output ➪xsl:output-character ➪xsl:param ➪xsl:perform-sort ➪xsl:preserve-space ➪xsl:processing-instruction ➪xsl:result-document ➪xsl:sequence ➪xsl:sort ➪xsl:strip-space ➪xsl:stylesheet ➪xsl:template ➪xsl:text ➪xsl:transform ➪xsl:value-of ➪xsl:variable ➪xsl:when ➪xsl:with-param


Vielen Dank für Ihr Interesse an meiner Arbeit.


>

V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de