Je sais que j'ai déjà fait cela, mais cela ne fonctionne pas aujourd'hui, et je ne peux trouver nulle part qui explique comment le faire. Cela pourrait être mon manque de sommeil, mais je soupçonne des gremlins.
J'ai un document XML et un répertoire plein de XSD qui le définissent. Comment configurer Visual IDE pour qu'il m'informe des échecs de validation, puis fournir une liste Intellisense de balises et d'attributs valides dans un contexte donné?
Ce que j'ai essayé:
- J'ai ajouté les XSD au projet avec le document XML.
- J'ai ajouté les XSD à la liste XML Schema (sous l'élément de menu XML / Schemas ...).
- J'ai même inclus les attributs schemaLocation et noNamespaceSchemaLocation dans le document XML.
Visual Studio n'abandonne toujours aucune information de débogage ou d'édition utile. J'ai essayé à la fois 2010 et 2008 (je l'ai déjà fait en 2008 je pensais)
Mise à jour: j'ai demandé à un autre développeur d'essayer cela et cela a échoué pour lui aussi. Il sait qu'il l'a fait avec d'autres documents XML et l'a fait fonctionner. J'ai ensuite téléchargé l'éditeur XML Oxygen et cela a bien fonctionné sur les mêmes fichiers XML et XSD, donc les fichiers semblent bien (ou Oxygen est plus indulgent / flexible...)
la source
Vous n'avez pas besoin d'associer manuellement les fichiers dans Visual Studio - il fera automatiquement correspondre un fichier XML à un fichier XSD si vous les avez tous les deux ouverts et que votre espace de noms est défini correctement.
Pour définir l'espace de noms:
Dans l'élément racine du fichier XML:
Dans l'élément de schéma du fichier XSD:
Remarque sur l'utilisation des types dans votre schéma lorsque vous avez un targetNamespace
Étant donné que vous spécifiez a
targetNamespace
dans votre schéma, toutes les références aux types définis dans le schéma devront être précédées d'un espace de noms (c'est pourquoi nous avons ajouté l'xmlns:this
attribut dans l'<xs:schema />
élément ci-dessus ).la source
Un autre point de défaillance ici est Windows 7 "bloquant" les fichiers de schéma ... cliquez avec le bouton droit sur le fichier xsd sur le disque, Propriétés> Général et s'il est bloqué, vous aurez un bouton "Débloquer". Cela provoquait l'échec de ma validation XML dans VS2012.
la source
Votre xsd contient-il un attribut
"targetNamespace"
/schema/@targetNamespace
similaire à l'espace de noms auquel vous faites référence dans le xml?Exemples:
XSD :
XML :
Voir aussi: XML / XSD intellisense ne fonctionne pas dans Visual Studio 2010
la source
J'ai eu ce même problème, mais VS faisait déjà référence correctement à mon schéma. Il s'avère que le fichier que j'essayais de valider n'avait pas d'extension de fichier «xml». Ajout de .xml à la fin de mon nom de fichier et la validation a commencé à fonctionner.
la source