我有一个控制器操作,它将RDF文档作为XML返回给浏览器。浏览器抱怨无法显示文档:
不允许名称空间前缀以保留字符串“xml”开头。处理资源时出错
我试图使用MCVContrib的XMLResult对象将文档写入响应流。如何将此文档正确显示在浏览器中?我是否不得不求助于写一个简单的字符串?
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);
}
答案 0 :(得分:0)
RDF有一个不同的MIME类型,感谢XML。 XMLResult将MIME类型设置为“application / xml”,RDF需要的是“application / rdf + xml”。您需要设置本手册,或者您可以创建自己的ActionResult来设置它。
参见:http://www.w3.org/TR/rdf-syntax-grammar/#section-MIME-Type
答案 1 :(得分:0)
您在归档文档的根目录中有 xml
namespace (as 'xmlns:xml="..."')
。
或强>
您正在使用等于Microsoft XML (MSXML)
或更低的旧Microsoft XML Core Services version 4.0
解析器。 更新到last version of MSXML。
原因:您在返回的XML文档中使用名称空间前缀中的一个/一些Microsoft XML(MSXML)关键字,即xml
,
例如,在返回的xml文档中有一个名为xmlMyProject
的命名空间。请注意,xml
大写无关紧要,即XMLMyProject
,XmlMyProject
......