2008-11-11 6 views
0

J'ai un peu de problème. J'ai écrit une API il y a longtemps pour notre système de production, et elle utilisait Apache XML Beans. Le schéma était homogène (c.-à-d. Aucune importation, tout était dans le même schéma), et tout fonctionnait très bien, même si le code pour la gestion de l'API était incroyablement verbeux. J'ai depuis écrit une API reposful beaucoup plus simple et plus élégante en utilisant JAXB, avec des parties de l'ancien en tête, c'est-à-dire un schéma différent, mais certains des éléments sont identiques. Dans l'espoir de nettoyer et de simplifier mon code de liaison dans l'ancienne API, j'ai remplacé certaines parties en les supprimant et en important le nouveau schéma et en utilisant ces éléments à la place. Cependant, chaque fois que je tente d'analyser les documents qui utilisent le nouveau mélange de schéma, je reçois une erreur de validation à partir de fèves XML:Importation et utilisation de schéma externe à l'aide de beans XML

error: cvc-complex-type.2.4a: Expected element '[email protected]://www.my.com/old/xmlns' instead of '[email protected]://www.my.com/new/xmlns' here in element [email protected]://www.my.com/old/xmlns 

Quelqu'un at-il rencontré avant? Avez-vous des solutions ou des idées? Je l'apprécierais vraiment. Merci de bien vouloir.

+0

Pourriez-vous coller du XSD afin de pouvoir omettre les problèmes de malformed-xsd? –

+0

J'ai en fait eu l'occasion de refaire le tout. Le XSD que j'utilisais a été créé dans Eclipse, édité avec leur éditeur graphique, et validé par rapport au validateur W3C pour le schéma XSD, donc je peux en toute sécurité éliminer les problèmes malformed-xsd. –

Répondre

0

Nous vous remercions de votre réponse. J'ai essayé d'ajouter explicitement le nouvel espace de noms, à la fois sur la racine du document et sur 'redundant-element' lui-même, dans de nombreuses permutations. IE:

<oldxmlns:root xmlns:oldxmlns="abc" xmnls:newxmlns="xyz"> 
     ..... 
</oldxmlns:root> 

.. et ...

<oldxmlns:root xmlns:oldxmlns="abc"> 
    <oldxmlns:nested-element> 
     ..... 
     <newxmlns:redundant-element xmnls:newxmlns="xyz"> 
      ..... 
     </newxmlns:redundant-element> 
     ..... 
    </oldxmlns:nested-element> 
</oldxmlns:root> 

... et j'ai aussi essayé de nombreuses combinaisons avec espaces de noms par défaut, etc., et aucun n'a travaillé.

0

Il semble que l'espace de noms dans le document soit toujours l'ancien. Difficile à dire sans les schémas et les documents.

Questions connexes