2010-06-01 2 views
12

Possible en double:
XmlSerializer: remove unnecessary xsi and xsd namespacesSupprimer espace de noms XML généré dans .NET

Je générer du XML en utilisant XMLSerializer et une classe marquée avec attributs. Ce fichier XML est envoyé à un service Web REST.

Il génère le code XML suivant:

<?xml version="1.0" encoding="utf-8"?> 
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <first-name>API</first-name> 
    <last-name>TestPersonDeleteMe</last-name> 
    <title>Delete me</title> 
</person> 

Tout irait bien, sauf le service web que je utilise ne comprend pas les choses de schéma et renvoie une erreur 500.

Existe-t-il un moyen d'arrêter XmlSerializer en ajoutant 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"' à la balise personne?

+2

Ce n'est pas mon service Web. –

+0

Ne change pas le fait qu'il est cassé. Fais quelque chose à ce sujet. –

+3

Ouais j'essaierais de signaler que comme un bogue, un service web qui prend l'entrée xml mais qui peut traiter les attributs du namespace xml est cassé. Le pire des cas est qu'il devrait les ignorer. –

Répondre

21

si vous utilisez cette commande sérialiseur essayer

XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); 
namespaces.Add(string.Empty, string.Empty); 

puis ajoutez à votre objet namespaces sérialiseur.

Questions connexes