Help format XML

L'actualité des podeurs...
Répondre
Avatar de l’utilisateur
Skubidou
Administrateur
Messages : 2367
Inscription : 19 juil. 2003 17:39
Localisation : Lonzée (B)
Contact :

Help format XML

Message par Skubidou »

Hello,

Je dois développer une petite application pour gérer les accès au boulot. Pour le fichier d'initialisation je voudrais utiliser du XML, mais bon jusqu'ici je m'étais arrêté au .ini :lol: donc je fais appels aux spécialistes...

Voilà à quoi je dois arriver (pour la partie arborescence. Après quand on sélectionne un niveau final le reste est traité):
Image
- Les premiers niveaux sont juste une hiérarchie
* classe 'container'
* Un nom
* indiquer si le contenu sera trié (alphabétique)
- Le niveau final correspond à un accès à une ressource
* classe 'access' qui peut être de type 'member' ou de type 'read-write' (une distribution list contient juste des membres, un répertoire sur un disque certains ont accès en lecture seule d'autre on accès en lecture/écriture)
* Le nom de la ressource
* Un groupe AD donnant les gestionnaires
* Si type read-write, un groupe donnant lecture seule et un groupe donnant RW
* Si type member, un seul groupe donnant les membres

Voilà ce que j'ai pondu (au pif :oops: )

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>
<container name="Company1" sort="no">
 <container name="H-Drive" sort="yes">
  <Access type="read-write">
   <Name>IT Backup</Name>
   <GRP-Admins>Domain\Acc-H-A IT backup</GRP-Admins>
   <GRP-Read>Domain\Acc-H-R IT backup</GRP-Read>
   <GRP-ReadWrite>Domain\Acc-H-RW IT backup</GRP-ReadWrite>
  </Access>
  <Access type="read-write">
   <Name>Réclamations</Name>
   <GRP-Admins>Domain\Acc-H-A Reclamations</GRP-Manager>
   <GRP-Read>Domain\Acc-H-R reclamations</GRP-Read>
   <GRP-ReadWrite>Domain\Acc-H-RW Reclamations</GRP-ReadWrite>
  </Access>
 </container>
 <container name="Distribution Lists" sort="yes">
  <Access type="Members">
   <Name>DL-IT Systems</Name>
   <GRP-Admins>Domain\Acc-DL-A IT Systems</GRP-Admins>
   <GRP-Members>Domain\Acc-DL-M IT Systems</GRP-Members>
  </Access>
 </container>
</container>
Mes questions:
- Puis-je utiliser des classes 'container' et 'access' comme cela? Dans les exemple de tuto on trouve toujour <item><item>....sans trop de sortes différentes.
- Pour la classe access, puis-je bien avoir des contenus différents ou vaut-il mieux avoir un <access-member> et <access-RW> plutôt que d'utiliser un attribut pour les différencier?
- Dans quelle situation faut-il utiliser des attribut (container name="....") et dans quelle situation faut il développer (<Access><Name>...</Name><Access>)?
- Y a-t-il des limitations suivant les caractères (dans un attribut, entre >...<)?

Je sais que qu'importe ce que j'écris je pourrai le parser (c'est un format 'propriétaire') mais bon, autant être un peu propre dans les règles de l'XML ;)

Merci aux spécialistes
Avatar de l’utilisateur
grokon
Messages : 3676
Inscription : 21 juil. 2003 8:16
Localisation : La porcherie

Re: Help format XML

Message par grokon »

Bon, je ne suis pas un specialiste, mais je reponds quand meme :) Na !
Skubidou a écrit :Hello,

Je dois développer une petite application pour gérer les accès au boulot. Pour le fichier d'initialisation je voudrais utiliser du XML, mais bon jusqu'ici je m'étais arrêté au .ini :lol: donc je fais appels aux spécialistes...

Voilà à quoi je dois arriver (pour la partie arborescence. Après quand on sélectionne un niveau final le reste est traité):
Image
- Les premiers niveaux sont juste une hiérarchie
* classe 'container'
* Un nom
* indiquer si le contenu sera trié (alphabétique)
- Le niveau final correspond à un accès à une ressource
* classe 'access' qui peut être de type 'member' ou de type 'read-write' (une distribution list contient juste des membres, un répertoire sur un disque certains ont accès en lecture seule d'autre on accès en lecture/écriture)
* Le nom de la ressource
* Un groupe AD donnant les gestionnaires
* Si type read-write, un groupe donnant lecture seule et un groupe donnant RW
* Si type member, un seul groupe donnant les membres

Voilà ce que j'ai pondu (au pif :oops: )

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>
<container name="Company1" sort="no">
 <container name="H-Drive" sort="yes">
  <Access type="read-write">
   <Name>IT Backup</Name>
   <GRP-Admins>Domain\Acc-H-A IT backup</GRP-Admins>
   <GRP-Read>Domain\Acc-H-R IT backup</GRP-Read>
   <GRP-ReadWrite>Domain\Acc-H-RW IT backup</GRP-ReadWrite>
  </Access>
  <Access type="read-write">
   <Name>Réclamations</Name>
   <GRP-Admins>Domain\Acc-H-A Reclamations</GRP-Manager>
   <GRP-Read>Domain\Acc-H-R reclamations</GRP-Read>
   <GRP-ReadWrite>Domain\Acc-H-RW Reclamations</GRP-ReadWrite>
  </Access>
 </container>
 <container name="Distribution Lists" sort="yes">
  <Access type="Members">
   <Name>DL-IT Systems</Name>
   <GRP-Admins>Domain\Acc-DL-A IT Systems</GRP-Admins>
   <GRP-Members>Domain\Acc-DL-M IT Systems</GRP-Members>
  </Access>
 </container>
</container>
Mes questions:
- Puis-je utiliser des classes 'container' et 'access' comme cela? Dans les exemple de tuto on trouve toujour <item><item>....sans trop de sortes différentes.
Normalement, pas de soucis. En meme temps, tu peux meme donner carremment des noms plus intelligents ... pour moi container c'est trop generique.

De meme, je ne suis pas fan des item Name, je prefere un attribut name="" ... mais ca c'est religieux :)
- Pour la classe access, puis-je bien avoir des contenus différents ou vaut-il mieux avoir un <access-member> et <access-RW> plutôt que d'utiliser un attribut pour les différencier?
LEs deux sont possible, alors choisis celui que tu preferes :)
- Dans quelle situation faut-il utiliser des attribut (container name="....") et dans quelle situation faut il développer (<Access><Name>...</Name><Access>)?
Ben c'est une question de gout. Moi je prefere les attribute, sinon apres tu te retrouves a avoir parfois des selements qui ont un Name qui ne sert a rien, mais qui doit etre la ... enfin, c'est comme ca que je vois les choses ;)
- Y a-t-il des limitations suivant les caractères (dans un attribut, entre >...<)?
Je ne sais pas trop ... ca doit se trouver ... genre pas de double quotes quoi ...
Je sais que qu'importe ce que j'écris je pourrai le parser (c'est un format 'propriétaire') mais bon, autant être un peu propre dans les règles de l'XML ;)

Merci aux spécialistes
D'apres moi, tu fais d'abord ton design d'arborescence, et apres ton Xml doit etre identique. Un bon Xml checker c'est IE ... visualise ton Xml dans IE, s'il est syntaxiquement correct, il ressemblera a ton design

DERF
Avatar de l’utilisateur
Siklist
Messages : 2530
Inscription : 20 juil. 2003 11:53
Localisation : Vélodrome

Re: Help format XML

Message par Siklist »

A ta place je ferai un convertisseur xml - bl4 histoire de rester compatible avec mon plugin.
Avatar de l’utilisateur
Skubidou
Administrateur
Messages : 2367
Inscription : 19 juil. 2003 17:39
Localisation : Lonzée (B)
Contact :

Re: Help format XML

Message par Skubidou »

Si c'est pour utiliser du binaire alors je préfères passer au GBX, il est quand même mieux hiérarchisé que le BL4 :lol:

Merci Grokon

Container trop générique? C'est juste le nom (que je pourrais remplacer par TreeNode) ou tu veux dire utiliser des noms différents (Company, Localisation/ Resource) suivant les niveaux (pour moi qu'importe le niveau, si je garde un nom commun ça simplifie le parsing par le même loop imbriqué)

Pour le Name (soit en attribute soit entre <>), je préfère aussi l'attribute, mais autant les containers vont avoir des noms définis par moi (donc je peux faire attention aux caractères utilisés), autant les ressources vont valoir n'importe quoi (enfin...des noms de répertoire, des noms de mailbox exchange, des noms de site web, ...) et je pensais que peut-être les caractères spéciaux passeront plus facilement entre <> que dans un attribute. Au boulot, j'ai un XML que j'utilise avec ce genre de format pour les caractères spéciaux <ADMPASSWD><![CDATA[@Azerty1]]></ADMPASSWD>.
Avatar de l’utilisateur
Veliouh
Messages : 418
Inscription : 27 juil. 2003 17:40

Re: Help format XML

Message par Veliouh »

Je suis d'accord, Container, c'est trop générique : Il vaut mieux avoir une hierarchie de noms bien établis que noms identiques qui représentent des type de node différents. Ca permet, de plus, de bien typer tes nodes en définissant un shema xml qui garantit l'intégrité du formatage de ton fichier (mais j'imagine que si tu crées toi-même le parser, tu ne vérifieras pas le shema ;) ). Une exceptions à ça : la modélisation par métadonnées (Mais ça me parait une technique bien complexe pour un besoin assez simple)

De toutes façons, comme l'a dit Grokon, tu fais d'abbord ta modélisation, et ensuite tu génère ton XML.



Tiens, j'en profite pour dire que je suis certifié Microsoft (MCITP Database Developer 2008) depuis quelques jours ! :)
Avatar de l’utilisateur
grokon
Messages : 3676
Inscription : 21 juil. 2003 8:16
Localisation : La porcherie

Re: Help format XML

Message par grokon »

Veliouh a écrit :Tiens, j'en profite pour dire que je suis certifié Microsoft (MCITP Database Developer 2008) depuis quelques jours ! :)
Ils t'ont colle un DvD de Windows 7 64 bites dans le cul ?
Avatar de l’utilisateur
Rob
Messages : 2876
Inscription : 20 juil. 2003 18:30
Localisation : Une fois la Belgique deux fois !
Contact :

Re: Help format XML

Message par Rob »

Siklist a écrit :A ta place je ferai un convertisseur xml - bl4 histoire de rester compatible avec mon plugin.
+1 !
Avatar de l’utilisateur
grokon
Messages : 3676
Inscription : 21 juil. 2003 8:16
Localisation : La porcherie

Re: Help format XML

Message par grokon »

C'est un post a la DFG ca robby !
Avatar de l’utilisateur
Dfg
Messages : 968
Inscription : 20 juil. 2003 14:29
Localisation : Là bas dans les montagnes

Re: Help format XML

Message par Dfg »

Siklist a écrit :A ta place je ferai un convertisseur xml - bl4 histoire de rester compatible avec mon plugin.
Moi je veux voir le xml de skubi dans le bl4viewer. Avec tous ces containers, ça va faire un chouette circuit.
Répondre