[Résolu] XML==>node? XSD==>content-type?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

Voilà j'ai 2 questions :

  • Existe-t-il un moyen de créer des content-type à partir d'un fichier XSD?
  • Quelqu'un sait où je peux trouver un tuto pour faire un import XML afin de créer des nodes? (j'ai du mal à trouver...)

Merci d'avance!

Forum : 
Version de Drupal : 

La suite de modules Transformations (http://drupalmodules.com/module/transformations) semble être parfait pour une moulinette XML! Voici la vidéo qui explique comment procéder :http://a40.video2.blip.tv/5410002166444/Jpetso-DrupalTransformationsHOWT...

Je ferai un retour dessus quand j'aurai testé tous ça. (Surement sur le site Drupalistic ;))

A+

PS: Pour le XSD, je n'ai pas encore trouvé...

Yes ça m'a l'air plus adéquat à mon besoin pour le XML je vais tester ça! Transformation n'est plus maintenu donc j'ai zappé... (dommage c'est un bon module...)

Et pour le XSD, je suppose qu'à part créer les content type à la main, il n'y a pas de module ou de système pour passer les XSD en CONTENT-TYPE, non?

Merci Numerizen ;-)

J'avais essayé Transformations mais ça m'avait paru très lourd et assez instable. Mais c'était il y a longtemps.

C'est un peu curieux de vouloir créer automatiquement des CT non ? Tu en as tant que ça ? Et XSD, ce n'est pas une grosse bidouille de Microsoft par dessus XML ?

Quoi qu'il en soit, il devrait être relativement facile de créer un parser pour Feeds. Si ton use case est relativement probable, tu pourrais même trouver un boulot déjà fait quelque part. L'API qui est dessous et très riche il me semble.

Non il n'y a pas masse de content-type, mais j'anticipe sur les futurs projets avec 30 content-type (j'en ai déjà vu de loin et c'est assez moche à voir lol). Et effectivement créer un un sous-module (ou récuperer et encapsuler tous ça dans un module) pour feeds, ça pourrait être sympa, je m'y pencherai si j'ai le temps...

En fait XSD c'est un peu le même principe que le DTD du XML, ça permet de définir le format des données. Par contre je ne sais pas si Microsoft est derrière ça lol je sais juste que recommander par W3C mais là aussi j'ai pas poussé pour savoir le comment du pourquoi chez W3C...

J'avais essayé de me servir de ça il y a bien longtemps, et je me souviens maintenant que la norme était à peine finalisée. Microsoft avait imposé son implémentation de la chose, bien verrouillée de partout avec des dépendances sur SQL Server etc. Et même avec ça, c'était inutilisable. Enfin bref.

30 CT, ce doit être un sacré projet. Je pense que l'automatisation serait intéressante s'il y a beaucoup de champs ; sinon, l'IHM permet quand même de travailler assez vite. Je chercherais autour de l'API Entities, avec ses bundles, et il existe probablement des choses sous Drush pour scripter le tout.

Effectivement c'est vraiment puissant FEEDS! Par contre, et là je vais faire mon gros noob mais jsuis encore un jeunot du dev drupal et dev tous cours^^) : Pourquoi lors de mon import il me donne :
<Name>Name 1</Name> ? or je veux simplement Name 1. (Pour info jsuis en mode découverte du XML et bien que ce soit pas bien compliqué je n'ai pas encore tous cerné...)

Merci

PS: oui microsoft c'est moisi on est d'accord sur ça! mdr vive l'opensource!

Tu as du cocher une case comme quoi tu voulais une entité HTML complète et pas seulement le contenu du tag.

Ça dépend de plein de choses : le parser choisi, le mapping, les options, le fichier source ...

lol c'est exactement ça j'ai coché des case dans l'import pour récupérer le HTML...

Donc nickel ça marche pour l'import et la création de node après avoir augmenté le max_execution_time (valeur de base entraîné une erreur 500).

Par contre, j'ai l'impression que dans le mapping ça ne prend pas en compte tous les champs CCK comme cck mail ou encore cck addresse. Est-ce une particularité de FEEDS ou un bug chez moi?

Pour les time out, tu peux cocher une option pour utiliser Batch API quelque part.

Pour CCK et son orchestre, il faut chercher un peu dans l'issue queue. Feeds est très utilisé et il existe plein de recettes et d'indications pour les cas particuliers.

Si jamais tu tombes sur une bonne façon d'importer une liste de valeurs depuis XML dans un seul champ destination multi-value, merci de me prévenir !

Merci pour le lien, mais je cherche des trucs pour xpath. Mais c'est une piste.

Pour conditionner, il suffit de choisir le champ Publié comme cible et de retourner une expression booléenne en fonction des valeurs de la source. D'où l'intérêt de XPath.

Franchement il est vraiment puissant Feeds avec ses sous-modules! J'arrive à quasiment tous importer ;-)

Il me reste 2 problèmes à résoudre :

  • Lier 2 content-type avec node référence et donc le multi-value pour node_reference
  • Remplacer "&" par "&" pour certaines valeur

Pour les liaisons je pense qu'il va falloir que je crée un module spécifique (si j'ai le temps je le modifierai pour le rendre générique et le proposer en sous-module).
Pour remplacer les caractères j'ai trouvé la fonction xpath translate() qui pourra je pense faire l'affaire ;-)

Je continue de faire des retour ici sur ce sujet.

Je ne sais pas s'il existe des choses pour lier des CT, mais si tu codes quelque chose, même sans aller jusqu'à un module générique, ça m'intéressera.

Je me sers des fonctions Xpath aussi, mais attention : c'est seulement du 1.0, donc il manque des trucs quand même.

Bonjour,

J'ai également 2 fichiers avec des nodes liés entre eux par une clé commune que j'importe avec feeds. Quels sont vos retours sur l'utilisation de feeds pour renseigner des node references ?
Merci