2008-12-08 10 views
3

J'ai une application dans laquelle les utilisateurs peuvent télécharger un XSD pour décrire certains types de données d'utilisateur. L'application doit analyser cette XSD pour initialiser correctement divers bits de métadonnées de base de données (par exemple, traduire xs: enumerations en listes de valeurs autorisées qui rempliront des listes déroulantes). Le même XSD saisi par l'utilisateur est également utilisé pour valider les documents XML envoyés à l'application par d'autres systèmes.Un XSD pour décrire des XSD

Est-il possible d'écrire un XSD maître par rapport auquel je peux valider un tel XSD fourni par l'utilisateur afin de limiter la façon dont les utilisateurs peuvent décrire leurs données et ainsi faciliter le travail d'analyse XSD? Par exemple, disons que je voulais permettre aux utilisateurs de télécharger n'importe quel XSD à moins qu'il ne contienne des balises xs: union. Comment puis-je écrire un XSD que je pourrais utiliser pour valider un XSD téléchargé par l'utilisateur pour appliquer cette règle?

Répondre

4

Vous le trouverez ici: http://www.w3.org/2001/XMLSchema.xsd

Juste un soupçon, un schéma commence par xsd: balise de schéma. Et si elle est correcte, contient un attribut:

xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

Suivez l'URL et vous trouvez et la page d'information, avec un lien vers la DTD et XSD.

1

Je pense que vous trouverez ce problème beaucoup plus facile si vous ignorez que les fichiers fournis par l'utilisateur sont des fichiers XSD et ne les considèrent que comme du XML. Après tout, les fichiers XSD ne sont que du XML, vous pouvez donc les appliquer comme n'importe quelle autre. Je voudrais commencer par regarder le XMLSchema's schema. En utilisant cela, vous pouvez écrire votre propre schéma qui ajoute des exigences supplémentaires sur vos documents sources comme l'application de tous les documents ont une union.