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

1 2018-03-22 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-03-22 Anonyme Funktionen: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
3 2018-03-22 unparsed-text-lines: CSV in XML konvertieren: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
4 2018-03-22 XSLT 3.0, XPath 3.0: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
5 2018-03-22 xsl:assert: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
6 2018-03-22 xsl:evaluate: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate. ➪Generische Template-Aufrufe in XSL 1.0
7 2018-03-22 xsl:iterate, xsl:break: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
8 2018-03-22 xsl:try ... xsl:catch: XSLT 3.0 und XPath 3.0 bieten zahlreiche neue Features, z.B. json-to-xml, unparsed-text-lines, xsl:try xsl:catch, xsl:assert, xsl:evaluate, xsl:variable mit anonymem Funktionsaufruf, xsl:iterate.
9 2018-03-22 Was ist XQuery?: Zur effizienten Speicherung sehr zahlreicher XML-Dokumente bieten sich sowohl native XML-Datenbanken als auch herkömmliche SQL-Datenbanken an, die das Abspeichern als XML-Dokument ermöglichen. Zur Auswertung der dort gelisteten XML-Dokumente innerhalb dieser Technologien kommt häufig XQuery zum Einsatz.
10 2018-03-22 Arbeit mit Sequenzen: XQuery arbeitet auf der Basis von Sequenzen, die sich zum Beispiel durch "(1 to 10)" als eine Sequenz aller Zahlen von 1 bis 10 definieren läßt. ➪Sequenzen verketten
11 2018-03-22 XSD-Typecast: Sehr hilfreich ist die Unterstützung der XML Schema-Datentypen in XQuery.
12 2018-03-22 Sortierung einer Sequenz: Mit "order by" ist auch die Sortierung einer Sequenz problemlos möglich.
13 2018-03-22 Arbeiten mit Variablen: Mitunter ist es in XQuery notwendig, Zwischenergebnisse in temporäre Variablen auszulagern, bevor sie weiter verarbeitet werden können. Das kann bei der Numerierung einer Sequenz notwendig werden, die vorher mit "order by" sortiert wurde.
14 2018-03-22 XQuery: Arbeiten mit XML-Input: Die Inhalte der XML-Input-Elemente können mit ./text() ausgewertet werden. Erfolgt das nicht, so wird der jeweilige Element-Node übernommen, an dem der Textnode als Child hängt.
15 2018-03-22 WHERE: Eine bedingungsgesteuerte Auswahl kann mit der WHERE-Klausel durchgeführt werden.
16 2018-03-22 XQuery: WHERE und Numerierung: Die WHERE-Klausel filtert aus der Liste jener Nodes, die im vorhergehenden XPath-Statement angesprochen werden, jene heraus, die den WHERE-Kriterien entsprechen. Sollen die gefundenen Nodes in der Ausgabe numeriert werden, kann die WHERE-Klausel kontraproduktiv sein.
17 2018-03-22 Geschachtelte Schleifen: Selbstverständlich steht herkömmlicher Programmierlogik nichts Wesentliches im Wege; so sind auch geschachtelte Schleifen auch in XQuery möglich.
18 2018-03-22 FLOWR: XQuery bietet komfortable Unterstützung für erweiterte Bedingungsprüfungen (every/some mit satisfies) sowie den präzise Typdefinitionen auf der Basis simpler XML Schema-Datentypen (castable, xs:decimal, xs:integer etc.).
19 2018-03-22 XQuery: Element-Konstruktor: In der Programmierpraxis mit XQuery kann es vorkommen, daß Elemente zur Laufzeit generiert werden müssen. Hier leistet der Element-Konstruktor große Hilfe.
20 2018-03-22 Vereinigte Sequenzen: Da XQuery auf demselben Datenmodell beruht, können Nodelists (Sequenzen) zunächst generiert und anschließend mit union verkettet werden.
21 2018-03-22 XQuery: concat, union, intersect, except: Ebenfalls zum Vergleich gegenüber XSL 2.0 finden Sie noch die XQuery-Syntax für Sequenzverkettungen, unions, intersects und excepts.
22 2018-03-22 XQuery: Generierung von 3erGruppen: Eine etwas komplexere XQuery-Aufgabe ist die nach Einkommen absteigend sortierte, in Dreiergruppen angeordnete und numerierte Ausgabe von Vorname und Wohnort aller Menschen im Quelldokument.
23 2018-03-22 XQuery: Arbeiten mit Namespaces und Funktionen: Neben Standard-Namespaces sind in XQuery auch selbst definierte Namespaces von zentraler Bedeutung, etwa bei der Deklaration von Variablen und Funktionen.
24 2018-03-22 XPath 3.1: Arrays in XQuery: Auch die erweiteren Funktionen von XPath 3.1, zum Beispiel die Array-Funktionen, stehen in XQuery zur Verfügung. Voraussetzung ist die Einbindung des speziellen Namespaces. ➪array:reverse ➪array:subarray ➪array:insert-before, array:tail ➪array:for-each ➪array:for-each-pair
25 2018-03-22 XQuery 3.0: switch ... case: Ergänzend zu 'if then else' bietet XQuery eine einfache Fallunterscheidung über switch / case.
26 2018-03-22 XQuery 3.0: try ... catch: Auch XQuery bietet ein leistungsfähiges Exception-Handling mit try / catch.
27 2018-03-22 XQuery 3.0: Gruppierungen mit group by: In XQuery 3.0 sind mit Hilfe von "group by" auch Gruppierungen möglich.
28 2018-03-21 Zahlenfunktionen: Die Seite 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.
29 2018-03-19 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, daß die in der Itemlist wiederholt aufgeführten Werte jeweils nur einmal auftauchen (etwa analog einer DISTINCT-Auswertung bei einer SQL-Datenbankabfrage). Anschließend kann die gruppierte Itemliste durch xsl:for-each select="current-group()" durchlaufen werden. ➪Zusammengesetzte Schlüssel ➪Gruppieren mit group-adjacent ➪Gruppieren mit group-starting-with und group-ending-with
30 2018-03-17 avg(): Die "avg"-Funktion berechnet den arithmetischen Durchschnitt der Zahlenwerte in der Sequence - vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gacastet werden können. avg() steht erst seit XSLT 2.0 / XPath 2.0 zur Verfügung.
31 2018-03-17 count(): Die "count"-Funktion zählt die Anzahl der Items in der Sequence. Sie steht auch unter XPath 1.0 zur Verfügung.
32 2018-03-17 min(): Die "min"-Funktion berechnet den Minimalwert der Zahlen in der Sequence - vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gacastet werden können.
33 2018-03-17 max(): Die "max"-Funktion berechnet den Maximalwert der Zahlen in der Sequence - vorausgesetzt, es sind nur Werte enthalten, die auch als Zahlenwerte gacastet werden können.
34 2018-03-17 sum(): Die "sum"-Funktion berechnet die Summe der Zahlenwerte in der Sequence - 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.
35 2018-03-17 Arbeiten mit optionalen Elementen: Bei der Arbeit mit optionalen Elementen / optionalen Attributen können Programmierfehler zu Informationsverlust führen. ➪XPath-Adressierung optionaler Werte ➪Gruppierung optionaler Werte
36 2018-03-16 XML - klare Strukturen: Die systematische Strukturierung dient vorrangig der maschinellen Auswertbarkeit. XML, die Extensible Markup Language, ist ein einfacher und internationaler Standard zum Datenaustausch, zur Prozeßkonfiguration und Datenhaltung.
37 2018-03-16 string oder xs:string?: Die XPath-Funktion string konvertiert einen Textnode in einen String. ➪fn:string oder xs:string? ➪Typabhängige Auswertung ➪Sonderzeichen
38 2018-03-16 XPath: Der Vergleich von leeren Sequences mit leeren Strings: Der Vergleich von leeren Sequenzen mit leeren Elementen liefert immer false(). Um eine Vergleichbarkeit herzustellen, ist eine string-Konvertierung der Sequenz und des Elements hilfreich.
39 2018-03-15 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
40 2018-03-12 XPath-Achsen: XPath-Pfade und Achsen definieren den Verlauf, Umfang und Richtung, in dem die umgebenden Nodes abgearbeitet werden.
41 2018-03-12 following-sibling::*: Mit following-sibling::* erhalten wir Folge-Nodes des aktuellen Knotens.
42 2018-03-12 Positionsbestimmung bei following-sibling: Mitunter stehen wir 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
43 2018-03-12 following::*: Mit following::* erhalten wir Folge-Nodes des aktuellen Knotens.
44 2018-03-12 preceding-sibling::*: Mit preceding-sibling::* erhalten wir Vorgänger-Nodes des aktuellen Knotens. ➪Countdown
45 2018-03-12 preceding::*: Mit preceding::* erhalten wir Vorgänger-Nodes des aktuellen Knotens.
46 2018-03-12 child::*: Mit child::* erhalten wir die Childnodes des aktuellen Nodes.
47 2018-03-12 descendant-or-self::*: Mit descendant-or-self::* erhalten wir den aktuellen Node und dessen sämtliche Nachkommen. ➪XML Schema Analyse mit descendant-or-self::*
48 2018-03-12 descendant::*: Mit descendant::* erhalten wir sämtliche Nachkommen des akuellen Knotens.
49 2018-03-12 ancestor-or-self::*: ancestor-or-self::* gibt uns eine Nodeliste aller vorhergehender Knoten bis zum Root-element, und zwar in der Reihenfolge, daß der Rootnode zuerst ausgegeben wird.
50 2018-03-12 Verschachtelungstiefe: Um eine maximale Verschachteungstiefe ermitteln zu können, ist eine kombinierte Anwendung von descendant-or-self und ancestor-or-self sinnvoll. ➪Ermittlung der Verschachtelungstiefe in XQuery
51 2018-03-12 ancestor::*: ancestor::* gibt die Liste aller vorhergehender Nodes aus, aber ohne den aktuellen Mensch-Node.
52 2018-03-12 namespace::*: Sind Namespaces im Spiel, so erhalten wir eine Liste aller Namepaces, die im betreffenden Node benannt worden sind, so daß sie für den aktuellen Node und dessen Childnodes gelten können. Das umfaßt aber nicht jene Childnodes, deren Namespaces lokal definiert wurde.
53 2018-03-12 parent::*: Mit parent::* erhalten wir den Parentnode des aktuellen Nodes.
54 2018-03-12 attribute::*: Mit attribute::* erhalten wir alle Attribute eines adressierten Nodes. ➪Maximalwerte berechnen
55 2018-03-12 self::*: self::* spricht den jeweiligen Knoten an.
56 2018-03-12 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.
57 2018-03-04 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
58 2018-03-04 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 angepaßt werden. Geschieht das nicht zeitnah, ist Informationsverlust die wahrscheinliche Folge. ➪Kein guter Rat ➪Namespaces löschen?
59 2018-03-04 Die XML-Namespace-Flut: In etlichen Unternehmen bzw. öffentlich-rechtlichen Institutionen haben wir es teilweise mit einer Namespace-Flut zu tun. Pro Jahr kommen Hunderte zusätzliche Namespaces hinzu.
60 2018-03-04 Versionierung: Daß Datenstrukturen sich ändern können, ist normal. Normal ist auch, daß die Folgeprogrammierung der geänderten Sachlage anzupassen ist. Änderungen zu blockieren, um sich die aufwändige 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"
61 2018-03-04 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.
62 2018-03-04 XML Validierung - wozu?: Die enorme Gestaltungsflexibilität der XML-Dokumente zwingt zu systematischer Strukturierung, damit sie durch Folge-Programme effizient ausgewertet werden können.
63 2018-03-04 XPath: tokenize: Die XPath-Funktion "tokenize" konvertiert einen token-String in eine Sequenz. ➪Flags ➪Type-casting ➪Sonderzeichen
64 2018-03-04 XSL-Übersicht: XSL ist eine leistungsfähige Sprache zur Konvertierung vorrangig von XML-Input-Daten (aber z.B. auch Textformate wie CSV), die in unterschiedlichem Kontext für unterschiedliche Zielformate (XML, HTML, Text sowie Formatting Object) zum Einsatz kommt.
65 2018-03-04 xsl:param: xsl:param kommt zum Einsatz bei globaler (Transformationsprozeß) und lokaler (xsl:call-template, xsl:apply-templates, xsl:with-param) Parameterübergabe. ➪Globale Parameter ➪Lokale Parameter: Einzelwert bei xsl:call-template ➪Lokale Parameter: Numerierung bei xsl:apply-templates
66 2018-03-04 xsl:variable: Im XSL übernimmt eine Variable nur einen temporären Inhalt, der in der Regel zur Laufzeit gesetzt und an passender anderer Stelle wieder ausgelesen wird. Dieser temporäre Inhalt kann einen einzelnen Wert, eine Liste simplen Datentyps sein, ebenso ein externes XML-Dokument (document()), ein komplexer Baum, das Zwischenergebnis einer mehrstufigen Konvertierung: mithin eine komplexe Sequenz (xsl:sequence) von Items. ➪xsl:sequence ➪xsl:document ➪Anonyme Funktionen
67 2018-03-04 Schattenkabinett: shadow attributes ermöglichen, mit einem statischen Wert während der Präprozessing-Phase zu arbeiten.
68 2018-03-04 XSLT 2.0: Erweiterte Syntax: In XSLT 2.0 besteht die Möglichkeit, komplexe Logiken (Schleifen, Bedingungen) mit Hilfe einer erweiterten Syntax zusammenzufassen. ➪Type-Casting ➪Alle oder nur einige?
69 2018-03-04 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-03-04 Arbeiten mit xsl:for-each: 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.
71 2018-03-04 Einbindung externer XML-Dokumente: 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.
72 2018-03-04 Arbeiten mit xsl:apply-templates: 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.
73 2018-03-04 Arbeiten mit xsl:call-template: 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.
74 2018-03-03 XML Kommentare: In XML, XSLT, XML Schema und anderen Standards sind ergänzende Kommentare hilfreich, um die Wartung komplexer Anwendungen zu erleichtern. Neben Standard-Kommentaren stehetm auch CDATA-Kommentare bereit. ➪XML-Kommentare in XSL erzeugen ➪XML-Kommentare in XSL auswerten ➪CDATA in Scripting-Dateien ➪CDATA-Sections und XML Schema-Validierung ➪parse-xml-fragment
75 2018-03-03 XML: Processing-Instruction: Anweisungen zur Processing-Instruction helfen, XML-Dokumente mit temporären Zusatzinformationen zu versehen, die für die Weiterverarbeitung wichtig sind, ohne selbst Teil des XML-Dokuments zu sein. Beispielhaft sind hier browserseitige Transformationen von XML und XSL bzw. CSS. ➪Browserseitige Transformation XML und XSL ➪Browserseitige Transformation XML und CSS
76 2018-03-03 XML-Datenstruktur - Typen: Das Datenformat XML ist außerordentlich gestaltungsflexibel. Das hat Konsequenzen für die Art der automatischen Verarbeitung. ➪XML: Schwach strukturierte Dokumente ➪XML-Struktur: Mixed Content ➪XML: Stark strukturierte Dokumente ➪XML: Hierarchischer Aufbau ➪XML: Aufbau entspricht der SQL-Datenbankstruktur ➪XML: Namespace-definierte Struktur ➪XML: Sequenzielle Dokument-Struktur
77 2018-03-03 XML auswerten mit Java-SAX: SAX erfordert eine Handler-Routine, die das Interface "ContentHandler" implementiert.
78 2018-03-03 Formatting Objects (FO): Um XML mit Hilfe von XSL nach PDF (png, rtf, tiff, png, txt, ps, pcl) transformieren zu können, ist zunächst eine Konvertierung in das Zwischenformat Formatting Objects (FO) erforderlich. ➪Generierung von PDF
79 2018-03-03 Die Struktur von Formatting Objects (FO): Um die FO-basierte Generierung von PDF-, RTF-, PS- PCL- und anderen Dateien verstehen zu können, müssen wir zunächst die Struktur von Formatting Objects (FO) verstehen.
80 2018-03-03 XSL-FO: Nachdem wir die Grundstruktur von Formatting Objects ansatzweise kennen, können wir zur XSL-Transformation des XML-Dokuments in das Zwischenformat "FO" übergehen; von dort aus übernimmt wieder der FO-Prozessor.
81 2018-03-03 Arbeiten mit XSL 3.0 und FOP: Die Standard-Verarbeitung von XSL-FO mit Apache's FO-Framework arbeitet auf der Basis von XSL 1.1. Freilich sind hier zahlreiche Features nicht verfügbar, die erst unter XSLT 2.0 bzw. XSLT 3.0 bereit stehen. Das heißt aber keineswegs, daß wir nun auf die enorme Leistungsfähigkeit von XSL 2.0 / XSL 3.0 verzichten müßten, im Gegenteil.
82 2018-03-03 FOP mit ANT: Die beschriebenen XML-XSL-FO-PDF-Konvertierungsaufrufe können auch mit ANT durchgeführt werden.
83 2018-02-23 XML Schema: XML Schema ist ein XML-Dokument mit dem Namespace http://www.w3.org/2001/XMLSchema. Es ermöglicht, Elemente, Attribute, deren Datentypen und evtl gegenseitige Abhängigkeiten detailliert zu definieren, auch mit der Zuweisung von Namespaces. Dabei unterstützt XML Schema eine ganze Anzahl von Standard-Datentypen, die in gängigen Programmiersprachen Verwendung finden.
84 2018-02-23 XPath: Sequence-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.
85 2018-02-23 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.
86 2018-02-17 XPath: Pfade, Prädikate: Statt der möglicherweise aufwändigen 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
87 2018-02-17 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, so daß 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
88 2018-02-17 Toll, ein Kalender: Um den Kalender für die Restlaufzeit bin zu einem Enddatum zu erstellen, können wir mit rekursiven Aufrufen arbeiten.
89 2018-02-17 Zeitkalkulation in Java:
90 2018-02-17 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
91 2018-02-16 XPath: matches: Die XPath-Funktion "matches" prüft, ob ein Item einem regulären Ausdruck entspricht. ➪Flags
92 2018-02-16 XPath: replace: Die XPath-Funktion "replace" erlaubt, einen String, der durch ein Pattern identifiziert wird, durch eine andere Zeichenkette zu ersetzen. ➪Flags
93 2018-02-16 XPath 3.1: Array: Ein Array ist ein neuer Datentyp in XDM 3.1. Spezialfunktionen wie array:size, array:get, array:append, array:subarray, array:remove, array:insert-before, array:head, array:tail, array:reverse, array:for-each, array:for-each-pair, array:join, array:filter, array:sort sowie der Einsatz anonymer Funktionen bieten reichhaltige Unterstützung für flexible Implementierungen. ➪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
94 2018-02-16 xsl:number: xsl:number bietet erweiterte, selektive wie hierarchische Möglichkeiten zur Numerierung von Elementen. ➪Selektiv numerieren mit count ➪Hierarchisch numerieren mit level="multiple" ➪Hierarchische Einzelnumerierung mit level="single" ➪Korrekturbedarf bei xsl:sort
95 2018-02-12 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
96 2018-02-12 compare: Die "compare"-Funktion vergleicht zwei Stringparameter miteinander. ➪collations
97 2018-02-12 XPath: filter: Die XPath-Funktion "filter" gibt jene Items einer Sequenz zurück, die in der anonymen Funktion ein true() ergeben. Beispiel: function($a as xs:integer) as xs:boolean. ➪filter in XQuery
98 2018-02-12 XPath: for-each-pair: Die XPath-Funktion "for-each-pair" bildet Kombinationen aus zwei Sequenzen, die dieselbe Anzahl Items haben müssen.
99 2018-02-12 XPath: fold-left: Die XPath-Funktion fold-left verarbeitet alle Items einer Sequenz von links nach rechts.
100 2018-02-12 XPath: fold-right: Die XPath-Funktion fold-right verarbeitet alle Items einer Sequenz von rechts nach links.
101 2018-02-11 Interessenkonflikte: In der Praxis kann es vorkommen, daß die Interessenlage des Datenlieferanten und des -empfängers hinsichtlich der Qualität der bereitgestellten Daten (wie auch des XML Schema) unterschiedlich ist. Nicht immer findet eine gegenseitige Abstimmung statt. Welche Konsequenzen kann das haben? ➪Die Interessenlage des Datenlieferanten ➪Änderungen der XML-Input-Dokumentstruktur ➪Die Interessenlage des Datenempfängers ➪Ein XML Schema - oder mehrere?
102 2018-02-11 Datentypen, Designs: XML Schema bietet eine Vielzahl unterschiedlicher Datentypen und Design-Alternativen. ➪Simple Datentypen
103 2018-02-11 xs:element name: "xs:element name" definiert den Namen eines XML-Elements. Der interne Aufbau, eventuelle Datentypen, Attribute und Childnodes können an verschiedenen Stellen präzisiert werden.
104 2018-02-11 xs:complexType: "xs:complexType name" erlaubt, mehrere Attribute und/oder Childnodes an globaler Stelle zu deklarieren, so daß die "type"-Deklaration von "xs:element" auf diesen definierten xs:complexType verweisen kann.
105 2018-02-11 xs:simpleType: Ähnlich wie bei der globalen Deklaration von xs:complexType, können auch einfache Datentypen via "xs:simpleType" global deklariert und dann an anderer Stelle wiederholt eingesetzt werden.
106 2018-02-11 xs:element ref: "xs:element ref" erlaubt, XML-Elemente über Referenzierungen in die komplexen Typen einzubinden, die an anderer Stelle durch "xs:element name" definiert sind.
107 2018-02-11 xs:group: Eine weitere Design Alternative liegt in den XML Schema Gruppierungen. Mit "xs:group name" werden Gruppen von Elementen global definiert, die sich an anderer Stelle durch "xs:group ref" wieder einbinden lassen.
108 2018-02-11 XML Schema: xs:unique, xs:key, xs:keyref, xs:selector, xs:field: Auch m:n-Relationen, wie sie in RDBMS üblich sind, können in XML problemlos abgebildet werden; XML Schema bietet hier mit xs:unique, xs:key und xs:keyref effiziente Lösungsansätze.
109 2018-02-11 XML Schema: xs:element abstract, substitutionGroup: Zusätzliche Design-Alternativen für XML Schema ergeben sich über abstrakte Elemente. Hierbei wird beispielsweise ein Dummy-Element definiert, das als Platzhalter für andere Elemente dient.
110 2018-02-11 elementFormDefault, attributeFormDefault: In XML Schema finden wir häufig Deklarationen wie elementFormDefault="qualified" oder attributeFormDefault="unqualified".
111 2018-02-11 JAXB: Alternativ zur Arbeit mit java.beans.XMLEncoder und java.beans.XMLDecoder gibt es die Möglichkeit, Java-Objekte mit Hilfe von "JAXB" in eine XML-Datei zu serialisieren und sie analog auch wieder zu deserialisieren. Ein Vorteil liegt darin, über Annotations auf die Struktur des XML-Dokuments Einfluß zu nehmen. ➪JAXB und XML Schema: xjc.exe ➪JAXB und XSD - konkret ➪Konvertierung zu Person
112 2018-02-09 XPath: concat: Die XPath-Funktion "concat" verkettet mehrere Informationen zu einem String.
113 2018-02-09 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
114 2018-02-09 substring, string-length: Die XPath-Funktion "substring" erlaubt, aus einer Zeichenkette einen Teilstring zu ermitteln.
115 2018-02-09 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
116 2018-02-09 XPath: exists: "exists" überprüft, ob eine Sequenz NICHT leer ist, und gibt einen Booleanwert zurück.
117 2018-02-09 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
118 2018-02-09 XPath: remove: Die "remove"-Funktion löscht bestimmte Items (die sich aus ihrer Indexposition ergeben) aus einer Sequence.
119 2018-02-09 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
120 2018-02-09 XPath: fn:parse-json: fn:parse-json parst einen JSON-String und gibt den Wert als Map oder Array zurück.
121 2018-02-09 XPath: fn:json-doc: fn:json-doc liest eine externe Datei aus und gibt das Ergebnis als JSON zurück.
122 2018-02-09 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
123 2018-02-09 XPath: transform: Die XPath-Funktion "transform" startet eine XSL-Transformation mit einem dynamisch geladenen XSL-Stylesheet.
124 2018-02-09 xsl:accumulator: xsl:accumulator bietet leistungsfähige Unterstützung bei der Implementierung globaler Counter.
125 2018-02-09 xsl:analyze-string: xsl:analyze-string ist eine hervorragende Möglichkeit zur Stringanalyse mittels regulärer Ausdrücke.
126 2018-02-09 xsl:attribute: Mit der Anweisung xsl:attribute ist es möglich, ein Attribut in eine XML- bzw. HTML-basierte Zielstruktur einzufügen.
127 2018-02-09 xsl:attribute-set: Mit Hilfe von xsl:attribute-set kann eine ganze Anzahl einzelner xsl:attribute in einer Gruppierung vordefiniert werden, die schließlich mit Hilfe von xsl:use-attribute-sets komplett in das XML-Element eingefügt wird. ➪Deklarations-Konflikte? ➪xsl:attribute-set in XSLT generieren
128 2018-02-09 xsl:apply-templates, xsl:next-match: Ein alternativer Ansatz zur Arbeit mit xsl:for-each ist xsl:apply-templates. Hier wird eine stufenweise Auslagerung in separate Templates gepflegt, die sich besonders für textintensive Dokumente mit gemischter Strukturierung der Childelemente (mixed content) eignet. ➪Arbeiten mit xsl:next-match ➪xsl:apply-templates bei mixed content
129 2018-02-09 xsl:apply-templates: Teilkonvertierung: Manchmal stehen wir vor der Aufgabe, ein komplexes XML-Inputdokument fast unverändert übernehmen und nur eine Teilstruktur verändern zu müssen.
130 2018-02-09 xsl:preserve-space, xsl:strip-space: xsl:strip-space und xsl:preserve-space erlauben eine unterschiedliche Behandlung bestehender White-Spaces zwischen den Elementen des XML Input Dokuments.
131 2018-02-09 xsl:result-document: xsl:result-document erlaubt die Generierung mehrerer Zieldokumente.
132 2018-02-09 xsl:sort, xsl:perform-sort, fn:sort: Eine häufige Aufgabe ist die Sortierung von Ergebnissen. Hier bieten XSLT und XPath mit 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
133 2018-02-09 xsl:text: xsl:text fügt einen Textnode im Transformations-Output ein. Dieser kann auch in Whitespaces bestehen.
134 2018-02-09 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.
135 2018-02-08 XPath ends-with: Die XPath-Funktion "ends-with" prüft, ob ein Item (das als String gecastet werden kann) mit einer bestimmten Zeichenfolge endet.
136 2018-02-08 XPath: lower-case: Die "lower-case"-Funktion konvertiert jeden Großbuchstaben eines Strings in den entsprechenden Kleinbuchstaben.
137 2018-02-08 XPath: normalize-space: Die "normalize-space"-Funktion löscht führende und schließende Leerzeichen in einem String. ➪Sonderzeichen
138 2018-02-08 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
139 2018-02-08 XPath: string-join: Bei der XPath-Funktion "string-join" kann eine Sequenz als Parameter übergeben werden, die dann mit Hilfe eines Trennzeichens in eine Zeichenkette konvertiert wird.
140 2018-02-08 XPath: substring-after: Die "substring-before"-Funktion liefert aus einem gegebenen String jenen Teil, der nach dem Auftreten eines zweiten Parameters liegt.
141 2018-02-08 XPath: substring-before: Die "substring-before"-Funktion liefert aus einem gegebenen String jenen Teil, der vor dem Auftreten eines zweiten Parameters liegt.
142 2018-02-08 XPath: translate: Die XPath-Funktion "translate" erlaubt, jedes Zeichen eines Strings gezielt durch ein anderes Zeichen zu ersetzen.
143 2018-02-08 XPath: upper-case: Die "upper-case"-Funktion konvertiert jeden Kleinbuchstaben eines Strings in den entsprechenden Großbuchstaben.
144 2018-02-08 XPath: distinct-values: Die XPath-Funktion "distinct-values" löscht mehrfache identische Einträge in einer Sequence und reduziert die Ausgabe auf Einzelresultate.
145 2018-02-08 XPath: exactly-one: Die "exactly-one"-Funktion erzwingt, daß eine Sequence genau ein einziges Item aufweist.
146 2018-02-08 XPath: one-or-more: Die Funktion "one-or-more" überprüft, ob eine Sequence überhaupt Inhalte hat: mindestens ein Item muß vorhanden sein.
147 2018-02-08 XPath Sequences: concat, union, except, intersect: Ab XSLT/XPath 2.0 sind Sequences ä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"
148 2018-02-08 XPath: deep-equal: Die "deep-equal"-Funktion kann zwei Sequences miteinander vergleichen.
149 2018-02-08 XPath: empty: Die XPath-Funktion "empty" überprüft, ob eine Sequenz leer ist, und gibt einen Booleanwert zurück.
150 2018-02-08 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.
151 2018-02-08 head, tail, snapshot: XPath-Funktionen wie head, tail und snapshot bieten zusätzliche Möglichkeiten, Sequenzen auszuwerten. ➪head ➪tail ➪snapshot
152 2018-02-08 XPath in-scope-prefixes: Die XPath Funktion in-scope-prefixes gibt eine Liste aller Namespace-prefixe, die im Kontext verwendet werden.
153 2018-02-08 XPath: insert-before: Die "insert-before"-Funktion fügt ab einer bestimmten Position zusätzliche Items in eine ursprüngliche Sequenz ein, so daß im Ergebnis eine neue Sequenz entsteht. ➪insert-after
154 2018-02-08 XPath 3.0: path: Die XPath-Funktion path() gibt den XPath-Pfad eines Nodes zurück.
155 2018-02-08 XPath: reverse: Die "reverse"-funktion kehrt die Reihenfolge der Items in einer Sequence um.
156 2018-02-08 XPath: subsequence: Die "subsequence"-Funktion kann aus einer Sequenz einzelne Teile filtern, die sich über die Position und die Anzahl der Items definiert.
157 2018-02-08 XPath serialize: Die XPath Funktion "serialize" konvertiert eine Sequenz in einen String.
158 2018-02-08 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
159 2018-02-08 system-properties: "available-system-properties()" generiert eine Liste verfügbarer System-Properties, deren Einzelwerte mit "system-property" ausgelesen werden können.
160 2018-02-08 XML als Datenaustauschformat: XML-Technologien kommen dort ins Spiel, wo es um Flexibilität und Präzision geht. Das Datenformat XML hat den Vorteil, daß höchst leistungsfähige Technologien wie XML Schema, XPath, XSLT, XQuery u.a.m. zur Strukturdefinition, Vermeidung von Bedeutungskonflikten bei Versionsunterschieden, oder zur Auswertung der XML-Dokumente breite Unterstützung finden. ➪Warum XML? ➪XML und objektorientierte Programmierung
161 2018-01-29 Objekt-Serialisierung mit C#.NET: Wie in anderen Programmiersprachen, können XML-Dokumente auch in C#.NET durch Serialisierung von Objekten bzw. Objektlisten erzeugt werden. ➪Arbeiten mit Xml.Serialization ➪Arbeiten mit WebServices
162 2018-01-29 Objekt-Serialisierung mit VisualBasic.NET: Wie in anderen Programmiersprachen, können XML-Dokumente auch in VisualBasic.NET durch Serialisierung von Objekten bzw. Objektlisten erzeugt werden. ➪Arbeiten mit Xml.Serialization
163 2018-01-29 Objektserialisierung mit Java: Die XML-basierte Objektserialisierung zielt darauf ab, Objekte verschiedener Programmiersprachen (hier im Beispiel: Java) in XML abzubilden, um die generierte XML-Datei anschließend wieder auszulesen und in Java-Objekte zu überführen. Dabei gibt es verschiedene Verfahren, u.a. mit Hilfe von XMLEncoder und XMLDecoder. ➪Arbeiten mit ObjectOutputStream und ObjectInputStream ➪Arbeiten mit XMLEncoder ➪Arbeiten mit XMLDecoder
164 2018-01-29 JAXB - XSLT - JAXB: XSLT kann Java bei der flexiblen Objekt-Deserialisierung mit Hilfe JAXB wirksame Unterstützung bieten.
165 2018-01-28 XML Basics: XML Markup Language ist eine erweiterbare, flexible, stukturierte Markup-Sprache, die in unterschiedlichen Bereichen zum Einsatz kommt, etwa bei Transformation zu HTML, XML, Text, SVG, RTF, PNG, TIFF, PDF. ➪XML: erweiterbar, flexibel
166 2018-01-28 XML Entitäten: Die Seite stellt die Funktionsweise von XML Entitäten dar, am Beispiel von Standard-, selbst definierten Entitäten, Einbindung separater XML-Dokumente sowie zur Entitätsdeklaration in XSLT. ➪Selbst definierte Entitäten ➪Entitäten als externe Dokumente ➪Entitätsdeklaration in XSLT
167 2018-01-28 XML Schema 1.1: XML Schema 1.1 bietet mit erweiterten Konzepten für Assertions (assert für komplexe Datentypen, assertion für simple Datentypen), bedingten Typisierungen, schemaweiten Attributen, openContent bzw. defaultOpenContent leistungsfähige Unterstützung bei der Datenvalidierung. ➪Versionierung ➪Assertions ➪Alternativen ➪xs:override ➪Beispiel mit Namespaces
168 2018-01-28 XPath: zero-or-one: Die zero-or-one-Funktion stellt sicher, daß eine Sequence maximal ein Item haben darf; die Sequence kann auch leer sein.
169 2018-01-28 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
170 2018-01-28 xsl:function: In XSL 2.0 besteht auch die Möglichkeit, eigene Funktionen zu schreiben, denen Parameter übergeben können. Dabei können die Datentypen der übergebenen Parameter wie auch des Rückgabetyps klar definiert werden.
171 2018-01-28 xsl:if: xsl:if erlaubt eine einfache Fallprüfung.
172 2018-01-28 xsl:include, xsl:import, xsl:apply-imports: Mit Hilfe von 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
173 2018-01-28 xsl:import-schema: xsl:import-schema bindet XML Schema-Validierung in den XSL-2.0-Transformationsprozeß ein. ➪Arbeiten mit xsl:import-schema
174 2018-01-28 xsl:key: xsl:key erlaubt die Indizierung von Nodes in einer Sequenz durch ein key-value-Paar.
175 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
176 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
177 2018-01-18 XSLT 3.0 Elemente: Die Seite bietet eine alphabetisch sortierte Kurzreferenz von XSLT-3.0-Elementen, deren Attribute, 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
178 2018-01-18 xsl:fallback: xsl:fallback wird verwendet, wenn das XSL-Stylesheet Elemente beinhaltet, für die keine Implementierung vorhanden sind.
179 2018-01-17 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
180 2018-01-17 xsl:template: xsl:template ist ein Top-Level-Element und muß daher direkt als Childnode von xsl:stylesheet bzw. xsl:transform definiert werden.
181 2018-01-15 xsl:value-of: Mit xsl:value-of sind wir in der Lage, die Textinhalte einzelner Elemente, Attribute oder berechneter Werte direkt oder formatiert auszugeben. Darüberhinaus können wir mit xsl:value-of auch Sequenzen mehrerer Items abarbeiten.
182 2018-01-12 Sowas brauche ich nicht ...: Ob auf eine XML-Schema-Validation des XML Inputs verzichtet werden kann, hängt davon ab, daß sich die Dokumentstruktur der Input-Daten (einschließlich Namespaces) nicht ändert. Das ist aber keineswegs sichergestellt.
183 2018-01-12 xsl:element: xsl:element erlaubt die flexible Generierung von Elementnamen. Mit Hilfe von xsl:element ist es möglich, Elemente im Zieldokument zu generieren. Der Vorteil gegenüber fixer Namensdefinition ist, daß der Elementname dynamisch generiert werden kann. ➪Namespaces im XML Input Dokument ➪Timestamp-Elemente
184 2018-01-12 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 muß, den Namespace-Präfix. ➪xsl:namespace-alias
185 2018-01-09 xsl:message: xsl:message bietet sich an beim Debuggen oder zum bedingungsgesteuerten Abbruch der Transformation.
186 2018-01-08 Konvertierung von XML nach XML: Da viele Programmierer die mehrfache Implementierung identischer Codezeilen als No-Go ansehen, ist es notwendig, 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
187 2018-01-07 Konvertierung von Elementen in Attribute: Lesen Sie, wie die Konvertierung von Elementen in Attribute mit Hilfe von Pfaden und Achsen einfach umgesetzt werden kann. ➪local-name(), node-name()
188 2018-01-06 StAX: Die Streaming API for XML (StAX) bietet die Möglichkeit, XML-Dokumente zu erzeugen und zu lesen, ohne sich im Code detailliert um Wohlgeformtheit Sorgen machen oder sich (wie bei DOM) erst einen kompletten Baum im Arbeitsspeicher generieren zu müssen, der dann abgespeichert werden kann. ➪Mit StAX ein XML-Dokument erzeugen ➪Mit StAX ein XML-Dokument lesen
189 2017-12-31 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 ➪XPath: copy-of
190 2017-12-31 xsl:merge: xsl:merge erlaubt, die Inhalte diverser xsl:merge-source mit Hilfe des xsl:merge-key in eine Sequenz zu mergen. In der xsl:merge-action kann jeses einzelne Item der current-merge-group() angesprochen werden; dabei ist der jeweilige merge-key durch current-merge-key() erreichbar.
191 2017-12-30 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.
192 2017-12-30 xsl:choose: xsl:choose erlaubt eine erweiterte, mehrstufige Fallunterscheidung nach dem Konzept "if elseif else". In beiden Fällen gibt es einige Besonderheiten zu beachten.
193 2017-12-30 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.
194 2017-12-29 xs:any, xs:anyType: Häufig ist es erforderlich, nur Teilvalidierungen durchzuführen, also einzelne Elemente von der Validierung auszunehmen. xs:any sowie xs:anyType bieten die erforderliche Flexibilität. ➪processContents="strict" ➪processContents="lax" ➪processContents="skip" ➪xs:anyType, xs:anySimpleType
195 2017-12-29 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 ("xsl:call-template") werden können.
196 2017-12-29 xsl:character-map: In XSLT 2.0 gibt es die Möglichkeit, zur Behandlung von Zeichensätzen spezielle Character-Maps zu verwenden.
197 2017-12-29 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.
198 2017-12-28 XML Version: Im Normalfall gehört zu jedem XML-Dokument ein Prolog, der mindestens über die XML-Version informiert.
199 2017-12-28 XML Encoding: Speziell im internationalen Datenaustausch werden unterschiedliche Kodierungen verwendet. Sofern die in XML verwendeten Zeichen nicht aus dem UTF-8-Encoding stammen, ist im XML-Prolog das verwendete Encoding anzugeben.
200 2017-12-28 Liste der Sonderzeichen selbst erstellen: Speziell im internationalen Datenaustausch werden unterschiedliche Kodierungen verwendet. Sofern die in XML verwendeten Zeichen nicht aus dem UTF-8-Encoding stammen, ist im XML-Prolog das verwendete Encoding anzugeben.
201 2017-12-28 Zeichensätze generieren mit C#.NET: Speziell im internationalen Datenaustausch werden unterschiedliche Kodierungen verwendet. Sofern die in XML verwendeten Zeichen nicht aus dem UTF-8-Encoding stammen, ist im XML-Prolog das verwendete Encoding anzugeben.
202 2017-12-05 Java: DOM-Programmierung: DOM ist in der Lage, ein XML-Dokument im Arbeitsspeicher zu generieren bzw. ein vorhandenes Dokument zu laden und komplett zu verändern: neue Nodes einfügen, vorhandene löschen, verändern oder verschieben. Nach getaner Arbeit kann das Resultat z.B. in eine Datei geschrieben werden. Dieses Verfahren ist mit erheblichem Ressourcenverbrauch verbunden. ➪XML generieren mit Java: org.w3c.dom.DOM ➪Java: XML mit org.w3c.dom.Document auswerten
203 2017-12-05 JDOM-Programmierung: Im Vergleich zu DOM deutlich einfacher sieht die Generierung von XML in JDOM aus: zumindest kommt die direkte Instanziierung über Standard- und parametrisierte Konstruktoren dem objektorientierten Programmierer sehr entgegen. Das gilt auch für das Abspeichern des in JDOM generierten Baumes in eine XML-Datei; hierfür stehen die Klassen "XMLOutputter" und "Format" zur Verfügung, in denen das Nähere geregelt werden kann, sowohl für "System.out" als auch für einen FileOutputStream. ➪XML generieren mit JDOM ➪Java: XML mit JDOM2 auswerten
204 2017-11-23 XML Schema - Beispiel: Beispiel für eine Datenstrukturdefinition mit Hilfe von XML Schema.
205 2017-11-10 Zahlen - Rundungsfunktionen: In XSL bzw. XPath stehen auch mehrere Funktionen zum Auf- oder Abrunden von Zahlen zur Verfügung.
206 2017-11-10 Stringfunktionen: Unverzichtbar für zahlreiche tägliche XPath-Aufgaben ist die Verarbeitung von Zeichenketten. Hier stehen zahlreiche Funktionen zur Verfügung.
207 2017-11-10 available-environment-variables(): available-environment-variables gibt eine Liste der Umgebungsvariablen zurück; den jeweiligen Einzelwert erfahren wir mit Hilfe der Funktion "environment-variable".
208 2017-11-10 sitemap.xml mit XSLT 3.0 generieren: Die Seite beschreibt die Konvertierung einer Textdatei in eine "sitemap.xml"-Datei.
209 2017-11-07 Arbeit mit temporären Bäumen: Aufgabe: Stellen Sie alle Menschen in der Orte_hierarchisch.xml in 3er Gruppen dar, absteigend sortiert nach Gehalt und entsprechend numeriert, so daß jeweils drei Menschen in einer Zeile stehen.
210 2017-11-06 XML: Wohlgeformte Dokumente: XML-Dokumente sind wohlgeformt, sofern sie nicht gegen eine XML-Regel verstoßen, z.B.:
211 2017-11-06 RelaxNG compact - Beispiel: Beispiel für eine Datenstrukturdefinition mit Hilfe von RelaxNG compact, die zur Datenvalidierung von XML-Dokumenten herangezogen werden kann.
212 2017-11-06 RelaxNG - Beispiel: Beispiel für eine Datenstrukturdefinition mit Hilfe von RelaxNG, die zur Datenvalidierung von XML-Dokumenten herangezogen werden kann.
213 2017-11-06 DTD - Beispiel: Beispiel für eine Datenstrukturdefinition mit Hilfe von DTD, die zur Datenvalidierung von XML-Dokumenten herangezogen werden kann.
214 2017-11-06 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.
215 2017-11-06 Reguläre Ausdrücke: Reguläre Ausdrücke sind eine zwar kryptische, aber mächtige Möglichkeit zur Stringverarbeitung.
216 2017-11-06 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.
217 2017-11-06 Reguläre Ausdrücke in C#.NET: Reguläre Ausdrücke sind eine zwar kryptische, aber mächtige Möglichkeit zur Stringverarbeitung.
218 2017-11-05 XPath - Operatoren: Mit XPath können auch Vergleiche, numerische oder boolesche Rechenoperationen durchgeführt werden. ➪Numerische Operatoren ➪Logische Operatoren ➪Boolesche Operatoren
219 2017-11-05 XProc: XProc bietet komfortable Möglichkeiten, ganze Konvertierungsstrecken bedingungsgesteuert samt Validierungen zu definieren. Dabei kann sowohl XSLT als auch XQuery zum Einsatz kommen.
220 2017-09-22 DTD: Eine DTD (document type definition) legt die zulässigen Namespaces, Elemente und Attribute eines XML-Dokuments fest und definiert so die Struktur aller XML-Dokumente, die gegen diese DTD gültig sein sollen. ➪DTD im Attribute-style ➪DTD für Attributsstyle mit Namespaces ➪NOTATION


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