Personal tools
You are here: Home Ressources XML
Document Actions

XML

by François Rioult last modified 2008-07-01 16:28

accès eXist sur unicaen :

https://tomcat.info.unicaen.fr/exist-1.1.1-newcore/admin/admin.xql
https://tomcat.info.unicaen.fr/exist-1.1.1-newcore/sandbox/sandbox.xql
/usr/local/eXist/bin/client.sh, URL xmldb:exist://tomcat.info.unicaen.fr/exist-1.1.1-newcore/xmlrpc

installation de pages xql en local

peuvent être stockés dans la base de données elle-même (cf. Developer's Guide 1. Writing Web Applications using XQuery 1.4. Using the REST Server and Stored XQueries).
ajouter
declare option exist:serialize "method=xhtml media-type=text/html";

pour modifier l'en-tête de la page envoyée au navigateur

l'accès se fait ensuite à http://127.0.0.1:8080/exist/rest/db/home/frioult/test/guess.xql

validation des documents avec eXist :

  • http://wiki.exist-db.org/space/NewSchemaValidation
  • http://wiki.exist-db.org/space/XmlValidation

test de l'existence d'un fichier


trouvé dans ftp://down:chinaw3c@202.181.163.197/resource/XSLT&XPath.pdf page 118


Accès à plusieurs fichiers XML dans une feuille XSL

Préliminaires

  • définir une variable ressource :
    <xsl:variable name="itemDico" select="document('items.xml')"/>
  • définir une clé
    <xsl:key name="itemKey" match="item" use="@name"/>

Accès à l'association d'une clé

  • définir une variable pour la valeur de la clé
    <xsl:variable name="itemName" select="@name"/>
  • requête directe Xpath :
    <img src="{$itemDico/items/item[@name=$itemName]}.gif"/>
  • requête par construction avec un for-each
    <xsl:for-each select="$itemDico">
       <xsl:value-of select="key('itemKey',$itemName)"/>
    </xsl:for-each>
  • key ne renvoie rien lorsque la relation n'est pas vérifiée, il n'y a pas d'accès direct

Exemple XSLT : jointure de deux fichiers (récupérer le forumid)

<xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="threads" select="document('/users/ens/frioult/bases/forum/thread.xml')"/>

<xsl:template match="mavideo2">
<posts>
<xsl:for-each select="post">
<post>
<xsl:variable name="threadid" select="threadid"/>
<forumid>
<xsl:value-of select="$threads/mavideo2/thread[threadid=$threadid]/forumid"/>
</forumid>
<xsl:apply-templates />
</post>
</xsl:for-each>
</posts>
</xsl:template>

<xsl:template match="mavideo2/post/*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>


</xsl:stylesheet>



« June 2011 »
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
 

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: