cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Glorieux <frederic.glori...@ajlsm.com>
Subject Re: formulaires,relations N,M et eXist...
Date Wed, 15 Feb 2006 17:56:42 GMT

> Bonjour,

Je me permets de partir de ce point car ma proposition diverge.
J'aborderais le problème en me disant, j'aimerai que mes documents XML 
seuls et sans relations continuent à tenir debout (export/import, pas 
toujours en contexte de formulaires cocoon/exist).

Je fonctionnnerai sur 2 collections, les acteurs, et les films, dans 
l'esprit de 2 collections de pages html avec des liens href entre elles. 
Cela ferait un XML du genre


<acteur xml:id="acteur-code1">
   <nom>Chaplin, Charles</nom>
   <filmo>
     <film date="1929" xlink:href="film-code1">Tout de même un titre</film>
     <film date="1934" xlink:href="film-code2">Pour que les docs 
tiennent debout</film>
     <film  date="1908" xlink:href="film-code2">Même sans liens</film>
   <filmo>
</acteur>

<film xml:id="film-code1">
   <titre>Les charlots font du ski</titre>
   <distribution>
     <!-- Sur l'affiche de ce film Charlie Chaplin apparaît sous son 
pseudo -->
     <acteur xlink:href="acteur-code1">Charlot</film>
     <acteur xlink:href="acteur-code2">Pieplu, Claude</film>
   <distribution>
</acteur>

L'affichage d'une notice acteur ou d'une notice film ne coûte pas de 
requêtes, il suffit de transformer le lien pour que quelque chose 
réponde au clic.

Le problème est déplacé sur la production de la notice.

Tout d'abord, le lien doit être optionnel (le temps par exemple de créer 
la notice d'un acteur, pendant que l'on renseigne un film). De toute 
façon, dans ce genre de catalogues, il est rare d'assurer un modèle 
fermé (il y a des acteurs secondaires pour lesquels on ne voudra pas 
faire de notices, de même pour certains films).

J'ai une fiche acteur sous les yeux, j'entre son nom etc, pas de pb.
Pour sa filmo, il me faut un bouton qui ouvre un popup et me permet de 
cherche la base des films, et rappatrier dans le formulire acteur le 
titre, la date et l'identifiant. Je peux rajouter d'autres films dans la 
carrière de cet acteur, laissant à plus tard de leur donner un lien (je 
n'ai pas sous les yeux la fiche de tous les films, avec en particulier 
leur distribution). J'ai tout de même un bouton "créer la notice film" 
s'il on souhaite. Un dernier gadget gentil, c'est un proposition de 
films ou dans la distribution, des acteurs avec un nom approchant ont 
déjà été proposés (plein texte).

La suppression d'un acteur n'entraîne pas la suppresion de sa ligne dans 
la distribution d'un film, mais uniquement de son lien-identifiant.

Une base XML se prête bien au problème initial posé
film <> auteur

Un modèle SQL aurait caricaturé le besoin. Par exemple, il obligerait à 
créer une ligne pour n'importe quel acteur ou film, du coup, beaucoup 
d'entrées presque vides, et l'on se trouve avec des notices pauvres et 
très peu de validation.

Le problème d'une base XML, c'est que si les relations sont plus 
souples, il faut assurer à la main l'intégrité relationnnelle. C'est à 
cet endroit où la fonction fn:id() permet de vérifier les liens morts.


-- 
Frédéric Glorieux (AJLSM, http://ajlsm.com)

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message