Dynamische Elementnamen ?

Wednesday, 8 December 2010 · 4 messages
BM
Burkert, Michael8 Dec 2010 14:38 #
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
MS
Michael Seiferle8 Dec 2010 16:17 #
Hi Michael, ja das ist möglich:
Quoted text · Burkert, Michael · 1 line
> return element {$nodeName} element child {$content}
Die computed Element constructors helfen dir hier weiter:
Quoted text · Burkert, Michael · 6 lines
> 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
Quoted text · Burkert, Michael · 28 lines
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 at mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
AW
Andreas Weiler8 Dec 2010 17:33 #
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
Quoted text · Michael Seiferle · 57 lines
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 at mailman.uni-konstanz.de >> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk > _______________________________________________ > BaseX-Talk mailing list > BaseX-Talk at mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
AW
Andreas Weiler8 Dec 2010 17:36 #
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
Quoted text · Andreas Weiler · 78 lines
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 at mailman.uni-konstanz.de >>> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk >> _______________________________________________ >> BaseX-Talk mailing list >> BaseX-Talk at mailman.uni-konstanz.de >> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk > > _______________________________________________ > BaseX-Talk mailing list > BaseX-Talk at mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

⚡Generated with XQuery