Quelle est la meilleure façon de générer des classes C # à partir de plusieurs fichiers de schéma XSD?
Certains fichiers de schéma XSD peuvent être dépendants les uns des autres, j'essaie d'éviter la génération de classes C # dupliquées.
Utilisez le programme XSD.EXE, mais passez tous des schémas au programme sur la même ligne de commande.
Par exemple:
> xsd /c qbxmltypes130.xsd QBUqbxmlops130.xsd QBUqbxmlso130.xsd QBUqbxml130.xsd
Emettra une classe nommée:
qbxmltypes130_QBUqbxmlops130_QBUqbxmlso130_QBUqbxml130.cs
Dans ce cas, il s'agit de fichiers xsd du SDK Quickbooks Desktop, et le fichier final a des types dont il dépend dans les 3 premiers fichiers. Il n'émettra pas tout seul, mais avec ses dépendances il fonctionne comme vous le souhaitez.
Notez qu'il existe un /parameters:<file>
commutateur qui vous permet de spécifier un fichier de paramètres de ligne de commande. Je me souviens l'avoir utilisé dans un projet pour une raison similaire.
XSD.EXE doc a le format de paramètre.
Pour ma part, j'ai trouvé les exemples dans la doc MSDN un peu manquants. Voici un exemple de fichier de paramètres pour le problème codemeit décrit:
<xsd xmlns='http://Microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='CS' namespace='Namespace.subnamespace'>
<schema>FirstSchema.xsd</schema>
<schema>AnotherSchema.xsd</schema>
<schema>LastSchema.xsd</schema>
</generateClasses>
</xsd>