Projet

Général

Profil

Bug #948

Le fichier importExport.xml généré à l'export non valide.

Ajouté par Pascal Le Polles il y a plus de 8 ans. Mis à jour il y a environ 8 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Import/Export
Début:
30/08/2010
Echéance:
% réalisé:

100%

Temps estimé:
Temps passé:
Navigateur:
Firefox 3.x
Votre version de Silverpeas:
5.2.2
Operating System:
Windows XP
Votre base de données:
Oracle

Description

Plusieurs problèmes avec l'export XML autour du schéma, qui empêche d'utiliser ce fichier pour un import sans de nombreuses corrections.

Ce fichier n'est pas réutilisable pour l'import. Il n'est pas conforme à la XSD.

Voici la liste des problèmes repérés :

- Dans l'entête du fichier XML d'export on a :
xsi:schemaLocation="http://intranoo.oevo.com/websilverpeas/exchange/v5 http://intranoo.oevo.com/websilverpeas/exchange/*/SilverpeasExchange.xsd" ns1:usePOI="true">
Il semble que l'* ne marche pas car XMLSpy n'arrive pas à retrouver le fichier XSD quand on lui demande de valider le fichier XML.

- Plusieurs attributs ont un nom erroné qui inclut le namespace ns1: alors que le schéma demande un nom seul :
<sp:SilverpeasExchange ..... ns1:usePOI="true">
<sp:xmlModel ns1:name="model1">
<sp:attachment ns1:path="...\Presentation-SP.ppt" ns1:updateRule="add">
<sp:topicPosition ns1:topicId="4050"/>
<sp:axisPosition ns1:axisId="5" ns1:pdcValuePath="/0/21/34/"/>
<sp:topicTrees>
<sp:topicTree ns1:componentId="kmelia59">
<sp:topic ns1:id="0">
<sp:component ns1:id="kmelia59">
<sp:publication ns1:id="24086" ns1:componentId="kmelia59">

- Pour une publication "XML", un champ vide est exporté sans l'élément <sp:value /> demandé dans le schéma :
<sp:xmlField>
<sp:name>area4</sp:name>
</sp:xmlField>
Pour importer, il faut modifier l'entrée avec :
<sp:xmlField>
<sp:name>area4</sp:name>
<sp:value></sp:value>
</sp:xmlField>

Historique

#1

Mis à jour par Emmanuel Hugonnet il y a plus de 8 ans

  • Statut changé de New à Feedback
#2

Mis à jour par Emmanuel Hugonnet il y a plus de 8 ans

  • Version cible mis à Version 5.4
#3

Mis à jour par Emmanuel Hugonnet il y a plus de 8 ans

  • Statut changé de Feedback à Resolved
  • Assigné à mis à Emmanuel Hugonnet
  • % réalisé changé de 0 à 100
  • Navigateur mis à Firefox 3.x

Modification de la configuration par défaut en V5 et du fichier importExportMapping.xml pour obtenir un fichier d'export xml valide

#4

Mis à jour par Nicolas Eysseric il y a plus de 8 ans

  • Statut changé de Resolved à Closed

OK. Validé.

#5

Mis à jour par Philippe Bazart il y a environ 8 ans

  • Statut changé de Closed à Re-opened

Je réouvre ce bug sur ce qui concerne le nom du schéma dans l'en-tête car la correction apportée (dans le fichier de configuration mapping.properties) a un impact sur l'import. En fait, la bonne correction est à faire dans le code de la méthode upLoadSilverpeasExchange() de la classe com.silverpeas.importExport.control.ImportExport, qui est utilisée pour l'export.

Cette méthode est en effet bugguée : elle utilise le paramètre xsdSystemId au lieu de xsdDefaultSystemId. Ce qui est la cause directe de l'anomalie constatée.

J'avais introduit ces deux paramètres lors de l'évolution du moteur d'import pour autoriser les imports préparés en masse (à partir du mécanisme d'import unitaire), et ce afin d'assurer en même temps la compatibilité ascendante avec les fichiers d'import préalablement utilisés, notamment en version 4.08 (précédent format du schéma).

En fait xsdDefaultSystelId est le schéma par défaut qui est aussi de fait le schéma couramment utilisé par Silverpeas (c'est donc le cas pour l'export). Le paramètre xsdSystemId est quant à lui paramétré (d'où le * et l'utilisation de la méthode settings.getStringWithParam(() pour le lire) ce qui permet de gérer plusieurs versions du schémas. Le bon schéma XSD est alors choisi lors de l'import en fonction du namespace indiqué dans le fichier XML d'import.

Idéalement, ces deux paramètres devraient aussi faire l'objet d'une configuration avec des URL locales (file://) lors du déploiement avec la commande SilverpeasSettings, et disposer des différents schémas connus en local sur le serveur. Les schémas sont lus par Silverpeas lors d'un import, car le parseur est ici "validant". Sans ce paramétrage local, Silverpeas va lire le schéma sur Internet, ce qui pas toujours souhaitable.

#6

Mis à jour par Philippe Bazart il y a environ 8 ans

  • Assigné à changé de Emmanuel Hugonnet à Philippe Bazart
#7

Mis à jour par Philippe Bazart il y a environ 8 ans

  • Statut changé de Re-opened à Resolved
#8

Mis à jour par Nicolas Eysseric il y a environ 8 ans

  • Statut changé de Resolved à Closed

OK. Validé.

Formats disponibles : Atom PDF