Возврат RDF из действия контроллера - ASP.NET MVC
У меня есть действие контроллера, который возвращает документ 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 ответа
RDF имеет другой тип MIME, спасибо только XML. XMLResult установит тип MIME на "application/xml", а RDF требует "application/rdf+xml". Вам необходимо установить это руководство или создать собственный ActionResult, который его устанавливает.
У вас есть xml
namespace (as 'xmlns:xml="..."')
в корне вашего возвращенного документа.
ИЛИ ЖЕ
Вы используете старый Microsoft XML (MSXML)
парсер равен Microsoft XML Core Services version 4.0
или ниже. Обновление до последней версии MSXML.
Причина: вы используете одно / несколько ключевых слов Microsoft XML (MSXML) в префиксах пространства имен в возвращенном документе XML, т.е. xml
,
Например, у вас есть пространство имен, как xmlMyProject
в возвращенном XML-документе. Обратите внимание, что xml
капитализация не имеет значения, т.е. XMLMyProject
, XmlMyProject
...