2009-08-24 11 views
2

Je dois envoyer un élément XML à d'autres services et je veux m'assurer que mon fichier XML est de format élégant afin que d'autres personnes puissent utiliser leur analyseur XML pour analyser le fichier XML.Est-ce un fichier XML valide?

Pour de tels types de fichiers XML, est-ce un format élégant, qui enfreint les règles de XML? Vous ne savez pas si & # x4 est une séquence de caractères XML valide dans .Net/C#?

Je suis confus quant à savoir si les chaînes commencent par $ # x sont tous valides? Si tous ne sont pas valides, des moyens de les filtrer? Je utilise VSTS 2008 + C# + .Net 3.5.

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x4;</Text> 

Répondre

7

Non. Les références de caractères doivent être terminées par des points-virgules. Mise à jour: Étant donné que l'erreur de syntaxe dans la question a été corrigée, voir http://www.w3.org/TR/xml/#dt-charref pour une description des valeurs acceptables. .

Franchement, je tiens à

+1

Donc, il devrait être ' ' – voyager

+0

Désolé c'est ma faute de frappe, je l'ai corrigé, il devrait se terminer avec; dans ma contribution. Sont-ils des chaînes XML valides qui pourraient être utilisées dans les valeurs d'éléments XML? – George2

+0

Merci pour votre mise à jour. Pour .Net existe-t-il des méthodes existantes ou une solution facile pour filtrer de tels caractères? – George2

5

UTF-8 pour tout sauf », <,> et & Il rend le XML lui-même plus lisible Utilisation XML Validator Il montre l'erreur suivante:..

Erreur: La référence de caractère doit se terminer par le ';' delimiter.

+0

Désolé c'est ma faute de frappe, je l'ai corrigé, ça devrait se terminer avec; dans ma contribution. Sont-ils des chaînes XML valides qui pourraient être utilisées dans les valeurs d'éléments XML? – George2

+0

Le validateur a dit qu'il est invalide, mais pourquoi? Comment filtrer un tel personnage? – George2

+0

Vous souhaitez supprimer tous ces caractères du fichier XML? –

2

Comme d'autres l'ont suggéré, il y avait un manque point-virgule, et utiliser le validateur. Mais il faut noter aussi que tous les personnages sont légaux, même si le format d'entrée est techniquement OK.

Le document suivant en cas d'échec par le validateur:

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x4;</Text> 

celui-ci ne valide:

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x32;</Text> 

pour plus d'informations sur les caractères à utiliser ou à éviter, this seems interesting.

+0

Désolé c'est ma faute de frappe, je l'ai corrigé, ça devrait se terminer avec; dans ma contribution. Comment filtrer ou vérifier si un fichier XML est valide ou non pour les caractères commencent par & # x? – George2