2010-06-01 25 views
12

Duplicar posible:
XmlSerializer: remove unnecessary xsi and xsd namespacesRetire espacio de nombres XML generado en .NET

estoy generando cierta XML utilizando XMLSerializer y una clase marcado con atributos. Este XML se envía a un servicio web REST.

Se genera el siguiente código XML:

<?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> 

todo estaría bien, excepto el servicio web que estoy usando no entiende la materia esquema y genera un error 500.

¿Hay alguna manera de detener XmlSerializer agregando 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"' a la etiqueta ?

+2

No es mi servicio web. –

+0

No cambia el hecho de que está roto. Haz algo al respecto. –

+3

Sí, intentaría informar que como un error, un servicio web que toma entrada XML pero que no puede tratar con los atributos xml namesapce está roto. El peor caso es que debería ignorarlos. –

Respuesta

21

si utiliza serializador personalizado probar este

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

a continuación, añadir los espacios de nombres se oponen a su serializador.

Cuestiones relacionadas