Bon, voila que j'approche d'un résultat XML qui commence à ressembler à quelque chose.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE logins SYSTEM logins.dtd>
<logins>
<site>
<name>Nom du site</name>
<url>http://www.domain.com</url>
<access type="ftp">
<server>127.0.0.1</server>
<login>moi</login>
<pass>password</pass>
</access>
<access type="database">
<server>localhost</server>
<login>moi</login>
<pass>password</pass>
<more><![CDATA[base name]]></more>
<more><![CDATA[some comments]]></more>
</access>
<access type="web">
<server port="80">http://www.domain.com</server>
<login>moi</login>
<pass>password</pass>
</access>
</site>
<site>
<name>Nom du site 2</name>
<url>http://www.domain.com</url>
<access type="ftp">
<server>127.0.0.1</server>
<login>moi</login>
<pass>password</pass>
<more><![CDATA[my mores here]]></more>
</access>
<access type="database">
<server>localhost</server>
<login>moi</login>
<pass>password</pass>
<more><![CDATA[mybase]]></more>
</access>
<access type="web">
<server>http://www.domain.com</server>
<login>moi</login>
<pass>password</pass>
</access>
</site>
<site>
<name>Accès SSH</name>
<url>http://www.myssh.com</url>
<access type="ssh">
<server port="22">192.168.0.1</server>
<login>nobody</login>
<pass>mypass</pass>
</access>
</site>
<site>
<name>Accès mail</name>
<url>http://webmail.domain.com</url>
<access type="mail">
<server port="110">mail.domain.com</server>
<login>nobody@domain.com</login>
<pass>mypass</pass>
<more><![CDATA[my email account]]></more>
</access>
</site>
</logins>
Et la DTD est fort jolie aussi, en plus elle est commentée.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT logins (site+)>
<!-- La racine, contient au moins un éléement de type "site" -->
<!ELEMENT site (name, url, access+)>
<!-- L'élément "site" contient les éléments "url", "name" et au moins un élément "access" -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT access (server, login, pass, more*)>
<!-- L'élément access contient un élément "server", un élément "login", un élément "pass" et peu contenir un ou des éléments "more" -->
<!ATTLIST access
type (web | ftp | database | ssh | mail) #REQUIRED
>
<!-- L'élément "access" doit contenir un attribut de la liste donnée -->
<!ELEMENT server (#PCDATA)>
<!ATTLIST server
port CDATA #IMPLIED
>
<!-- L'élément "server" peut contenir un attribut "port" -->
<!ELEMENT login (#PCDATA)>
<!ELEMENT pass (#PCDATA)>
<!ELEMENT more (#PCDATA)>
Nota: je retravaillerais le template GeSHi pour les XML pour refaire la mise en couleur.