W3C home > Mailing lists > Public > www-ql@w3.org > October to December 2003

Re: XQuery implementations

From: Juha <jvierine@tml.hut.fi>
Date: Mon, 24 Nov 2003 01:38:15 +0200
Message-ID: <3FC144E7.8050509@tml.hut.fi>
To: www-ql@w3c.org

Hi,

Thank you everyone for your responses!

I am designing a system for accessing and modifying XML database content 
with XForms. This would enable you to do define dynamic web applications 
in a declarative way. I will most likely use XQuery for selecting the 
instance data for XForms. There is an example configuration file at the 
end of this e-mail.

As a test case or example, I am creating a web interface for editing the 
  definition files of a web-based exam system that I built last year for 
my university. It has an XML grammar for defining the exams, and I am 
tired of teaching the specs of my undocumented XML grammar to the people 
who create the exams ;)

Sorry about the errors in my example, I was trying out a similar query 
with XHive's online demo (without attribute testing), and that was my 
first two hours of learning XQuery, plus it was 4 am, and I just had my 
third lobotomy this year ;)

juha

here's an example of how you would setup a web application using the 
system (note that it's just a sketch right now):

<webapp xmlns="http://www.xsmiles.org/database/webapp-11-2003"
         xmlns:quiz="http://www.xsmiles.org/applications/webquiz">
   <info>
     <name>quiz</name>
     <database>
       <uri src="xmldb:exist://localhost:8080/exist/xmlrpc/db"/>
       <login name="admin" pass="admin"/>
       <collection name="quiz" path="/db/quiz"/>
     </database>
     <schema src="http://www.xsmiles.org/schemas/global.xsd"/>
   </info>

   <!-- Default is needed, because we might want to edit fragments of -->
   <!-- the complete collection, without transfering all the children -->
   <!-- to the client. For example, in this case, if a new chapter is -->
   <!-- added to the database, the question/* branch will be appended -->
   <!-- to the database as default data -->
   <defaultInstance
     xmlns="http://www.xsmiles.org/applications/webquiz">
     <data>
       <quiz>
         <config/>
         <intro/>
         <category>
           <question>
             <title/>
             <selectOne>
               <item/>
               <item/>
               <item/>
             </selectOne>
             <answer/>
           </question>
         </category>
       </quiz>
     </data>
   </defaultInstance>

<!-- each binding describes a mapping between a part of the xml tree -->
<!-- and a xforms editor -->
<binding name="quizes-edit" >
    <annotate>Edit all quizes</annotate>
    <instance target="data">
        <![CDATA[
          an XQuery statement to select the instance data from the DB
        ]]>
    </instance>
    <editor src="http://xsmiles.org/editors/quizes-editor.xhtml"/>
</binding>

<binding name="categories-edit">
    <annotate>Edit all categories in a quiz</annotate>
    <instance .../>
    <editor select="editors/catogories-editor"/>
</binding>
<webapp>


Xavier Franc wrote:
> Hello Juha,
> 
> why not try by yourself ? for the record, there
> are 5 open-source engines listed on the W3C site:
> - Fatdog's XQEngine
> - GNU's Qexo (Kawa-Query)
> - Lucent's Galax
> - Sourceforge's Saxon
> - Qizx/Open
> 
> By the way, I will be surprised if your query
> works as it is:
> in the where clause:  where @id = 'a'
> the path expression '@id' has no initial node(s), therefore
> -if I make no bloomer- a run-time error should be raised.
> 
> 
> 
>>> -----Original Message-----
>>> From: www-ql-request@w3.org [mailto:www-ql-request@w3.org]On Behalf Of
>>> Juha Vierinen
>>> Sent: Friday, November 21, 2003 5:19 AM
>>> To: www-ql@w3c.org
>>> Subject: XQuery implementations
>>>
>>> Hi,
>>>
>>> Does anyone know of a open source XQuery implementation that can do the
>>> following statement:
>>>
>>>
>>> for $quizes in document(/db/quiz/data)/quiz
>>>    for $categories in $quizes/category
>>>       for $questions in $categories/question
>>>       where @id = 'a'
>>>       return
>>>       <quiz>
>>>           {$quizes/@*}
>>>            <category>
>>>               {$categories/@*}
>>>                     {$question}
>>>            </category>
>>> </quiz>
> 
> 
Received on Sunday, 23 November 2003 18:46:15 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:17:16 UTC