2

ジャージーを使用してGlassFishにRESTサービスを実装しています。JSON出力を使用してサービスを実行していますが、人間が読める形式の出力も提供したいと思います。JSON出力に欠けている最も重要なことは、統計の一部のフィールドをクリック可能なリンクに変換して、関連する統計を表示することです(別のREST呼び出しを使用)。

フォーマットとコンテンツを分離したいので、HTMLを直接作成したくありません。私はxml+xsltを使用するのが賢明なアプローチかもしれませんが。org.w3c.domを使用してXMLドキュメントを作成できますが、xsltを添付する方法がわかりません。

これが私が今していることのおおよそです:

@GET
@Path("history_id")
@Produces("application/xml")
public Document history(@QueryParam("id") String idText) throws ParserConfigurationException
{
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = factory.newDocumentBuilder();
        Document doc = docBuilder.newDocument();
        Element root = doc.createElement("root");
        doc.appendChild(root);
        Element el = doc.createElement(name);
        el.setTextContent(value);
        root.appendChild(el);
        return doc;

生成されたXMLに次のディレクティブを表示したいと思います。

<?xml-stylesheet type="text/xsl" href="history.xsl"?">

XMLに添付するxsltを指定するにはどうすればよいですか?それとも私のアプローチはおそらく根本的に間違っていて、これは通常他の方法で行われますか?

4

1 に答える 1

3

その「ディレクティブ」は、XMLの世界では「処理命令」と呼ばれます。DOMAPIを使用して作成できます。

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = factory.newDocumentBuilder();
    Document doc = docBuilder.newDocument();
    doc.appendChild(doc.createProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"history.xsl\""));

次に、クライアント側のXSLTをサポートするブラウザー/ユーザーエージェントにXMLドキュメントを送信すると、スタイルシートがXMLに適用されます。

于 2012-12-03T11:16:07.467 に答える