Voici la situation: J'ai un client qui m'a donné un schéma XML, et mon logiciel convertit leurs enregistrements de délimités par des tabulations en XML.Puis-je mettre à zéro un entier dans une classe générée par XSD?
L'un de ces champs, "file-sequence", est saisi en tant qu'entier dans le schéma. Cependant, le client du client (la cible d'intégration) veut que l'entier soit rempli à zéro et comporte 4 chiffres (EG, <file-sequence>0001</file-sequence>
) dans le fichier XML de sortie réel.
Je suis sortie en utilisant la sérialisation, qui est agréable et automatique et indolore. Toutefois, étant donné que le champ est saisi en tant qu'entier dans le fichier XSD, le champ de séquence de fichiers est <file-sequence>1</file-sequence>
. Ce qui a du sens. :)
Jusqu'à présent, je l'ai réduit les réponses potentielles à bas trois options:
Modifier le schéma et changer le type de chaîne. Mettre à zéro le numéro de séquence lors de la mise à jour du champ. Inconvénient: Je dois me rappeler de le faire chaque fois que la cible d'intégration change le schéma (comme ils l'ont déjà une demi-douzaine de fois).
Renoncez à utiliser la sérialisation XML en générant manuellement le code XML. Inconvénient: Beaucoup de travail, peut-être sujet aux erreurs, un sérieux code-odeur (pour moi).
Sérialiser à un flux en mémoire, extraire le code XML brut de celui-ci, remplir l'entier. Inconvénients: Se sent vraiment sale, encore beaucoup de travail.
Existe-t-il d'autres options? Si non, quelle est l'option ici est la bonne façon de le faire? (Je pense que l'option 1 est probablement la plus propre.)
C'est ce que j'ai fini par faire. Sur le plan positif, puisque je génère la classe avec XSD, si j'oublie l'étape d'édition cruciale quand ils changeront le schéma, j'obtiendrai au moins une erreur de construction. –