[spip-dev] SPIP et XML

J'ai jeté un oeil à XML, l'indexation ...

J'ai trouvé un truc plus concret concernant PHP, XML et XSLT.

Il y a une lib C++ (utilisable en PHP) qui utilise Expat et qui prend du XML
en entrée et le sort en (X)HTML, ...
Elle s'appelle Sablotron :
http://www.gingerall.com/charlie/ga/xml/p_sab.xml
http://www.gingerall.com/charlie/ga/xml/x_sabphp.xml

Un didacticiel en français :
http://www.neokraft.net/tutorial/index.php?book=xslt/xslt

Un exemple plus concret en anglais :
http://www.dotvoid.com/article_condensed.php?itemID=10

ça permettrai de séparer plus facilement le code, des données, de
l'affichage.
Données: XML (dans une table MySQL ou dans le système de fichier de l'OS)
Indexeur SPIP
Séparation données/affichage XSLT : des squelettes quoua.
A utiliser au moins pour la partie privée, mais pourquoi pas pour la public
(ça impose une réforme des squelettes actuels, mais si ça reste clair ...)

Y-a-t-il des amateurs pour faire une maquette ?

Yves

PS:
pour ne pas perturber les rédacteurs habitués aux raccourcis SPIPs {{{ }}}
etc., ça doit être possible assez facilement de transformer des articles
SPIP XML en articles SPIP classiques.
Par contre l'inverse n'est peut-être pas vrai.
(mais il reste les bons vieux grep)

Données: XML (dans une table MySQL ou dans le système de fichier de l'OS)

Manipulating XML with Sablotron, PHP and MySQL
http://genomenews.free.fr/tutorials/sablot.html

Yves

Bonjour,

Si vous êtes intéressé par Sablotron, j'ai fait une maquette sur free qui fonctionne très bien.

http://mfrankel.free.fr/maquette/

utilisateur : maquette mot de passe : maquette

J'avais une autre maquette plus généraliste sur un autre serveur mais je l'ai retirée car ce site est devenu le site www.actionconsommation.org développé avec SPIP.

Le développement avec SPIP m'a d'ailleurs obligé à créer des redondances (je les avais éliminées avec XML) que je n'aurais probablement pas eues si j'avais pu utiliser "inclure" à ce moment là.

Et j'avoue que j'aimerais bien avoir un système de publication qui soit basé sur XML qui est standard et devrais être accessible au plus grand nombre dans peu de temps plutôt que d'assister à l'extension de plus en plus complexe d'un langage propriétaire.

Maurice Frankel

Salut,

Et j'avoue que j'aimerais bien avoir un système de publication qui soit
basé sur XML qui est standard et devrais être accessible au plus grand
nombre dans peu de temps plutôt que d'assister à l'extension de plus en
plus complexe d'un langage propriétaire.

Le problème : compare la différence de complexité entre un squelette
SPIP et une feuille XSL. Je n'appelle pas ça "accessible au plus grand
nombre". De plus XSL ne spécifie rien quant à la façon de récupérer
les données (contrairement aux boucles SPIP).

Amicalement

Antoine.

Je suis assez d'accord. Tout migrer vers une base XML est une belle idée sur le fond, mais montera d'un gros cran la connaissance technique nécessaire à la maintenance de la base. C'est quand même facile à utiliser, une base relationnelle, avec phpmyadmin etc, les gens ont l'habitude.

   En revanche, que pensez-vous de l'idée, pour les utilisateurs "avancés", de permettre d'étendre en ajoutant juste un moteur XSL qui permette d'interpréter du XML stocké dans des champs avec une feuille XSL directement dans les squelettes ? Ça resterait très générique et (à mon sens), propre. C'est une solution communément utilisée de mixer du XML et du relationnel pour la publication de contenus structurés...

Le problème : compare la différence de complexité entre un squelette
SPIP et une feuille XSL.

C'est sûr, c'est un truc d'informaticien :slight_smile:
Mais quand même "on" parle de XML comme la lingua franca (langue
internationnale d'après Babylon).

XML expliqué aux débutants: XML expliqué aux débutants

Je n'appelle pas ça "accessible au plus grand
nombre". De plus XSL ne spécifie rien quant à la façon de récupérer
les données (contrairement aux boucles SPIP).

Pour la partie privé ce n'est pas un problème.

Pour la partie public, est-il possible de retourner le problème :
tu fait un squelette SPIP en (x)html avec des balises SPIP reliftées.
(les mêmes noms, même emplacement, ... mais xml : <spip:titre />,
<spip:auteur />)
un peu comme ModeliXe quoi.

ça ne révolutionne pas trop les habitudes des spipeurs non informaticiens
(et ça simplifiera peut-être la syntaxe spip : [(#champ|filtre)] j'ai du mal
parfois à savoir si je doit mettre [ ou ( ou les deux ).

Et tu te sers de XSLT pour parser le squelette et remplacer/traiter les
balises SPIP.

Je dis une bêtise ?

Yves

Amicalement

Antoine.

Bonjour,

Je suis d'accord sur le fait qu'il est probablement difficile de stocker les articles directement en XML et qu'il faudrait probablement continuer à utiliser une base de données.
Sur la complexité, j'ai fait des expériences qui permettent d'avoir des squelettes XML très simples avec une technique d'appel proche de celle des "boucles" SPIP. Le tout géré par des feuilles XSL qui n'étaient pas si compliquées parce que basées sur ces squelettes XML.
Mais, cela ne m'empêche pas dans le cas présent d'utiliser SPIP.

Cordialement
Maurice

Je suis d'accord sur le fait qu'il est probablement difficile de stocker

les articles directement en XML et qu'il faudrait probablement continuer à
utiliser une base de données.

SDX en V1 utilise une base SQL pour stocker ses données XML.
Dans la V2, les fichiers XML sont stockées direcment dans le système de
fichier ou n'importe où (via une URL).
Dans tous les cas il y a un moteur de recherche fulltext à côté, un peu
comme le moteur de SPIP.

Sur la complexité, j'ai fait des expériences qui permettent d'avoir des

squelettes XML très simples avec une technique d'appel proche de celle des
"boucles" SPIP. Le tout géré par des feuilles XSL qui n'étaient pas si
compliquées parce que basées sur ces squelettes XML.
Est-ce possible de télécharger ça ?

Mais, cela ne m'empêche pas dans le cas présent d'utiliser SPIP.

Ni même à l'avenir.
Je ne veux pas un système XML contre (deux barrils de :wink: ) SPIP.
Si la structure de SPIP doit évolué pour s'adapter facilement aux souhaits
de chacun, permettre une internationalisation et une accessibilité (côté
privé)...

... ça risque de devenir très lourd et très compliqué.

Je ne vois XML/XSLT comme un outils "actuel" pour poursuivre le
développement de SPIP, et au-delà, de l'information qu'il transporte.

A+

Yves

Cordialement
Maurice

Je voudrais ajouter que dans un système de publication qui utiliserait ces techniques, les feuilles XSL viendraient à la place de la plus grande partie du code PHP qui n'est lui-même pas accessible aux rédacteurs lambda.
L'interface pour ce type d'utilisateurs pourrait rester très proche de ce qu'elle est aujourd'hui.

Maurice

Bonjour à tous,

Un petit mot pour ajouter mon grain de sel dans le débat SPIP/XML...

Vu de (très) loin, il y a qd même beaucoup de simulitudes entre les deux:
- les balises SPIP, comme les propriétés XML, ajoute du relief à un contenu,
- les squelettes SPIP, comme XSL, décrit le formatage du contenu.

Bref, SPIP et XML, même combat.

La différence est que SPIP est aujourd'hui opérationnel (très facilement) dans le monde web francophone, alors que XML met du temps à s'imposer et nous savons tous (enfin, peut-être ?) qu'il s'imposera très bientôt tel une 'world company'.

(sans noter le fait qu'il suffit de PHP et MySQL pour SPIP, et plein de trucs d'informaticiens pour XML/XSLT...)

Alors pourquoi pas définir un point de convergence dans un avenir prochain ? (puis faire une OPA sur le W3C ???)

Philippe

Bref, SPIP et XML, même combat.

je respire, j'étais au bord du suicide :slight_smile:

(sans noter le fait qu'il suffit de PHP et MySQL pour SPIP, et plein de
trucs d'informaticiens pour XML/XSLT...)

Ah bon ?

pour info, XSLT (sablotron) est fourni en standard avec PHP.
XML (expat) depuis plus longtemps encore.

Il suffit de mettre supprimer la virgule dans le fichier php.ini et tu as
XML/XSLT à ta disposition.

Les sources XML, XSLT je les "triture" à la main tout comme les sources
HTML.

Je sais, les informaticiens sont des mecs barbus, lunatiques, grognons mais
ils ne font pas que des trucs compliqués et bizaroïdes :-))

D'ailleurs, j'ai coupé ma barbe :wink:

Amicalement,

Yves

pour info, XSLT (sablotron) est fourni en standard avec PHP.
XML (expat) depuis plus longtemps encore.

Non. Ce n'est pas le cas chez tous les hébergeurs.

Il suffit de mettre supprimer la virgule dans le fichier php.ini et
tu as XML/XSLT à ta disposition.

La majeure partie des utilisateurs actuels de SPIP n'ont pas accès à
la config du serveur.

En gros, pour que le fond de ma pensée soit bien clair, je suis
d'accord que des choses peuvent être améliorées dans SPIP
(heureusement !), que XML peut être un moyen d'y parvenir pour
certains points, et qu'une version 2 de SPIP pourrait s'appuyer sur
les évolutions que PHP a connu depuis sa version 4.1, mais il faut que
la version 1.x soit d'abord bien figée, pour que les utilisateurs
actuels ne soient pas piégés ...

-Nicolas

Bon je fais une dernière réponse sur le sujet, puis j'essaie d'avancer sur
mon code ...

pour info, XSLT (sablotron) est fourni en standard avec PHP.
XML (expat) depuis plus longtemps encore.

Non. Ce n'est pas le cas chez tous les hébergeurs.

Je parle de PHP sur http://www.php.net/, pas de la version 0.1b sur le
serveur du pseudo hébergeur gratuit XXXX.

La majeure partie des utilisateurs actuels de SPIP n'ont pas accès à
la config du serveur.

je le sais bien, et j'ai compris que SPIP est fait pour le quidam qui n'a
aucune connaissance en gestion de serveurs, et qui n'a pas les moyens de
s'en payer un...

Ok. Je trouve ça VRAIMENT bien.
Mais par contre, les quidams peuvent faire jouer la concurrence, envoyer un
mel à leur webmaster en demandant poliment de mettre à jour PHP et d'activer
l'extension X.
Quelqu'un parlait de "monter" une association SPIP, pourquoi pas, se
regrouper pour faire pression sur les hébergeurs...

En gros, [...] je suis d'accord que des choses peuvent être améliorées dans

SPIP

[...] et qu'une version 2 de SPIP pourrait s'appuyer sur
les évolutions que PHP a connu depuis sa version 4.1,

Donc, y'a pas d'problèmes :slight_smile:

mais il faut que la version 1.x soit d'abord bien figée,
pour que les utilisateurs actuels ne soient pas piégés ...

pendant ce temps-là, je vais essayer d'avancer, pas ce que si j'attend, XML
ne sera plus qu'un fossile, PHP n'existera même plus ... :slight_smile:

Yves

Coucou,

Les sources XML, XSLT je les "triture" à la main tout comme les sources
HTML.

Je sais, les informaticiens sont des mecs barbus, lunatiques, grognons mais
ils ne font pas que des trucs compliqués et bizaroïdes :-))

Je vois ce que tu veux dire...

D'ailleurs, j'ai coupé ma barbe :wink:

Et j'ai de la chance d'être imberbe... :wink:

A bientôt,
Philippe Tran