Ü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-06-08 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-06-08 XML auswerten mit XPath, C#.NET und Java: Diese Seite beschreibt anhand eines einfachen Beispiels verschiedene Möglichkeiten zur Auswertung von XML-Dokumenten in XPath/XSLT, C#.NET und Java. ➪Auswertung mit XQuery ➪Auswertung mit XSLT ➪Auswertung mit C#.NET via System.Xml.XmlDocument und XPath ➪Auswertung mit C#.NET via LINQ ➪Auswertung mit C#.NET via System.Xml.XmlReader ➪Auswertung mit Java via org.xml.sax.XMLReader
3 2018-06-02 XML auswerten mit Powershell: Solide Unterstützung für XML-Auswertung mittel XPath wird auch in Powershell geboten.
4 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
5 2018-05-28 C#.NET: Auswerten von CSV mit LINQ: Mit LINQ bietet C#.NET flexible Möglichkeiten, Textdateien (zum Beispiel CSV) in XML-Dokumente zu konvertieren. Auch Gruppierungen der XML-Struktur sind leicht möglich. ➪Gruppierungen mit LINQ
6 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
7 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
8 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
9 2018-05-13 CSV: Ein ebenfalls sehr gebräuchliches Format für den Datenaustausch ist CSV: comma-separated-value. Das Format eignet sich hervorragend für die Verarbeitung tabellenartiger, also 2-dimensionaler Strukturen. Der minimale Overhead wirkt sich vorteilhaft auf die Dateigröße und auf die Verarbeitungsgeschwindigkeit aus.
10 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
11 2018-05-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
12 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
13 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
14 2018-04-30 XPath-Achsen: XPath-Pfade und -Achsen definieren den Verlauf, Umfang und die Richtung, in dem die umgebenden Nodes abgearbeitet werden.
15 2018-04-30 ancestor::*: ancestor::* gibt die Liste aller vorhergehender Nodes aus, aber ohne den aktuellen Mensch-Node.
16 2018-04-30 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.
17 2018-04-30 attribute::*: Mit attribute::* erhalten Sie alle Attribute eines adressierten Nodes. ➪Maximalwerte berechnen
18 2018-04-30 child::*: Mit child::* erhalten Sie die Childnodes des aktuellen Nodes.
19 2018-04-30 descendant::*: Mit descendant::* erhalten Sie sämtliche Nachkommen des akuellen Knotens.
20 2018-04-30 descendant-or-self::*: Mit descendant-or-self::* erhalten Sie den aktuellen Node und dessen sämtliche Nachkommen. ➪XML-Schema Analyse mit descendant-or-self::*
21 2018-04-30 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
22 2018-04-30 following::*: Mit following::* erhalten Sie Folge-Nodes des aktuellen Knotens.
23 2018-04-30 following-sibling::*: Mit following-sibling::* erhalten Sie Folge-Nodes des aktuellen Knotens.
24 2018-04-30 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.
25 2018-04-30 parent::*: Mit parent::* erhalten Sie den Parentnode des aktuellen Nodes.
26 2018-04-30 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.
27 2018-04-30 preceding-sibling::*: Mit preceding-sibling::* erhalten Sie Vorgänger-Nodes des aktuellen Knotens. ➪Countdown
28 2018-04-30 self::*: self::* spricht den jeweiligen Knoten an.
29 2018-04-30 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.
30 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.
31 2018-04-28 Erzeugen von skalierbaren Vektor-Grafiken (SVG): Skalierbare Vektor-Grafiken (SVG) sind pures XML mit einem speziellen Namespace, der die Funktionalitäten definiert, auf der u.a. auch Browser arbeiten, die SVG-Dateien anzeigen können. Spezielle Grafikelemente (Text, Rechteck, Kreis, Linie, ...) können mit Koordinaten und weiteren Eigenschaften ausgestattet werden, die ein Anzeigen als Grafik möglich machen. ➪SVG: <polyline> ➪Das Balkendiagramm ➪Das Säulendiagramm ➪Das Kreisdiagramm ➪Skalierungen
32 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
33 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.
34 2018-04-13 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
35 2018-04-13 Toll, ein Kalender: Um den Kalender für die Restlaufzeit bis zu einem Enddatum zu erstellen, können Sie mit rekursiven Aufrufen arbeiten.
36 2018-04-13 Zeitkalkulation in Java:
37 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
38 2018-04-13 Reguläre Ausdrücke: Reguläre Ausdrücke sind eine zwar kryptische, aber mächtige Möglichkeit zur Stringverarbeitung.
39 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.
40 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.
41 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
42 2018-04-13 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.
43 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"
44 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.
45 2018-04-13 XPath: empty: Die XPath-Funktion empty überprüft, ob eine Sequenz leer ist, und gibt einen Booleanwert zurück.
46 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.
47 2018-04-13 XPath: fold-right: Die XPath-Funktion fold-right verarbeitet alle Items einer Sequenz von rechts nach links.
48 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
49 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
50 2018-04-13 available-environment-variables: available-environment-variables gibt eine Liste der Umgebungsvariablen zurück; den jeweiligen Einzelwert erfahren über die Funktion environment-variable.
51 2018-04-13 xsl:element: xsl:element erlaubt die flexible Generierung von Elementnamen. Mit xsl:element ist es möglich, Elemente im Zieldokument zu generieren. Der Vorteil gegenüber fixer Namensdefinition ist, dass der Elementname dynamisch generiert werden kann. ➪Namespaces im XML-Input-Dokument ➪Timestamp-Elemente
52 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.
53 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.
54 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.
55 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.
56 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.
57 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.
58 2018-04-12 XML: Die Sache mit den Namespaces: Namespaces helfen bei der Klarstellung gemeinsam genutzter Fachbegriffe in einem Kontext. Insbesondere geht es darum, im Fall möglicher Mehrdeutigkeiten begriffliche Kollisionen und damit Fehlinterpretationen zu vermeiden. ➪Versionsabhängige Präzision ➪Namespaces in XML ➪XML: Namespace-definierte Struktur
59 2018-04-12 Namespaces in XML-Dokumenten: Namespaces im XML-Input können erhöhte Anforderungen an die Folgeprogrammierung bewirken. Bei jeder Änderung der Namespaces müssen ggf. zahlreiche XSL-Stylesheets oder XQuery-Scripte angepasst werden. Geschieht das nicht zeitnah, ist Informationsverlust die wahrscheinliche Folge. ➪Kein guter Rat ➪Namespaces löschen?
60 2018-04-12 Die XML-Namespace-Flut: In etlichen Unternehmen bzw. öffentlich-rechtlichen Institutionen haben Sie es teilweise mit einer Namespace-Flut zu tun. Pro Jahr kommen Hunderte zusätzliche Namespaces hinzu.
61 2018-04-12 Versionierung: Dass Datenstrukturen sich ändern können, ist normal. Normal ist auch, dass die Folgeprogrammierung der geänderten Sachlage anzupassen ist. Änderungen zu blockieren, um sich die aufwendige Anpassung der Folgeprogrammierung zu ersparen, ist auf Dauer kaum durchzuhalten. Daher ist eine klare Versionierung geänderter XML-Datenstrukturen von zentraler Bedeutung. ➪Versionierung über Namespaces ➪Versionierung über Namen der Elemente bzw. Attribute ➪Versionierung über Attribut "@version"
62 2018-04-12 XML: Automatischer Namespace-Report: In vielen XML-Dokumenten werden mehrere Namespaces verwendet, oft wiederholt mit verschiedenem Namespace-Präfix. Mitunter werden für denselben Namespace-Präfix lokal unterschiedliche Namespaces verwendet. Das erhöht die Anforderungen an die Folgeprogrammierung.
63 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
64 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
65 2018-04-12 XPath-Operatoren: Mit XPath können auch Vergleiche, nummerische oder boolesche Rechenoperationen durchgeführt werden. ➪Nummerische Operatoren ➪Logische Operatoren ➪Boolesche Operatoren
66 2018-04-12 XPath: translate: Die XPath-Funktion translate erlaubt, jedes Zeichen eines Strings gezielt durch ein anderes Zeichen zu ersetzen.
67 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.
68 2018-04-12 XPath: copy-of: Die XPath-Funktion copy-of liefert eine tiefe Kopie einer Sequenz zurück.
69 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
70 2018-04-12 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.
71 2018-04-12 Anonyme Funktionen: In XSLT 3.0 gibt es die Möglichkeit, in einer Variablen einen anonymen Funktionsaufruf zu implementieren.
72 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.
73 2018-04-12 unparsed-text-lines: CSV in XML konvertieren: Die Konvertierung von Nicht-XML-Dateien wie CSV ist unter XSLT 3.0 noch einfacher als unter XSLT 2.0.
74 2018-04-12 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.
75 2018-04-12 xsl:assert: xsl:assert ist in der Lage, den Programmablauf zu kontrollieren.
76 2018-04-12 xsl:evaluate: xsl:evaluate bietet die Möglichkeit, zur Laufzeit generierte XPath-Statements auszuführen. ➪Generische Template-Aufrufe in XSL 1.0
77 2018-04-12 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.
78 2018-04-12 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.
79 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
80 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.
81 2018-04-06 XSL-Analyse mit Collections: Die XPath-Funktion collection ermöglicht, mehrere XML-Dateien als Input anzusprechen und deren jeweiligen Dateinamen über base-uri zu ermitteln. ➪Mehrfach-Implementierungen
82 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
83 2018-04-05 XPath: matches: Die XPath-Funktion matches prüft, ob ein Item einem regulären Ausdruck entspricht. ➪Flags
84 2018-04-05 XPath: substring, string-length: Die XPath-Funktion substring erlaubt, aus einer Zeichenkette einen Teilstring zu ermitteln.
85 2018-04-05 XPath: exactly-one: Die exactly-one-Funktion erzwingt, dass eine Sequenz genau ein einziges Item aufweist.
86 2018-04-05 head, tail, snapshot: Weitere XPath-Funktionen bieten zusätzliche Möglichkeiten, Sequenzen auszuwerten. ➪head ➪tail ➪snapshot
87 2018-04-05 XPath: transform: Die XPath-Funktion transform startet eine XSL-Transformation mit einem dynamisch geladenen XSL-Stylesheet.
88 2018-04-05 system-properties: available-system-properties() generiert eine Liste verfügbarer System-Properties, deren Einzelwerte mit system-property ausgelesen werden können.
89 2018-04-05 xsl:accumulator: xsl:accumulator bietet leistungsfähige Unterstützung bei der Implementierung globaler Counter.
90 2018-04-05 xsl:analyze-string: xsl:analyze-string ist eine hervorragende Möglichkeit zur Stringanalyse mittels regulärer Ausdrücke.
91 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.
92 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
93 2018-04-05 xsl:apply-templates, xsl:next-match: Ein alternativer Ansatz zur Arbeit mit xsl:for-each ist xsl:apply-templates. ➪Arbeiten mit xsl:next-match ➪xsl:apply-templates bei mixed content
94 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.
95 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.
96 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.
97 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
98 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.
99 2018-04-05 xsl:fallback: xsl:fallback wird verwendet, wenn das XSL-Stylesheet Elemente beinhaltet, für die keine Implementierung vorhanden sind.
100 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.
101 2018-04-05 xsl:if: xsl:if erlaubt eine einfache Fallprüfung.
102 2018-04-05 xsl:import-schema: xsl:import-schema bindet XML-Schema-Validierung in den XSL-Transformationsprozess ein.
103 2018-04-05 xsl:key: xsl:key erlaubt die Indizierung von Nodes in einer Sequenz durch ein key-value-Paar.
104 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.
105 2018-04-05 xsl:message: xsl:message bietet sich beim Debuggen oder zum bedingungsgesteuerten Abbruch der Transformation an.
106 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
107 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
108 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
109 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
110 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.
111 2018-04-04 XPath: compare: Die compare-Funktion vergleicht zwei Stringparameter miteinander. ➪collations
112 2018-04-04 XPath: concat: Die XPath-Funktion concat verkettet mehrere Informationen zu einem String.
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: tokenize: Die XPath-Funktion tokenize konvertiert einen token-String in eine Sequenz. ➪Flags ➪Type-casting ➪Sonderzeichen
122 2018-04-04 XPath: upper-case: Die upper-case-Funktion konvertiert jeden Kleinbuchstaben eines Strings in den entsprechenden Großbuchstaben.
123 2018-04-04 count(): Die count-Funktion zählt die Anzahl der Items in der Sequenz. Sie steht auch unter XPath 1.0 zur Verfügung.
124 2018-04-04 XPath: deep-equal: Die deep-equal-Funktion kann zwei Sequenzen miteinander vergleichen.
125 2018-04-04 XPath: exists: exists überprüft, ob eine Sequenz NICHT leer ist, und gibt einen Booleanwert zurück.
126 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
127 2018-04-04 XPath: fold-left: Die XPath-Funktion fold-left verarbeitet alle Items einer Sequenz von links nach rechts.
128 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
129 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.
130 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
131 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
132 2018-04-04 XPath: fn:json-doc: fn:json-doc liest eine externe Datei aus und gibt das Ergebnis als JSON zurück.
133 2018-04-04 XPath: fn:parse-json: fn:parse-json parst einen JSON-String und gibt den Wert als Map oder Array zurück.
134 2018-04-04 XPath 3.0: path: Die XPath-Funktion path() gibt den XPath-Pfad eines Nodes zurück.
135 2018-04-04 XPath: remove: Die remove-Funktion löscht bestimmte Items (die sich aus ihrer Indexposition ergeben) aus einer Sequenz.
136 2018-04-04 XPath: reverse: Die reverse-Funktion kehrt die Reihenfolge der Items in einer Sequenz um.
137 2018-04-04 XPath: serialize: Die XPath-Funktion serialize konvertiert eine Sequenz in einen String.
138 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.
139 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.
140 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.
141 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.
142 2018-04-01 xsl:result-document: xsl:result-document erlaubt die Generierung mehrerer Zieldokumente.
143 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
144 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.
145 2018-04-01 xsl:text: xsl:text fügt einen Textnode im Transformations-Output ein. Dieser kann auch in Whitespaces bestehen.
146 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.
147 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?
148 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()
149 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.
150 2018-03-31 sitemap.xml mit XSLT 3.0 generieren: Dieser Abschnitt beschreibt die Konvertierung einer Textdatei in eine "sitemap.xml"-Datei.
151 2018-03-31 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. ➪xsl:sequence ➪Anonyme Funktionen
152 2018-03-31 Schattenkabinett: In XSLT 3.0 ist es möglich, mit einem statischen Wert während der Präprozessing-Phase zu arbeiten.
153 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
154 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.
155 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.
156 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
157 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.
158 2018-03-27 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
159 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.
160 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.
161 2018-03-26 Zahlen-Rundungsfunktionen: In XSL bzw. XPath stehen auch mehrere Funktionen zum Auf- oder Abrunden von Zahlen zur Verfügung.
162 2018-03-26 Stringfunktionen: Unverzichtbar für zahlreiche tägliche XPath-Aufgaben ist die Verarbeitung von Zeichenketten. Hier stehen zahlreiche Funktionen zur Verfügung.
163 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
164 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
165 2017-11-04 CSV Dateien validieren mit VisualBasic.NET: Die Seite beschreibt die Validierung von CSV-Dateien mithilfe von VisualBasic.NET.
166 2017-10-14 CSV Dateien validieren mit Java: Die Seite beschreibt die Validierung von CSV-Dateien mithilfe von Java.
167 2017-10-14 CSV Dateien validieren mit C#.NET: Die Seite beschreibt die Validierung von CSV-Dateien mithilfe von C#.NET.


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