2010-08-19 5 views
0

J'essaie de générer une classe C# basée sur un schéma .xsd. Ce schéma a plusieurs importations que j'ai incluses sur la ligne de commande dans mon fichier batch. Il a également inclus qui devrait être résolu en utilisant le schemaLocation pour trouver le fichier sur le disque. Je reçois des erreurs pour plusieurs types qui ne sont prétendument pas déclarés. Ces définitions sont dans les schémas "inclus" dans un dossier sous le schéma où la valeur est utilisée.XSD Génération d'un objet d'exécution

+0

Veuillez publier ce que vous utilisez pour générer les classes C# (xsd.exe par exemple) et l'erreur exacte que vous obtenez lors de l'exécution. – captaintom

+0

xsd.exe - Avertissement de validation de schéma: le type '....' n'est pas déclaré La déclaration est dans un schéma inclus dans le schéma où l'erreur se produit (non importée, donc le schéma n'est pas explicitement listé) . J'ai besoin de générer une classe C# puis de l'utiliser dans mon service pour désérialiser les chaînes xml entrantes. – jmac

Répondre

0

Si vous avez les schémas inclus, XSD.EXE gère cela assez bien, mais vous devez creuser pour trouver la documentation.

Examinez this link dans la section relative à l'utilisation d'un fichier XML pour diriger XSD.EXE. La version courte est que vous allez créer un petit fichier xml avec plusieurs nœuds <Schema> qui pointent vers: le schéma pour lequel vous avez réellement besoin de schémas ET les schémas importés.

Ensuite, vous exécuterez XSD.EXE /p [yourXsdFile.xsd]. Si vous avez suivi les instructions correctement (je ne l'ai fait qu'une seule fois, donc je ne suis pas un expert, et il m'a fallu quelques essais pour obtenir les résultats que je voulais), vous obtiendrez un seul fichier .cs avec tous les données de classe nécessaires.

+0

J'ai vu une implémentation de l'utilisation du fichier XML, ce qui vous évite de répertorier tous les schémas référencés sur la ligne de commande et cela concerne les importations. Mon problème est que j'ai un include qui inclut alors 10 autres schémas. Ceux-ci ne peuvent pas être explicitement listés car ils sont tous essentiellement dans le même espace de noms. Cependant, le fichier xsd.exe ne résout pas le chemin et n'utilise pas les schémas. – jmac

Questions connexes