通过 Jersey Rest 将 XSLT 和 XSD 架构应用于 xml 输出

发布于 2024-12-20 01:46:50 字数 108 浏览 1 评论 0原文

有没有办法通过 REST 服务将 xsl 和 xsd 应用于 xml 输出?我正在使用 Jersey 1.4 和 JAXB 2.2 jre 实现。谢谢。无法使用 MOXy 或其他 JaxB 实现。谢谢。

Is there a way to apply an xsl and xsd to an xml output via REST services? I'm using Jersey 1.4 with JAXB 2.2 jre implementation. Thanks. Can't use MOXy or other JaxB implementations. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骄傲 2024-12-27 01:46:50

您可以从 JAX-RS 服务返回 javax.ws.rs.core.StreamingOutput。在 StreamingOutput 的实现中,您可以将 JAXB 与 XSLT 和 XSD 结合使用。

public class MyStreamingOutput implements StreamingOutput {

    private JAXBContext jc;
    private Transformer t;
    private XmlSchema s;
    private Object o;

    public MyStreamingOutput(JAXBContext jc, Transformer t, XmlSchema s, Object o) {
        this.jc = jc;
        this.t = t;
        this.s = s;
        this.o = o;
    }

    public void write(java.io.OutputStream output) throws java.io.IOException, WebApplicationException
        Marshaller m = jc.createMarshaller();
        m.setSchema(s);
        JAXBSource source = new JAXBSource(m,o):
        StreamResult result = new StreamResult(output);
        t.transform(source, result);
    }
}

You could return a javax.ws.rs.core.StreamingOutput from your JAX-RS service. In your implementation of StreamingOutput you could use JAXB with XSLT and XSD.

public class MyStreamingOutput implements StreamingOutput {

    private JAXBContext jc;
    private Transformer t;
    private XmlSchema s;
    private Object o;

    public MyStreamingOutput(JAXBContext jc, Transformer t, XmlSchema s, Object o) {
        this.jc = jc;
        this.t = t;
        this.s = s;
        this.o = o;
    }

    public void write(java.io.OutputStream output) throws java.io.IOException, WebApplicationException
        Marshaller m = jc.createMarshaller();
        m.setSchema(s);
        JAXBSource source = new JAXBSource(m,o):
        StreamResult result = new StreamResult(output);
        t.transform(source, result);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文