6
votes

Saxon 9.x vs xqshaarp vs Altovaxml pour .NET

J'ai besoin d'un outil de processeur XSLT 2.0 pour une utilisation dans .NET 4.0. J'ai découvert que XSLT 2.0 n'est pas pris en charge par .NET. Les alternatives sont des moteurs tiers comme Saxon 9.x ou Xqshaarp. J'ai besoin d'un soutien de XSLT 2.0 pour un environnement de production commercial, où la performance est très importante. Questions:

  1. Saxon 9.x ou Xqshaparpe, lequel dois-je choisir?
  2. Quels sont les pro et des contres des deux produits?
  3. Y a-t-il une autre alternative?
  4. Qu'en est-il d'Altovaxml par rapport à Saxon 9.x ou xqshaarp?

0 commentaires

3 Réponses :


4
votes

Je suis un développeur XQSharp, mais je vais essayer de donner une réponse impartiale.

XQSharp et Saxon sont de bons produits. Chacun a une conformité élevée à la norme et les deux pour objectif de grandes performances. Mon meilleur conseil consiste à télécharger des éditions d'essai et testez avec le type de transformations que vous prévoyez courir. Nous serions intéressés d'entendre comment vous allez continuer.

Si vous courez dans un environnement .NET, je m'attendrais à ce que XQSharp ait quelques avantages. Premièrement, il est développé dans .NET, tandis que Saxon est développé en Java et utilise IKVM pour exécuter .NET. Vous voudrez peut-être comparer les éditions Java et .NET de Saxon pour déterminer si cela impose une surcharge de performance.

XQSharp est destiné à intégrer bien avec des classes à partir des espaces de noms.xml et system.xml.xpath. Par exemple, la mise en œuvre utilise des xpathnavigators. Vous pourriez trouver cette familiarité utile.

XQSHARP implémente et étend la fonctionnalité trouvée dans XslCompiledTransform pour appeler à .NET à partir de XSLT, que vous pouvez trouver utile.

Voir cette liste de implémentations .


0 commentaires

7
votes

Au cours des dernières semaines je XQSharp, Saxon 9.x et AltovaXML de réécrire mon programme en utilisant le moteur de Microsoft XSLT1. Voici mes expériences:

AltovaXML

  • Il est gratuit (mais la version gratuite est limitée et ne vient pas avec la source).
  • Le site est ok, de sorte que vous pouvez trouver ce dont vous avez besoin
  • Le api est simple facile à mettre en place
  • A api pour de nombreuses langues différentes
  • Il utilise COM, en d'autres termes, nécessite un code natif Interop
  • Il est le plus lent des moteurs que je

    XQSharp

    • .NET convivial
    • Lancers bonnes exceptions avec bonne description
    • Plus rapide AltovaXML
    • Il est gratuit et aucune source est fournie

      Saxon 9.x

      • Pas de site Web convivial, difficile de trouver les choses que vous recherche
      • Créé par Michael Kay (l'éditeur de la spécification du langage XSLT 2.0 du W3C)
      • le plus rapide des moteurs de XSLT2 que j'ai utilisé
      • Il y a une édition open source limitée, schéma courant et le streaming viennent avec les éditions non-libres
      • Basé sur Java, mais est livré avec un port IKVM emballé à .NET

        Pour ma XML spécifique et la performance traduction XSLT (de XSLT1) Comparaison:

        1. s moteur Microsoft 0,02 XSLT1
        2. s 0.45 saxon 9.x
        3. 0,60 de XQSharp (avec OptimizationLevel.None)
        4. 0,90 de XQSharp (réglage par défaut)
        5. s AltovaXML 1,20

1 commentaires

Il serait intéressant de voir une ventilation de la durée de la réduction de la transformation vs combien de temps pour exécuter la transformation de chaque mise en œuvre; Je soupçonne que la majorité du temps pour Xqsharp et Saxon était dans la compilation. Aussi quelle implémentation de Microsoft avez-vous utilisée, était-ce xslCompiledTransform?



1
votes

Vous n'avez pas trouvé comment répondre à la réponse ci-dessus (qui m'a donné de bonnes notes), alors je vais le poster ici: Altovaxml a modifié leur politique concernant l'Altovaxml.dll. Vous pouvez obtenir une version gratuitement, mais il manque certaines fonctionnalités. Donc, vous feriez mieux d'acheter une licence. Il semble également que Altova ait des problèmes de mémoire que le programme semble rester travailler même après avoir fermé la connexion.

Saxon a une stratégie d'un tressant d'essai étrange. Par cela, je veux dire qu'il est un peu étrange que vous ayez un test de trente jour, mais la date de début / de fin est en train de déplacer 10 jours (en savoir plus sur le site Web pour Saxon). Il ajoute également du texte à vos fichiers convertis. Je n'aime pas cela comme je veux que mes fichiers convertis - même sous test - pour être correct afin de pouvoir constater qu'il est possible d'envoyer les fichiers vers l'avant dans nos systèmes. J'espère que cela changera dans les versions ultérieures.

xqshaparp - je n'ai pas essayé cela et je ne peux donc pas en dire grand chose à ce sujet. Lorsque je mettant la mise à niveau de mon service qui utilise XSLT2.0, je donnerai cette bibliothèque / assistant un spin.


0 commentaires