Project

General

Profile

Bug #948

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

Added by Pascal Le Polles almost 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Category:
Import/Export
Start date:
08/30/2010
Due date:
% Done:

100%

Estimated time:
Spent time:
Navigateur:
Firefox 3.x
Votre version de Silverpeas:
5.2.2
Système d'exploitation:
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>

History

#1

Updated by Emmanuel Hugonnet almost 9 years ago

  • Status changed from New to Feedback
#2

Updated by Emmanuel Hugonnet almost 9 years ago

  • Target version set to Version 5.4
#3

Updated by Emmanuel Hugonnet almost 9 years ago

  • Status changed from Feedback to Resolved
  • Assignee set to Emmanuel Hugonnet
  • % Done changed from 0 to 100
  • Navigateur set to 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

Updated by Nicolas Eysseric almost 9 years ago

  • Status changed from Resolved to Closed

OK. Validé.

#5

Updated by Philippe Bazart over 8 years ago

  • Status changed from Closed to 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

Updated by Philippe Bazart over 8 years ago

  • Assignee changed from Emmanuel Hugonnet to Philippe Bazart
#7

Updated by Philippe Bazart over 8 years ago

  • Status changed from Re-opened to Resolved
#8

Updated by Nicolas Eysseric over 8 years ago

  • Status changed from Resolved to Closed

OK. Validé.

Also available in: Atom PDF