Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    Introduzione a xQuery... non riesco nemmeno a capire da dove partire

    allora

    mi sto informando sull'uso di xquery perchè per motivi di lavoro sto facendo un sito, le cui newsletter sono basate per l'appunto su xquery.

    il problema è che non riesco nemmeno a capire se serve un server web, un database, o cosa... ho guardato sul sito del w3c, su w3schools... tutit partono dal presupposto che ho il file xml, metto il codice xquery chissàdove e tutto funziona, ma non è così facile

    chi mi da una mano? xquery for dummies...

  2. #2
    Utente di HTML.it L'avatar di Sidur
    Registrato dal
    May 2005
    Messaggi
    29
    Sto iniziando anche io a lavorare con XQuery e mi è stato consigliato il database eXist che permette le interrogazioni in XQuery.

    Lo puoi trovare qui: http://exist.sourceforge.net/


    Ci sono soltanto perseguitati e persecutori, affaccendati e stanchi...

  3. #3
    Io l'ho istallato ma non riesco a farlo funzionare...

    Quando faccio partire lo startup mi dice che il percorso non è valido...

    Che posso fare?

  4. #4
    Utente di HTML.it L'avatar di Sidur
    Registrato dal
    May 2005
    Messaggi
    29
    Originariamente inviato da pigscleaner
    Io l'ho istallato ma non riesco a farlo funzionare...

    Quando faccio partire lo startup mi dice che il percorso non è valido...

    Che posso fare?
    Hai eseguito l'installazione su linux o windows?
    Quello che avresti dovuto fare è più o meno questo:
    - Sulla console: java -jar eXist-1.1.1-newcore.jar
    - Si avvia un'interfaccia per l'installazione
    - Concludi l'installazione
    - Avvii il server con il launcher

    E' a questo punto che ti da' l'errore? Non mi è mai capitato, verifica se l'hai installato correttamente e se Java è funzionante. :master:

    Ciao
    Ci sono soltanto perseguitati e persecutori, affaccendati e stanchi...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Ciao a tutti,
    sono anche io nella stessa situazione: tutte le guide dicono come scrivere le query in XQuery ma nessuno spiega dove inserirle e come fare a farle funzionare.

    Il mio obiettivo è quello di creare un piccolo sito web che genera pagine a partire da interrogazioni a una base dati in xml: i risultati delle interrogazioni mi consentono di costruire le pagine del sito.

    Ma, cosa che credo, c'è bisogno di un interprete server-side per xquery?

    Inoltre, supponendo di utilizzare il già consigliato eXist, devo utilizzare una stringa di connessione al db? Qualcuno sa dirmi qual'è?

    Vi prego, davvero non so come risolvere questi dubbi.

    Grazie

  6. #6
    Utente di HTML.it L'avatar di Sidur
    Registrato dal
    May 2005
    Messaggi
    29
    Originariamente inviato da filo84

    Il mio obiettivo è quello di creare un piccolo sito web che genera pagine a partire da interrogazioni a una base dati in xml: i risultati delle interrogazioni mi consentono di costruire le pagine del sito.

    Ma, cosa che credo, c'è bisogno di un interprete server-side per xquery?

    Inoltre, supponendo di utilizzare il già consigliato eXist, devo utilizzare una stringa di connessione al db? Qualcuno sa dirmi qual'è?
    Ciao Filo84, quale linguaggio di programmazione stai utlizzando server-side?

    Nel caso in cui tu abbia controllo sul tuo server, questi sono dei possibili approcci:

    Quando ho realizzato un websimile a quello che vuoi fare te (in architettura) ho usato PHP.
    Ho poi scaricato e incluso il modulo XML-RPC (http://phpxmlrpc.sourceforge.net/) per collegarmi ad un database eXist (che ho introdotto un paio di risposte prima) che conteneva i file XML. XML-RPC e' il modulo che ho utilizzato anche per inviare le query al db.
    Per facilitare la stampa a schermo dell'XML risultante dalle query xquery, ho utilizato il modulo XML-Serializer (http://pear.php.net/package/XML_Serializer/)

    Se stai utilizzando ASP, sono sicuro che ci sono dei moduli equivalenti. Se stai usando JSP, allora vedi di includere Saxon (http://saxon.sourceforge.net/) e tutto sara' piu' semplice.

    eXist (il db xml di cui ho parlato prima) funziona anche da server web, per cui potresti utilizzare xquery come linguaggio di programmazione server side (anche per creare le pagine html, ecc).

    Un'altra possibilita' e' di utilizzare Saxon con una chiamata system a java sul server.

    Se invece NON hai controllo sul server, ma, per esempio, hai solo l'uso di php e mysql come ti permettono molti host relativamente economici, allora puoi utilizzare dei moduli realativi al tuo linguaggio di programmazione che interpretano XQuery, ma di solito non sono potenti e completi quanto Saxon o eXist.
    Per PHP: XQuery Lite (http://phpxmlclasses.sourceforge.net...uery_lite.html)

    In bocca al lupo,
    Sidur
    Ci sono soltanto perseguitati e persecutori, affaccendati e stanchi...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Ciao Sidur,
    grazie mille per la tua disponibilità e precisione.

    Utilizzare xquery come linguaggio di programmazione lato server è proprio quello che stavo cercando di fare.
    Ho seguito le tue indicazioni e sono riuscito ad interrogare i dati utilizzando exist senza problemi.
    La mia difficoltà ora è nella presentazione della risposta... ti spiego:

    dopo non poche peripezie sono riuscito a fare in modo da ottenere, invocando il file.xql, una pagina formattata mediante un xsl (che a sua volta richiama un css). In poche parole la pagina è esattamente come deve essere visualizzata all'utente, ma è un file .xql

    Mi chiedo: è giusto che sia così, o dovrei lavorare su un altro file e/o in un altro modo?

  8. #8
    Utente di HTML.it L'avatar di Sidur
    Registrato dal
    May 2005
    Messaggi
    29
    Originariamente inviato da filo84
    Ciao Sidur,
    grazie mille per la tua disponibilità e precisione.

    Utilizzare xquery come linguaggio di programmazione lato server è proprio quello che stavo cercando di fare.
    Ho seguito le tue indicazioni e sono riuscito ad interrogare i dati utilizzando exist senza problemi.
    La mia difficoltà ora è nella presentazione della risposta... ti spiego:

    dopo non poche peripezie sono riuscito a fare in modo da ottenere, invocando il file.xql, una pagina formattata mediante un xsl (che a sua volta richiama un css). In poche parole la pagina è esattamente come deve essere visualizzata all'utente, ma è un file .xql

    Mi chiedo: è giusto che sia così, o dovrei lavorare su un altro file e/o in un altro modo?
    E' giusto che sia cosi'. E' equivalente ad avere un file php... es: http://www. un sito .it/index.php
    Altro esempio preso dal sito ufficiale di exist: http://demo.exist-db.org/exist/xquery/functions.xql

    Penso che ci sia una funzione per nascondere l'indirizzo dalla barra se vuoi, o forse e' un parametro di configurazione del server, non son sicuro.

    Credo proprio che l'approccio XQ + XSL + CSS sia giusto, in particolare se i risultati della tua interrogazione sono complessi. Ma per risultati gestibili all'intero di espressioni FLOWR eviterei XSLT completamente.

    Esempio:
    codice:
    <html>
        <head>
            <title/>
            <style type="text/css">        
                        
            </style>
        </head>
        
        <body>
        {
        let $elementi := collection("/home/usr/xml/")//elemento
        for $e in $elementi
            order by $e/@attr ascending
            return 
                <table>
                    <tr>
                        <td>Elemento</td>
                        <td>Attributo</td>
                    </tr>
                    <tr>
                        <td>{$e/text()}</td>
                        <td>{string($e/@attr)}</td>
                    </tr>
                </table>
        }
        </body>    
    </html>
    E probabilmente puoi cavartela per gestire cose piu' complesse con funzioni e chiamate alle funzioni. Per esempio (preso da call.xq in eXist/samples/xquery/call.xq)

    codice:
    declare namespace f="urn:my-functions";
    
    declare function f:plus($a as xs:integer, $b as xs:integer) {
    	$a + $b
    };
    
    <body>
    	
    
    The sum of numbers 1 to 4 is:
    	{seq:fold(util:function("f:plus", 2), 1 to 4, 0)}</p>
    </body>
    Purtroppo non ho sperimentato abbastanza con xquery come linguaggio di programmazione lato server, ma credo che sia abbastanza potente se ci si abitua alla sintassi e al modo di programmare per "query".

    Ciao
    Ci sono soltanto perseguitati e persecutori, affaccendati e stanchi...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Ciao Sidur,
    ancora grazie mille per i preziosi consigli!

    Ti scrivo la soluzione che ho adottato per la formattazione dei risultati delle xquery: è efficace anche se, forse, non proprio pulitissima:

    - ho creato una variabile: let $s:=<?xml-stylesheet href="style.xsl" type="text/xsl"?>
    - l'ho stampata in testa ai risultati della xquery.

    Il file generato è un xml puro, manipolato poi dallo style.xsl che, come ti dicevo, richiama il css.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Ciao a tutti,
    rispolvero questo vecchio topic riallacciandomi al discorso fatto con Sidur: vorrei riuscire a costruire le pagine direttamende in xquery + css, senza l'utilizzo di xsl.

    Allora ho portato il codice html scritto nell'xsl dentro al file xql, ottenendo in output (risultato dell'elaborazione xquery) una cosa di questo tipo:
    codice:
    <html>
        <head>
            <title>Concerti</title>
            <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
            <link rel="stylesheet" type="text/css" media="screen" href="templates/css/style.css"/>
        </head>
        <body>
            <div id="container">
    
                <div id="selector">
                    
    
    Testo di prova</p>
                </div>
                <div id="header">
                    <h1>header di prova</h1>
                </div>
            </div>
    
        </body>
    </html>
    Il problema è che il codice non viene trasformato dal css e mi viene presentato il contenuto come se fosse un file xml normale.

    Cosa sbaglio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.