如何更改XQuery响应的内容类型?

如何更改XQuery响应的内容类型?,xquery,xforms,exist-db,Xquery,Xforms,Exist Db,添加图像而不是代码,因为它不会显示 我有一个形成网页的xquery。它在existdb上运行 此xquery调用另一个使用xforms提交的xquery: 当直接从浏览器运行时,returnTable.xq返回HTML表 在这种情况下,响应中的内容类型为: 您可以从提交中看到,这个HTML表应该替换“table”实例中的数据 它确实替换了数据,但我得到的不是HTML表,而是纯文本。 我用 在网页上显示表格。我尝试了mediatype xml、text/xml和其他 所以,当它被替换时,我

添加图像而不是代码,因为它不会显示

  • 我有一个形成网页的xquery。它在existdb上运行
  • 此xquery调用另一个使用xforms提交的xquery:

  • 当直接从浏览器运行时,returnTable.xq返回HTML表

  • 在这种情况下,响应中的内容类型为:

  • 您可以从提交中看到,这个HTML表应该替换“table”实例中的数据

  • 它确实替换了数据,但我得到的不是HTML表,而是纯文本。 我用
    在网页上显示表格。我尝试了mediatype xml、text/xml和其他

  • 所以,当它被替换时,我在网页上得到了一个纯文本而不是HTML表

    应该是这样的(我以完全不同的方式获得,但由于性能差,不想使用它):

    我认为这是因为响应的内容类型是
    Content-Type=text/javascript
    instaed of
    Content-Type=text/xml

    declare option exist:serialize "method=xml media-type=application/xhtml+xml";
    


    您知道如何更改此选项吗?

    您正在寻找XQuery序列化选项,这些选项在XQuery 1.0和XQuery 3.0之间是不同的

    XQuery 1.0选项将内容类型设置为
    application/xhtml+xml

    declare option exist:serialize "method=xml media-type=application/xhtml+xml";
    
    对于XQuery 3.0,您可以使用标准XQuery序列化选项:

    declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
    declare option output:method "xml";
    declare option output:media-type "application/xhtml+xml";
    

    非常感谢。问题是,当我调用直接在浏览器中返回表的查询时,它返回正确的XML,返回类型为text/XML,但当我从另一个使用http POST的查询调用此查询时,它返回类型text/javascript,并且XML标记从响应体中移除。添加这些选项不会改变此行为。在您现在编写
    的地方,您可能应该编写
    。若要使代码显示在列表中,请将其缩进比已有的多四个空格。要做到这一点,您可以将一个字母(我喜欢
    )直接放在已经缩进的块前面的行上,不缩进,然后选择整个块和
    并按CTRL+K或带大括号的按钮。