[xquery-talk] distinct-values in Where Clauses

Wei, Alice J. ajwei at indiana.edu
Thu Jan 17 12:35:50 PST 2008


Hi,

  I have found out that the problem why I was having these issues is because I have some markup with different attributes in the <head> section. So that is probably why some markup of

<div>
<head type="main>PHP and MySQL</head>
<head type="sub">Web Design and Database Management</head>
<p>So far I have not seen full support of XQuery usage here.</p> </div>

would be treated as two different elements and called twice.
If I am assuming this correct, the way to elude from this problem of having two headings that are "exactly the same" not to be displayed twice is to put an additonal "where" clause to eliminate the output of such, right?

Or, is there another method?

======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei at indiana.edu
________________________________________
From: Michael Kay [mike at saxonica.com]
Sent: Thursday, January 17, 2008 11:14 AM
To: Wei, Alice J.; talk at x-query.com
Subject: RE: [xquery-talk] distinct-values in Where Clauses

You replied to me off-list (please don't do that!):

=================================
Hi,

   Actually it is hard to describe the situation I am having here.
 I am processing some nodes of information using a lot of different "or" in
my query structure.

Here is the XQuery:

declare boundary-space preserve;
declare variable $text external;
<text>{
for $find in doc("resume.xml")//div,
$head in $find/head,
$desc in $find/p
where
distinct-values((contains($desc,$text)) or (contains($head,$text)))
return <div> <head>{data($head)}</head> <p>{data($desc)}</p> </div>
} </text>

XML:

<div>
<head>PHP and MySQL</head>
<p>So far I have not seen full support of XQuery usage here.</p> </div>

<note>
<head>PHP5</head>
<p>XML nor XQuery does not seem to be even available.</p> </note>

If I set the $text variable to XQuery, the result  is supposed to be
appearing only once for each, but now it gives me two results for each. Can
anyone help out?

Thanks to those who can help.
====================

You've done half of what I asked, which is to show the input. You haven't
done the other half, which is to show the desired output (or the output you
are actually getting).

Unfortunately your input isn't well-formed XML (there is no outer wrapper
element) so I can't try it for myself. Since your input has only one <div>
element I find it hard to see why there should be any duplicates. I don't
really know what you mean by "appearing only once for each" - each what?

Anyway, as I already explained, it's obvious why the distinct-values() does
no good.

Michael Kay
http://www.saxonica.com/



More information about the talk mailing list