1

我有一个 Java 中的 sevlet,它创建了一个 RDF/XML-ABBREV 模型。我的问题是响应不包含 xml 版本标记。

目前的回应:

<rdf:RDF
    xmlns:myNS="http://www.sap.de/research/BusinessObjectOntology#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <myNS:Resource rdf:about="http://localhost/myResource">
    ...
  </myNS:Resource>
</rdf:RDF>

但我需要<?xml version="1.0"?>在模型的开头。我是否必须在我的代码中添加一些内容,或者为什么 xml 版本标签不显示?

resp.setCharacterEncoding(CHARSET);
resp.setContentType("application/rdf+xml");
resp.setStatus(HttpStatus.OK_200);
model.write(resp.getWriter(), "RDF/XML-ABBREV");

谢谢

4

1 回答 1

2

该声明是可选的,但您可以要求它。

根据XML 编写器文档

默认行为仅在被要求写入使用 UTF-8 或 UTF-16 以外的其他编码的 OutputStreamWriter 时给出 XML 声明。

要自定义输出尝试:

...
RDFWriter writer = model.getWriter("RDF/XML-ABBREV");
writer.setProperty("showXmlDeclaration","true");
writer.write(model, resp.getWriter(), null);
于 2013-02-15T11:14:58.990 回答