8
votes

Génération de fichier .Proto des objets Java existants ou XSD

Est-ce que quelqu'un connaît-il de tout outil qui générera un fichier .Proto? Soit d'un XSD existant, soit des objets Java existants?

J'utilise Apache CXF pour effectuer un appel de service Web. L'objet renvoyé a été généré automatiquement à partir d'un XSD.

OK, donc je veux maintenant transmettre ces données à l'aide de tampons de protocole vers un autre système. Le modèle d'objet est très complexe et change régulièrement - c'est-à-dire une nouvelle XSD chaque fois que le modèle d'objet a changé. J'aimerais pouvoir générer automatiquement un fichier .Proto afin que je puisse envoyer des données à l'aide de tampons de protocole Google.

Je cherche partout mais je suis tombé coincé.

Je suis heureux de

i.) Générez du fichier .Proto du XSD ou II.) Générez du fichier .Proto des objets Java (qui ont été générés à partir du XSD)

Je ne trouve aucun moyen de le faire déjà d'écrire quelque chose moi-même ... Votre aide beaucoup appréciée


4 commentaires

Je pourrais peut-être le faire avec XSD-> C # (via Xsd.exe) ->. Proto (via Protobuf-Net) - probablement un peu cassant, surtout si les objets sont complexes ....


mmm La convertir en un fichier de proto serait un cas d'une utilisation courante - à moins d'avoir manqué le point de tampons de protocoles HTE ici ...


Je suis tombé sur ce projet ce matin. Je n'ai pas encore essayé de l'essayer, mais il prétend supporter d'aller directement de .xsd à .Proto: Github.com/tranchis / xsd2thrift


Je devais donc récemment faire cela pour le travail et j'ai ouvert le code. C'est assez simple, mais il couvre la plupart des structures de données communes que j'utilise. Vous pouvez obtenir le code de ici


3 Réponses :


1
votes

Je crois que proto-truc sera utile pour vous dans une certaine mesure. Je ne suis pas sûr que cela génère le fichier .poto pour vous, mais protostuff-runtime active automatiquement vos pojos existants à SER / SERER à divers formats.


1 commentaires

Merci de votre réponse, la chose est que je dois toujours générer le fichier de proto, car je dois donner ceci à l'équipe de développement de l'autre côté de la solution en C # ... toutes les autres idées? Merci



2
votes

L'utilitaire Tranchis convertit les fichiers .xsd en .poto et l'épargne.

https://github.com/tranchis/xsd2thrift

Cela fonctionne assez bien pour convertir des types de schéma de base du schéma XML.


1 commentaires

Celui-ci a travaillé pour moi, il y avait un peu de temps d'échauffement :) Vérifié le projet et couru localement. Les commandes sur Git sont en quelque sorte obsolètes. On peut vérifier les junits pour créer des commandes et fonctionne.



2
votes

essayer protoTF-proto code> projet de Github. Si vous avez protostuff RunTimeschema, vous pouvez le convertir au fichier .poto par ce code:

System.out.println(Generators.newProtoGenerator(schema).generate()); 


1 commentaires

Ce projet semble jamais avoir eu une libération