2

Nancy .Net REST Webサービスでは、以下のコードを使用したときに生成されるxmlツリーのルート要素にカスタムxmlns:xsdを指定できる必要があります-これは可能ですか?:

public class RequestModule : NancyModule
{
    Get["/books"] = parameters =>
    {
        return Response.AsXml(List<Book>);
    };
}

上記のコードを使用して/booksを呼び出すと、次のような出力が生成されます...

<ArrayOfBook
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Book>
    ...
    </Book>
    ...
</ArrayOfBook>

ナンシーは、xmlns:xsdの値をカスタムスキーマURLに変更する可能性を提供しますか?だから私は次のようなものを手に入れるでしょう...

<ArrayOfBook
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://myschemaurl.com/2007/MyCustomXMLSchema">
    <Book>
    ...
    </Book>
    ...
</ArrayOfBook>

Nancyをそのまま使用しても上記が不可能な場合、目標を達成するためにコードを変更できるNancyフレームワークのソースコード内の場所を誰かに教えてもらえますか?

4

1 に答える 1

3

Response.AsXmlは、XMLを返すためのすばらしいヘルパーです。自分でResponseオブジェクトを返し、ContentTypeとContentを任意のコンテンツに設定できます。必要なシリアライザーを使用して、応答に貼り付けてください。

Response.AsXmlを使用する場合は、ISerializerの実装と、それをBootstrapper-> InternalConfiguration=>Serializersに登録することを検討する必要があります。Response.AsXmlは、xmlメディアタイプを処理できると言う最初のISerializerを使用します

于 2013-01-14T12:37:32.460 に答える