web-dev-qa-db-fra.com

Plusieurs fichiers de schéma XSD vers des classes C #

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.

39
Ray Lu

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.

51
John Saunders

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>
33
anony mouse