Возврат RDF из действия контроллера - ASP.NET MVC - PullRequest
1 голос
/ 13 декабря 2010

У меня есть действие контроллера, которое возвращает документ RDF в виде XML в браузер. Браузер жалуется, что документ не может быть отображен:

Префикс пространства имен не может начинаться с зарезервированной строки "xml". Ошибка обработки ресурса

Я пытался использовать объект XMLResult MCVContrib для записи документа в поток ответов. Как правильно отобразить этот документ в браузере? Нужно ли прибегать к написанию простой строки?

 public ActionResult Content(string id, string version, string localization)
    {
        IDocumentRequest request = new ResourceRequest()
                                       {
                                           Id = id,
                                           Localization = Localization.GetByName(localization),
                                           Version = version
                                       };

        XmlDocument doc = _kbModel.GetContent(request);

        return new XmlResult(doc);
    }

Ответы [ 2 ]

0 голосов
/ 27 ноября 2012

У вас есть xml namespace (as 'xmlns:xml="..."') в корне вашего возвращенного документа.

OR

Вы используете старый Microsoft XML (MSXML) парсер, равный Microsoft XML Core Services version 4.0 или ниже. Обновление до последней версии MSXML .

Причина : Вы используете одно / несколько ключевых слов Microsoft XML (MSXML) в своих префиксах пространства имен в возвращенном документе XML, т.е. xml,

Например, у вас есть пространство имен типа xmlMyProject в возвращенном XML-документе. Обратите внимание, что капитализация xml не имеет значения, то есть XMLMyProject, XmlMyProject ...

0 голосов
/ 24 марта 2011

RDF имеет другой тип MIME, спасибо только XML. XMLResult установит тип MIME на «application / xml», а RDF требует «application / rdf + xml». Вам необходимо установить это руководство или создать собственный ActionResult, который его устанавливает.

СМ.: http://www.w3.org/TR/rdf-syntax-grammar/#section-MIME-Type

...