Schémas XSD autorisant des caractères spéciaux / réservés dans une balise d'élément de chaîne

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

  •  03-07-2019
  •  | 
  •  

Question

Dans une balise d'élément de chaîne, l'analyseur XML recevra confuse s'il trouve les caractères suivants

'
"
<
>

& amp;

(c'est-à-dire, disons que le nom de la société a été extrait d'un champ de base de données et se présente comme suit: & "Smith & et Sons &";)

La question est la suivante: comment pouvez-vous concevoir votre XSD pour ignorer ces caractères s’ils se trouvent dans un élément?

Était-ce utile?

La solution

Vous ne pouvez pas lui faire ignorer ces caractères.

Ils sont invalides en XML et doivent donc être échappés ou encapsulés dans des sections CDATA. Il n’existe aucun moyen pour ces caractères d’apparaître en XML à moins que ne le construisiez pas de façon appropriée (à savoir: concaténation de chaînes).

Si vous construisez votre code XML en utilisant les moyens appropriés (une bibliothèque XML de certaines sortes), ces caractères sont remplacés par leurs équivalents échappés au format XML de manière transparente et aucun analyseur ne se plaindra.

Autres conseils

La réponse est que vous n'en avez pas.

Le créateur du contenu XML doit les placer dans les sections CDATA.

Si vous extrayez " Smith & amp; Fils & Quot; de la base de données, il devrait être échappé lorsqu’il est inséré dans votre XML

par exemple. ce qui précède deviendra 'Smith & amp; amp; Fils de

De même pour les autres caractères ci-dessus.

La façon dont cela se produit dépend de la manière dont vous créez votre contenu XML. Si vous utilisez une API telle que DOM, cela devrait se faire automatiquement. Si vous assemblez votre XML à la main, vous devez vous en préoccuper (ainsi que d’autres problèmes tels que le codage de caractères, ce qui signifie que l’utilisation d’une API est l’option préférable ici).

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