Hinzufügen eines namespace-Präfix zu einem XmlRoot-Attribut
:riI arbeite .Net web api, haben wir eine Basis-Klasse behandelt alle Antworten von unserer api. Diese Klasse wird immer zurückgegeben werden, wie die Wurzel der Anfrage mit, welche Daten der Benutzer angeforderte drin.
So wird der Benutzer immer eine Antwort erhalten, die entlang der Linien von:
<Content xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
<Item>Information Here</Item>
</Content>
Habe ich folgende code gibt das oben fein:
[XmlRoot(ElementName = "Content", Namespace = "http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd")]
public class MyResponse<T> : IMyResponse<T>
where T : class
{//rest of class}
So, egal was der root-tag der Rückgabe der Daten ist, wird es immer geändert werden, um "Content". Also, wenn T in meinem code ist ein PersonList, es geändert werden, um "Inhalte" in der XML. Dies ist, um die Kohärenz in unseren Reaktionen.
Nun ich muss noch ein Präfix für den tag. "ri:" Also, die Antwort erhalten wird:
<ri:Content xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ri="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
<Item>Information Here</Item>
</ri:Content>
Jede Frage sehr nahe, was ich benötigen Lösungen, um das hinzufügen des Präfix im code.
Möchte ich wissen, ob es eine Möglichkeit gibt, dies zu tun mit dem Attribut ?
Hier ist eine ähnliche Frage wurde nie beantwortet
Bearbeiten: Hinzufügen ri: der ElementName des XmlRoot-Attribut nicht funktioniert.
[XmlRoot(ElementName = "ri:Content", Namespace = "http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd")]
Gibt wie:
<ri_x003A_Content xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
<Item>Information Here</Item>
</ri_x003A_Content>
xmlns:ri="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd"
ist, was es sein sollte.Können Sie fügen Sie den code, die Sie verwenden, um führen Sie die Serialisierung zu XML?
Verwandte: stackoverflow.com/questions/2339782/...
InformationsquelleAutor strvanica | 2015-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die kurze Antwort ist Nein, Sie können derzeit nicht hinzufügen von namespace-Präfixen per XML-Serialisierung Attribute.
Attribute beschreiben nur die Struktur des XML-Dokuments. Namespace-Präfixe sind weitgehend irrelevant, um ein XML-DOM - alles, was zählt, ist, dass das element hat die richtigen namespace. Der Präfix ist nur interessant, um die Textdarstellung des Dokuments, das ist durchaus ein Formatierung Anliegen und ist außerhalb des Bereichs der Serialisierung Attribute Zweck.
Wenn Sie brauchen, um das format der XML-text, der geschrieben wird, müssen Sie die Kontrolle über die Formatierung, die erfordert, dass Sie den code ändern, führt die Serialisierung.
Sehen XML-Serialisierung und namespace-Präfixe für ein wirklich einfaches Beispiel dafür, wie das zu erreichen, was Sie wollen.
InformationsquelleAutor Paul Turner