2010-06-01 10 views
12

Powiel możliwe:
XmlSerializer: remove unnecessary xsi and xsd namespacesUsuń nazw z wygenerowanym XML w .NET

jestem generowania niektóre XML przy użyciu XmlSerializer i klasy oznaczony z atrybutów. Ten kod XML jest wysyłany do usługi sieciowej REST.

Generuje następujące 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> 

Wszystko byłoby dobrze, z wyjątkiem usługi internetowej używam nie rozumie rzeczy schematu i wyrzuca błąd 500.

Czy istnieje sposób, aby zatrzymać XmlSerializer dodając 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"' do osoby tag?

+2

To nie jest moja usługa internetowa. –

+0

Nie zmienia faktu, że jest uszkodzony. Zrób coś z tym. –

+3

Tak, chciałbym spróbować zgłosić to jako błąd, usługa sieci web, która pobiera dane wejściowe XML, ale nie może zająć się atrybutami namesapce xml jest zepsuta. W najgorszym przypadku powinien je zignorować. –

Odpowiedz

21

jeśli używasz niestandardowego serializer spróbować

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

następnie dodać nazw obiektów do serializatora.

Powiązane problemy