Dynamische Elementnamen ?
Hallo ! Frage: Ist es möglich Knotennamen dynamisch zu vergeben ? Konkret: <mod:Elementname1> soll dynamisch erzeugt werden. Abstrakt: <{$nodename}> Statische Vergabe von Knotenamen: declare function Model:Fkt ( $classes as xs:string) as node()* { for $class in $classes return <mod:Elementname1 rdf:about="{$class}"> </mod:Elementname1> }; Mit freundlichen Grüßen Michael B
Hi Michael, ja das ist möglich:
return element {$nodeName} element child {$content}
Die computed Element constructors helfen dir hier weiter:
let $name:= "Element1" let $class := "hi" let $contents := <foo ><br />Bar!</foo> return element {$name}{ attribute {"about"}{$class},$contents }
Du kannst dir in BaseX diese Constructors anzeigen lassen wenn du in der GUI das InfoPanel aktivierst und eine beliebige Anfrage der Form: let $foo := <a><b /></a> return $foo ausführst. Das InfoPanel zeigt dann folgenden Konstruktor an: Result: element { "a" } { element { "b" } { } } Hope this helps! Viele Grüße Michael Am 08.12.2010 um 14:38 schrieb Burkert, Michael:
Hallo !
Frage: Ist es möglich Knotennamen dynamisch zu vergeben ? Konkret: <mod:Elementname1> soll dynamisch erzeugt werden.
Abstrakt: <{$nodename}>
Statische Vergabe von Knotenamen:
declare function Model:Fkt ( $classes as xs:string) as node()* { for $class in $classes return <mod:Elementname1 rdf:about="{$class}"> </mod:Elementname1> };
Mit freundlichen Grüßen Michael B _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Hi Michael, als kurzes Beispiel noch folgendes: for $i in 1 to 10 return element {concat("a", 1 + $i) } { "x" } hier werden 10 Elemente mit den Elementnamen a1 bis a10 und dem Elementinhalt "x" erstellt. Grüße Andreas Am 08.12.2010 16:17, schrieb Michael Seiferle:
Hi Michael,
ja das ist möglich:
return element {$nodeName} element child {$content} Die computed Element constructors helfen dir hier weiter:
let $name:= "Element1" let $class := "hi" let $contents :=<foo><br />Bar!</foo> return element {$name}{ attribute {"about"}{$class},$contents } Du kannst dir in BaseX diese Constructors anzeigen lassen wenn du in der GUI das InfoPanel aktivierst und eine beliebige Anfrage der Form: let $foo :=<a><b /></a> return $foo ausführst. Das InfoPanel zeigt dann folgenden Konstruktor an: Result: element { "a" } { element { "b" } { } }
Hope this helps!
Viele Grüße Michael
Am 08.12.2010 um 14:38 schrieb Burkert, Michael:
Hallo !
Frage: Ist es möglich Knotennamen dynamisch zu vergeben ? Konkret:<mod:Elementname1> soll dynamisch erzeugt werden.
Abstrakt:<{$nodename}>
Statische Vergabe von Knotenamen:
declare function Model:Fkt ( $classes as xs:string) as node()* { for $class in $classes return <mod:Elementname1 rdf:about="{$class}"> </mod:Elementname1> };
Mit freundlichen Grüßen Michael B _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Oh sorry ich meinte von a2 bis a11... hier noch das XQuery Update dazu... for $i in 1 to 10 return insert nodes element {concat("a", 1 + $i) } { "x" } into root() Andreas Am 08.12.2010 17:33, schrieb Andreas Weiler:
Hi Michael,
als kurzes Beispiel noch folgendes:
for $i in 1 to 10 return element {concat("a", 1 + $i) } { "x" }
hier werden 10 Elemente mit den Elementnamen a1 bis a10 und dem Elementinhalt "x" erstellt.
Grüße Andreas
Am 08.12.2010 16:17, schrieb Michael Seiferle:
Hi Michael,
ja das ist möglich:
return element {$nodeName} element child {$content} Die computed Element constructors helfen dir hier weiter:
let $name:= "Element1" let $class := "hi" let $contents :=<foo><br />Bar!</foo> return element {$name}{ attribute {"about"}{$class},$contents } Du kannst dir in BaseX diese Constructors anzeigen lassen wenn du in der GUI das InfoPanel aktivierst und eine beliebige Anfrage der Form: let $foo :=<a><b /></a> return $foo ausführst. Das InfoPanel zeigt dann folgenden Konstruktor an: Result: element { "a" } { element { "b" } { } }
Hope this helps!
Viele Grüße Michael
Am 08.12.2010 um 14:38 schrieb Burkert, Michael:
Hallo !
Frage: Ist es möglich Knotennamen dynamisch zu vergeben ? Konkret:<mod:Elementname1> soll dynamisch erzeugt werden.
Abstrakt:<{$nodename}>
Statische Vergabe von Knotenamen:
declare function Model:Fkt ( $classes as xs:string) as node()* { for $class in $classes return <mod:Elementname1 rdf:about="{$class}"> </mod:Elementname1> };
Mit freundlichen Grüßen Michael B _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
participants (3)
-
Andreas Weiler -
Burkert, Michael -
Michael Seiferle