2 votes

Fusionner les XSD générés par Maximo ?

J'ai deux fichiers XSD avec des éléments communs et des types complexes. Ces XSD ont été générés par Maximo. Comment puis-je fusionner ou aplatir les XSD en un seul ?

Le même espace de noms a été utilisé dans les deux XSD.

3voto

Michael Kay Points 52194

Il n'y a pas de réponse facile, mais si les documents du schéma sont suffisamment volumineux, vous pouvez investir dans des outils XSLT pour réduire l'effort à fournir.

(a) utiliser xsl:for-each-group pour identifier les composants de haut niveau de même type et de même nom dans les deux fichiers, par exemple deux complexTypes portant le même nom.

(b) s'il n'y a qu'un seul élément dans le groupe, éditez-le.

(c) s'il y a deux éléments dans le groupe, utilisez la fonction deep-equals() pour les comparer. S'ils sont profondément égaux, il suffit d'afficher le premier. Sinon, il faut les afficher tous les deux, avec un commentaire TODO qui les signale pour une intervention humaine.

(d) réconcilier les conflits à la main.

Si nécessaire, vous pouvez effectuer une certaine "normalisation" avant la comparaison deep-equals(), par exemple en supprimant les espaces blancs des nœuds de texte et des éléments xs:annotation.

1voto

kjhughes Points 5581

Essayez d'éviter, ou de minimiser, le problème en amont lors de la génération du XSD. Maximo est configurable :

Si vous définissez le mxe.int.resolveschema la propriété globale à true dans le Propriétés du système, tous les fichiers inclus sont résolus.

Source : IBM Maximo Asset Management Multitenancy : Génération de schémas

Je n'en suis pas certain, mais si tous les fichiers inclus sont résolus signifie que le XSD inclus est aplati, alors peut-être que cela pourrait vous aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X