2010-07-21 17 views
1

Je vais avoir le temps de décider d'une direction à suivre avec une classe lib que je construis.XSD .net code gen + méthodes alternatives de sérialisation

J'ai un lot de XSD standard de l'industrie, à partir de laquelle je génère des objets .net. J'ai utilisé XSD.exe, LinqtoXsd, xsd2code et même OxmLibrary avec des résultats variables. Mais à la fin, je suis capable de générer des classes .net décentes qui peuvent être sérialisées/désérialisées à la norme.

Cependant - Le api à appeler ce xml (api également partie de la norme) exige que les requêtes soient strucutred au format XML ainsi, mais avec des écarts par rapport XSD de base, en particulier:

-Présence ou l'absence d'une étiquette dicte que les champs particuliers doivent être "sélectionnés" ou utilisés d'autres manières (mise à jour, suppression, ajout, etc.). Les types de valeur unique dans le xsd peuvent être répétés dans une requête api "select" pour indiquer l'équiv d'une clause where pour ce champ.

Je vais probablement utiliser l'un des frameworks de génération de code ci-dessus pour générer du code secondaire pour un objet de type requête afin de compléter les objets de données principaux.

Ainsi, les approches que je envisage de spécifier et de sérialisation des objets de requête comprennent:

  • utilisation « manuel » sérialisation méthodes qui peuvent regarder un objet de requête séparée et déterminer les champs à inclure/exclure, peut également créer les balises répétitives si la requête spécifie plusieurs valeurs.

  • changez chaque champ pour hériter d'un type de base qui prend en charge les requêtes et peut générer le fichier XML correct pour chaque élément.

  • utiliser les méthodes d'extension pour que la classe ait des méthodes supplémentaires par champ qui peuvent être appelées pour spécifier des paramètres de requête, et puisse réutiliser les objets de données pour créer également des requêtes.

  • utilisation des types anonymes pour spécifier un sous-ensemble de champs et geneare xml requête de cette

En plus de cela, je dois aussi comprendre comment pirater le code mentionné précédemment gen fremeworks d'adresse quelle que soit la direction dans laquelle je vais.

Je n'ai pas réfléchi à tout cela, mais je pensais que je mettrais cela au clair si quelqu'un a fait un travail similaire et a quelques recommandations.

Répondre

0

LINQ to XSD est à la recherche de développeurs. Il serait bon d'apporter de nouvelles idées et de corriger les bugs. Je l'ai maintenu pendant un certain temps mais je me suis concentré sur le CityLizard Framework qui a aussi un générateur "XSD vers C#".

+0

html compilable, c'est un projet cool Sergey. –