Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Les fichiers de conf en xml, quel intérêt ?

144 réponses
Avatar
olive
Bonjour,

Pour installer un petit serveur Jabber (Prosody), j'ai eu à tripoter un
fichier de conf en xml. Je n'y connais pas grand chose, mais je me
demandais quel est l'intérêt d'utiliser ce format plutôt qu'un bête
fichier texte à éditer ? C'est une vraie question.

Par ailleurs, chaque fois que je cherche de la doc quand je veux faire
un truc un peu moins basique que d'habitude, je tombe sur le wiki
d'Ubuntu qui m'a bien aidé plus d'une fois. Je le trouve en fait assez
remarquable.


--
Olivier -- "On est comme tous les artistes, on croit à notre produit."
-+-groupe Début de Soirée-+-

10 réponses

Avatar
Tonton Th
On 10/20/2010 12:36 PM, Nicolas Richard wrote:

on analyse du contenu récupéré sur le web, on fera, j'imagine, plutôt
confiance à un algo bien fait qu'à l'entête "Content-Type".



C'est pour ça qu'à une époque du vbscript dans un madonna-nude.gif,
envoyé avec le bon content-type était quand même interprété, et
arrivait à ouvrir le porte-gobelet.

--
Ma coiffeuse est formidable - http://sonia.buvette.org/
Avatar
Nicolas George
Patrick Lamaizière , dans le message <i9mhmo$11p8$,
a écrit :
Si tu prends l'exemple de Xorg (pour régler le clavier en fr/latin 9) :


<snip>

Avantc'était quand même mieux :



Tu noteras quand même que les deux fichiers ne disent pas du tout la même
chose. On est passé d'un modèle où la liste des périphériques est définie
une fois pour toutes à un modèle où les périphériques ajoutés et enlevés au
système sont automatiquement détectés, et où donc il faut les moyens pour
reconnaître ceux qu'on veut et ceux qu'on ne veut pas.

Forcément, c'est plus complexe. La même chose dans un langage ad-hoc aurait
ressemblé à ça :

device_info {
device {
if(${info.capabilities} == "*input.keyboard*") {
merge(${input.x11_driver}, "kbd");
if(${/org/freedesktop/Hal/devices/computer:system.kernel.name}=="Linux") {
merge(${input.x11_driver}, "evdev");
}
merge(${input.xkb.Layout}, "fr");
merge(${input.xkb.Variant}, "latin9");
merge(${input.xkb.Option}, "compose:rwin");
}
}
}

Je t'accorde que la syntaxe XML choisie n'est pas du tout optimale, en
particulier les « type="string" » sont globalement inutiles, mais
l'essentiel de la complexité se situe dans les nouvelles fonctionnalités,
pas dans le XML.
Avatar
Tonton Th
On 10/20/2010 12:53 PM, Patrick Lamaizière wrote:

<?xml version="1.0" encoding="ISO-8859-1"?>

Section "InputDevice"

Du coup je suis bien d'accord avec Michel, on devrait les pendre, sans



Avec une corde enduite de harissa !!!

--
Ma coiffeuse est formidable - http://sonia.buvette.org/
Avatar
Tonton Th
On 10/20/2010 01:03 PM, Nicolas George wrote:

Forcément, c'est plus complexe. La même chose dans un langage ad-hoc aurait
ressemblé à ça :

device_info {
device {
if(${info.capabilities} == "*input.keyboard*") {
merge(${input.x11_driver}, "kbd");
if(${/org/freedesktop/Hal/devices/computer:system.kernel.name}=="Linux") {
merge(${input.x11_driver}, "evdev");
}
merge(${input.xkb.Layout}, "fr");
merge(${input.xkb.Variant}, "latin9");
merge(${input.xkb.Option}, "compose:rwin");
}
}
}



Voilà, ça, c'est humainement compréhensible, clair, logique, et
manipulable avec n'importe quel éditeur évolué. C'est un exemple
abstrait ou ça vient de quelque chose qui existe ?

Je t'accorde que la syntaxe XML choisie n'est pas du tout optimale, en
particulier les « type="string" » sont globalement inutiles, mais
l'essentiel de la complexité se situe dans les nouvelles fonctionnalités,
pas dans le XML.



XML, c'est un peu comme du mauvais "poivre syntaxique".

--
Ma coiffeuse est formidable - http://sonia.buvette.org/
Avatar
Doug713705
Dans fr.comp.os.linux.debats Patrick Lamaizière nous expliquait:

Du coup je suis bien d'accord avec Michel, on devrait les pendre, sans
compter que je ne suis même pas sûr que ce soit documenté.



Doit-on vraiment documenter la pendaison ?

--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
Avatar
remy
Patrick Lamaizière a écrit :
remy :

avec un simple cerveau cela permet de comprendre en principe à quoi
correspond l'association je n'ai plus à connaitre la syntaxe d'un
fichier de config ou à savoir

machinBidule 10:1215, -avkj :1536 fait la même chose que
trucMucheAlaCon -bphkt 123:1579



Si tu prends l'exemple de Xorg (pour régler le clavier en fr/latin 9) :

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_driver" type="string">kbd</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel .name"
string="Linux">
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
<merge key="input.xkb.Layout" type="string">fr</merge>
<merge key="input.xkb.Variant" type="string">latin9</merge>
<merge key="input.xkb.Option" type="string">compose:rwin</merge >
</match>
</device>
</deviceinfo>

Avantc'était quand même mieux :
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
EndSection

Du coup je suis bien d'accord avec Michel, on devrait les pendre, sans
compter que je ne suis même pas sûr que ce soit documenté.



oui et non mais en théorie ce que personne ne fait
il faut rajouter la notion de dtd

cela permet de valider la conformité d'un fichier xml
et ne pas à avoir à mélanger les types et les infos


donc une tranposition possible

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE dialogue SYSTEM "linuxDriver.dtd">

<device>
<Xorg>
</Xorg>
<network>
<wifi>
<device>
<fichier=/dev/...>
<module =...>
<type = c>
<addMac= auto>
</device>
</wifi>
<ethernet>
<device>
<fichier=/dev/...>
<module =...>
<type = c>
<addMac= auto>
</device>
</ethernet>
</network>
<Keyboard>
<type=pc105/>
<device >
<fichier= /dev/input/..>
<type = c>
</device>
</Keybord>
<dvd>
<device=/dev/...>
</dvd>
</device>

remy

--
http://remyaumeunier.chez-alice.fr/
Avatar
talon
Nicolas George <nicolas$ wrote:
Michel Talon, dans le message <i9m7ub$2h0c$,
a écrit :
> rien d'autre que ce que TeX fait avec des {}, c'est à dire d'un coté tu
> as le truc pondu par un génie, de l'autre la version gros plouc pondue
> par des nullards.

À ceci près que pour TeX, on a _une_ implémentation, non-buggée mais dans un
langage pourri, et bourrée de limitations à la con et incapable de gérer
l'internationalisation correctement, tandis que pour XML on a de nombreuses
implémentations dans quasiment tous les langages et mutuellement
compatibles.



Parceque xpath, xslt etc. c'est pas aussi pourri que le langage de TeX?
Et au moins l'implémentation de Knuth elle permet de rendre des dizaines
de pages à la seconde sur une machine avec quelques megs de mémoire, là
où un rendu similaire, à base de fop nécessite plutôt quelques centaines
de megs et un certain nombre de secondes par page.


--

Michel TALON
Avatar
Tonton Th
On 10/20/2010 02:10 PM, remy wrote:

il faut rajouter la notion de dtd




pour un fichier de configuration X11 ?????????


--
Ma coiffeuse est formidable - http://sonia.buvette.org/
Avatar
talon
Nicolas George <nicolas$ wrote:
JKB , dans le message , a
écrit :
> Tu parles du langage TeX. Je ne vois pas en quoi le fait qu'il soit
> écrit historiquement en WEB change quelque chose à TeX.

Ça change considérablement les choses pour la maintenance du code.



C'est une providence que des incapables n'aient pas mis leur sale patte
sur le code.


Alors vas-y, lis-nous la partie qui parle du nombre maximum de boîtes, du
nombre maximum de conteurs, etc.




Le nombre de conteurs est illimité celui des compteurs est limité.

--

Michel TALON
Avatar
Nicolas George
Michel Talon, dans le message <i9mpbb$2mih$,
a écrit :
Parceque xpath, xslt etc. c'est pas aussi pourri que le langage de TeX?



XSLT, je suis d'accord que c'est nul. En revanche, XPath est très bien.

Et au moins l'implémentation de Knuth elle permet de rendre des dizaines
de pages à la seconde sur une machine avec quelques megs de mémoire, là
où un rendu similaire, à base de fop nécessite plutôt quelques centaines
de megs et un certain nombre de secondes par page.



Et la vitesse, pour toi, c'est le seul critère pertinent ?