Hi Mindie, Your code seems to contain a typo. You say you define getTeasers locally, and you do so with the local prefix. But in the following code you are calling getTeasers with the common prefix. I am not sure whether that should make any difference, and it might not be relevant to your main issue, but thought it wise to mention it anyway.
Kind regards, Geert > Drs. G.P.H. Josten Consultant http://www.daidalos.nl/ Daidalos BV Source of Innovation Hoekeindsehof 1-4 2665 JZ Bleiswijk Tel.: +31 (0) 10 850 1200 Fax: +31 (0) 10 850 1199 http://www.daidalos.nl/ KvK 27164984 De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend. > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Mindie Sorenson > Sent: maandag 29 september 2008 22:54 > To: General Mark Logic Developer Discussion > Subject: RE: [MarkLogic Dev General] namespace problem > > I'm still having a problem with this. I have adjusted my > code so that it follows Mike's suggestions and also has my > getTeasers function inline and not in another module (which > is where I'd ideally like it to be). However, although I can > see the results, I still can't access specific elements (such > as title, text, etc.) within the resultset. I understand > that my results are in the default namespace, but I haven't > found a way to access them directly. Does anyone know how to do this? > > Here is my code: > > xquery version "1.0-ml"; > > import module namespace common = "commonFunctions" at > "../modules/commonFunctions.xqy"; > > declare variable $pageName := "labs"; > declare variable $locale := xdmp:get-request-field( "locale" > , "eng"); declare variable $src := xdmp:get-request-field( > "src", "02285"); > > > declare function local:getTeasers( $locale, $type, $pageName ) { > let $teasers := /[EMAIL PROTECTED] = > $locale]/[EMAIL PROTECTED] = $type][page = $pageName] > return $teasers > }; > > xdmp:set-response-content-type( "text/html" ), '<!DOCTYPE > html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">', > > let $righSashTeasers := common:getTeasers( $locale, "Right > Sash", $pageName ) return > > <html xmlns="http://www.w3.org/1999/xhtml"> > <head> > <meta http-equiv="Content-Type" > content="text/html; charset=utf-8" /> > <title>{ common:getString($locale, $pageName, > "webIndexTitle") }</title> > <link rel="stylesheet" href="css/reset.css" > type="text/css" media="screen" title="no title" charset="utf-8" /> > <!--[if IE]><link rel="stylesheet" > href="conference/css/ie.css" type="text/css" media="screen, > projection"><![endif]--> > <link rel="stylesheet" href="css/home.css" > type="text/css" media="screen" title="no title" charset="utf-8" /> > <link rel="stylesheet" type="text/css" > href="css/jquery.autocomplete.css" media="screen" /> > <link rel="stylesheet" href="css/labs.css" > type="text/css" media="screen" title="no title" charset="utf-8" /> > <script type="text/javascript" > src="/web/script/omniture.js"></script> > <script src="script/jquery-1.2.1.pack.js" > type="text/javascript"></script> > <!--[if lte IE 6]><script > src="script/jquery.bgiframe.min.js" > type="text/javascript"></script><![endif]--> > <script src="script/jquery.autocomplete.packed.js" > type="text/javascript"></script> > > <script src="conference/script/project.js" > type="text/javascript" charset="utf-8"></script> > <script src="conference/script/browse.js" > type="text/javascript" charset="utf-8"></script> > </head> > <body id="labs"> > <div id="main" class="clearfix"> > <div id="labs-featured"> > <div id="labs-welcome"> > <h1>{ > common:getString($locale, $pageName, "welcome") }</h1> > <p>{ > common:getString($locale, $pageName, "description") }</p> > </div> > <span> > { > let $featureTeasers := > local:getTeasers( $locale, "Feature", $pageName ) > for $teaser in > local:$featureTeasers > let $mindie := > xdmp:log($featureTeasers) > let $title as xs:string? := > $teaser/local:title > let $teaserText as xs:string? := > $teaser/local:text > let $imageName as xs:string? := > $teaser/local:image > let $url as xs:string? := $teaser/local:url > order by > xs:integer($teaser/@sequence) ascending > return > <div class="featured clearfix"> > <a href="{ $url }"><img > src="images/{ $imageName }"/></a> > <h3><a href="{ $url }">{ > $title}</a></h3> > <p>{ $teaserText }</p> > </div> > } > </span> > > </div> > <div id="latest-news"> > <h2>{ > common:getString($locale, $pageName, "latestUpdates") }</h2> > { common:getTeasers($locale, > "Right Sash", $pageName) } > </div> > </div> > > </body> > </html> > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Michael Blakeley > Sent: Friday, September 26, 2008 4:13 PM > To: General Mark Logic Developer Discussion > Subject: Re: [MarkLogic Dev General] namespace problem > > Mindie, > > I'd avoid setting the default element namespace in a prolog, > like that. > Instead, try something like this (porting to xquery 0.9-ml is > left as an > exercise): > > xquery version "1.0-ml"; > > declare variable $METADATA as element() := > <meta><title>this is the title</title></meta> ; > > declare function local:get-title($m as element(meta)) > as xs:string > { > $m/title > }; > > <html xmlns="http://www.w3.org/1999/xhtml"> > <head> > <title>{ local:get-title($METADATA) }</title> </head> <body> > <p>this is a test</p> </body> </html> > > Since local:get-title is outside the scope of the html xmlns > decl, it uses the default element namespace, which is still > the empty namespace. > > -- Mike > > Mindie Sorenson wrote: > > I have a .xqy file that calls the getTeasers function in > the common module: > > > > default element namespace="http://www.w3.org/1999/xhtml" > > import module namespace common = "commonFunctions" at > "../modules/commonFunctions.xqy" > > > > let $featureTeasers := common:getTeasers( $locale, "Feature", > > $pageName ) > > > > > > I then try to iterate over the results, but I get nothing > back except xml. I'm pretty sure it is because the results > are in a different namespace, but I can't find out how to > access them in the correct namespace in my for loop. > > > > <div id="labs-featured"> > > <div id="labs-welcome"> > > <h1>{ > common:getString($locale, $pageName, "welcome") }</h1> > > <p>{ > common:getString($locale, $pageName, "description") }</p> > > </div> > > { > > for $teaser in $featureTeasers/teaser > > let $title as xs:string? := $teaser/title > > let $teaserText as xs:string? := > $teaser/text > > let $imageName as xs:string? := > $teaser/image > > let $url as xs:string? := $teaser/url > > order by > xs:integer($teaser/@sequence) ascending > > return $title > > } > > > > </div> > > > > Can anyone help? > > > > Thanks > > Mindie > > > > > ---------------------------------------------------------------------- > > NOTICE: This email message is for the sole use of the > intended recipient(s) and may contain confidential and > privileged information. Any unauthorized review, use, > disclosure or distribution is prohibited. If you are not the > intended recipient, please contact the sender by reply email > and destroy all copies of the original message. > > > > > > > > > ---------------------------------------------------------------------- > > -- > > > > _______________________________________________ > > General mailing list > > [email protected] > > http://xqzone.com/mailman/listinfo/general > > _______________________________________________ > General mailing list > [email protected] > http://xqzone.com/mailman/listinfo/general > > ---------------------------------------------------------------------- > NOTICE: This email message is for the sole use of the > intended recipient(s) and may contain confidential and > privileged information. Any unauthorized review, use, > disclosure or distribution is prohibited. If you are not the > intended recipient, please contact the sender by reply email > and destroy all copies of the original message. > _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
