I’m looking for a way to find horizontal tabulations (unicode 0009) in ‘empty’ elements.
I’ve tried the following xquery:
declare namespace tf=“http://namespaces.softwareag.com/tamino/TaminoFunction”
for $a in input()/self_test
where tf:containsText($a//emphasis, " ")
return $a/@identifier
It seems as if this xquery returns all documents. Because when I use … where tf:containsText($a//emphasis, ""), I get the same amount of documents.
I’ve studied the tamino documentation on transliteration (Unicode and text retrieval) and I wonder if it’s possible to add a tabular stop (as a character) to the existing transliteration. I did a first attempt, but I wasn’t successful. It seemed as if tamino ignored the query.
Am I thinking into the right direction? Would this be the right way to be able to search for tabular stops?
One other thing, on the W3C-site (http://www.w3.org/TR/2004/WD-xquery-20041029/#doc-xquery-SequenceType) I found that it should be possible to search for unicode characters in an xquery. The search string could for example look like “€99.50” when you’re searching for “?99.50”. Could I get this to work in tamino? If I create a query like:
declare namespace tf=“http://namespaces.softwareag.com/tamino/TaminoFunction”
for $a in input()/self_test
where tf:containsText($a//emphasis, “	*”)
return $a/@identifier
I get error code “INOXIE8306 Invalid cursor position”
I would be very grateful if someone could advise me.
You could do it like this:
for $a in input()/self_test
where contains($a//emphasis, "	")
return $a/@identifier
Be aware that there is no index support for the contains() function.
No problem with a literal Euro sign, provided you are using a proper encoding for your request. Of course you could use a character reference (“€”) again to circumvent encoding problems.
[This message was edited by Gunther Rademacher on 04 February 2005 at 16:30.]
Hi,
yo write
I’ve tried the following xquery:
declare namespace tf=“http://namespaces.softwareag.com/tamino/TaminoFunction”
for $a in input()/self_test
where tf:containsText($a//emphasis, " ")
return $a/@identifier
It seems as if this xquery returns all documents. Because when I use … where tf:containsText($a//emphasis, "“), I get the same amount of documents.
yes, * stands for a single word in this case, because U+0009 is a separator by default.
You can search for U+0009 if you add the following to ino:transliteration:
<ino:character ino:class=“single” ino:value=” “/>
Remember to recreate all text indexes involved.
Then an XQuery such as
declare namespace tf=“http://namespaces.softwareag.com/tamino/TaminoFunction”
for $i in input()/*
where tf:containsText($i,” ")
return $i
will be successful.
Regards
Harald
Thanks to your replies I’ve done some additional experiments and I’ve seen the proof with my own eyes.
I’ve made a test-document, containing the EURO-sign (utf-8 encoding). I got back the right document with xquery…where tf:containsText($a, “€”)…
But as you wrote, the horizontal tabulation is a tricky one. Guess I’ll have to work on my transliteration-modification-skills.
Regards, Bart
Of course I wanted to write:
I’ve made a test-document, containing the EURO-sign (utf-8 encoding). I got back the right document with xquery…where tf:containsText($a, “€”)…
instead of
Bart.