XML-Element
An element can contain: text, attributes, other elements, or a mix of the above.
oder Kommentar:
XML naming rules
XML elements must follow these naming rules:
Element names are case-sensitive
Element names must start with a letter or underscore
Element names cannot start with the letters xml (or XML, or Xml, etc)
Element names can contain letters, digits, hyphens, underscores, and periods
Element names cannot contain spaces
Any name can be used, no words are reserved (except xml)
Verarbeitungsanweisung
Verarbeitungsanweisungen (processing instructions, PIs), ermöglichen es Dokumenten Anweisungen für Applikationen zu enthalten.
Document Object Model (DOM)
Struktur baut auf azyklischen, gerichteten, gefärbten Graphen auf
Namespaces
provide a method to avoid element name conflicts.
werden eindeutig über URIs identifiziert
Ein Expanded Name besteht aus einem Namespace Name und einem Local Name.
Bei einem Namen N, in einem Namespace der durch eine URI I identifiziert wird, ist I der „Namespace Name“.
Ein Name N, der in keinem Namespace liegt, hat einen leeren Namespace Name. – In beiden Fällen ist der Lokale Name N.
Namenskollisionen werden durch die Kombination von Namespace Name und lokalem Namen vermieden.
Namespace Deklaration
mit reserviertem Attribut: xmlns*=”URI”
Namespace Prefix deklariert werden, mit welchem sich Elemente und Attribute dem Namespace assoziieren lassen: xmlns:beispiel=”URI”
Das Namespace Prefix muss in der Namespace Deklaration des Start-Tags oder in einem Vorfahren deklariert sein
Namespace Scoping
Wirkungsbereich eines deklarierten Namespace-Prefix geht von der Deklaration im Start-Tag bis zum korrespondierenden End-Tag.
Es können mehrere Namespace Präfixe als Attribut eines einzelnen Elements deklariert werden
Defaulting: Wirkungsbereich eines Default Namespaces (ohne Prefix) geht von der Deklaration im Start-Tag bis zum korrespondierenden End-Tag
xQuery
is designed to query XML data
XQuery 1.0 and XPath 2.0 share the same data model and support the same functions and operators
kann mit XML gemischt werden
kann XML Struktur ausgeben, weitere xQuery Ausdrücken können eingebettet werden
FLWOR
For - selects a sequence of nodes
Let - binds a sequence to a variable
Where - filters the nodes
Order by - sorts the nodes
Return - what to return (gets evaluated once for every node)
xQuery Funktionen deklarieren
Funktionskontext: muss innerhalb der Funktion hergestellt werden und dann übergeben werden, entweder explizit, oder durch "."
Eingabewerte in Argumenten sind Sequenzen, Anzahl der Akzeptierten Elemente kann durch occurence-indicators: ?, +, * eingeschränkt werden
xQuery Funktionsaufruf
Das erste Argument einer Funktion kann weggelassen werden und mit dem „=>“-Operator aus dem links stehenden Kontext übergeben werden
Funktionsbibliotheken
Funktionen können auch in Bibliotheken/Modulen gebündelt werden
Module könnten dann in einem XQuery-Programm importiert werden: import module namespace pcx="http://dililab.de/teaching/2023ws-infostruk/podcast-xq/0.1" at "/Users/hendrik/Desktop/podcast-xquery.xqm";
Last changed3 months ago