2011-12-25 2 views
2

Existe-t-il un moyen de dire au XmlSchemaSet d'ignorer les inclusions lors de la compilation?Comment désactiver Inclus dans XSD lors de la compilation?

var schemaSet = new XmlSchemaSet(); 
schemaSet.ValidationEventHandler += ValidationCallback; 
schemaSet.Add(targetNamespace, filepath); 
schemaSet.Compile(); 

Si je ne compilent pas, qui ne tient pas compte includes, mais je ne suis pas la propriété il reste ElementSchemaType de la XmlSchemaElement, null.

Répondre

2

Il serait plus intéressant si vous pouviez également décrire pourquoi vous voudriez ignorer les références externes pendant la compilation. Généralement, ces références externes (inclure ou importer) sont nécessaires car elles fourniraient des définitions pour les composants réellement référencés, tels qu'un type, un élément, un groupe, etc. Un point de prudence, en général, est qu'une redéfinition ne peut pas être effectuée. éteint (ça va échouer immédiatement). Le plus proche de vos besoins est de définir un résolveur personnalisé (s'étendant de XmlUrlResolver) que vous associez à votre lecteur via XmlReaderSettings; "désactiver" se traduirait par le retour de null dans la méthode GetEntity. Si au lieu de "désactiver" vous pouvez trouver que vous avez besoin d'une "redirection", alors ce qui précède est certainement comment vous le pouviez (au lieu d'un null, vous retourneriez un flux au schéma que vous voulez). Une chose que vous devez garder à l'esprit est que si le XmlSchemaSet doit inclure/import que vous souhaitez désactiver, il ne compilera jamais s'il ne résout pas. Si elle ne compile pas, toutes les propriétés PSVI (ElementSchemaType étant l'une d'entre elles) ne seront pas remplies. Quel genre de retour à pourquoi vous voulez une telle chose?

+0

Je me suis rendu compte au cours des 3 dernières semaines de ce que feraient l'éteindre ou le faire. Je me rends compte que j'ai vraiment besoin d'être allumé. Je voulais désactiver les includes et les imports parce que je parcourais tous les types du schéma et les convertissais ensuite en JSONSchema. Maintenant, j'ai réussi à le faire avec succès. Initialement, la nature récursive du schéma me donnait un mal de tête, les effets secondaires persistent toujours. Je voulais toutes les informations possibles sur le schéma, puis l'écrire dans JSONSchema. Exigence étrange je suppose mais il s'est en effet avéré être un exercice réfléchi. –

Questions connexes