Projet

Général

Profil

Actions

Bug #948

fermé

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

Ajouté par Anonyme il y a environ 14 ans. Mis à jour il y a presque 14 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
Système d'exploitation:
Windows XP
Votre base de données:
Oracle
Livraison en TEST:
Livraison en PROD:

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>

Mis à jour par Emmanuel Hugonnet il y a environ 14 ans

  • Statut changé de New à Feedback

Mis à jour par Emmanuel Hugonnet il y a environ 14 ans

  • Version cible mis à Version 5.4

Mis à jour par Emmanuel Hugonnet il y a environ 14 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

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

  • Statut changé de Resolved à Closed

OK. Validé.

Mis à jour par Anonyme il y a presque 14 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.

Mis à jour par Anonyme il y a presque 14 ans

  • Assigné à changé de Emmanuel Hugonnet à Anonyme

Mis à jour par Anonyme il y a presque 14 ans

  • Statut changé de Re-opened à Resolved

Mis à jour par Nicolas Eysseric il y a presque 14 ans

  • Statut changé de Resolved à Closed

OK. Validé.

Actions

Formats disponibles : Atom PDF