validation XML Schema ignoré lors de la conformité au niveau du fragment est activé?
-
26-09-2019 - |
Question
De mon séjour avec XML et la validation du schéma, il semble que lorsque fragment- conformité de niveau est activé XMLReader par exemple, la source XML cesse d'être validée contre toute inclus schèmes.
Cependant, je ne peux pas vérifier dans la documentation MSDN, car il ne semble pas décrire le comportement schéma XSD à la lumière du niveau de conformité. Aussi, si je suppose que ce problème est vrai, je ne peux pas trouver une solution pour elle.
Je voudrais savoir comment valider un XML fragment contre un schéma XSD.
Dans mon cas, je valider contre le XHTML 1 schéma Strict . Par le fait dépréciée des balises HTML comme
Pour un exemple de code du type de scénario de validation que je utilise voir cette .
La solution
Je pense avoir trouvé la réponse dans cet article MSKB assez curieusement intitulé COMMENT : valider XML fragments contre un schéma XML dans Visual C # .NET Le fond de l'article précise:
NOTE: Seules les déclarations de type et les éléments de niveau supérieur dans le XML Les schémas sont validées par rapport à un XML schéma. Sous-éléments sont considérés comme local et ne peut donc pas être Validé. Afin de valider un sous-élément, déclarer un niveau supérieur élément et reportez-vous à cela.
Je crois qu'il ya une erreur dans ce paragraphe et l'intention est de top-level elements in the XML
d'Etat schema
document/fragment
are validated against an XML Schema
Parce que l'exemple de code Microsoft commence son fragment au niveau supérieur (au lieu de façon arbitraire dans un document), il fonctionne avec la validation. Cependant, dans mon cas, je prends une construction mi-document.
me corriger si mon interprétation est erronée.
Solution / solution
Une solution est pour moi mes fragments à l'intérieur farcir un élément de niveau supérieur dans le but de validation.
En d'autres termes, si je traite avec le fragment de XHTML:
<div>MY FRAGMENT</div>
Je peux l'envelopper pour la validation conforme à la XHTML Strict schéma comme:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML fragment enclosed, conforming to XHTML 1.0 Strict Template.</title>
</head>
<body>
<div>MY FRAGMENT</div>
</body>
</html>
Cette solution fonctionne pour moi donc je vais l'utiliser dans l'intervalle; si oui ou non une meilleure solution existe, je suis encore incertain.