validation XML Schema ignoré lors de la conformité au niveau du fragment est activé?

StackOverflow https://stackoverflow.com/questions/3632767

  •  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

ne sont pas repérées comme invalides, cela fait partie de la raison pour laquelle je crois fragment conformité ignore schéma. Aussi, quand j'utilise la conformité au niveau du document dans le même scénario, les erreurs de validité sont signalées avec succès.

Pour un exemple de code du type de scénario de validation que je utilise voir cette .

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top