5

私は基本的なワード プロセッシング アプリケーションを作成しており、コードが画面にレンダリングするために解析するネイティブの「内部」形式に落ち着こうとしています。将来、XSLT を記述して ODF や XHTML などに変換できるように、これを XML にしたいと考えています。

使用する既存の標準を検索する場合、有望と思われる唯一の標準は ODF です。しかし、それは私が必要としているものに対して大規模なやり過ぎのように見えます. 必要なのは、段落タグ、フォントの選択、フォントのサイズと装飾だけです...それだけです。最小限の ODF レンダラーを実装するだけでも長い時間がかかりますし、手間をかける価値があるかどうかもわかりません。

現在、独自の XML 形式を作成することを考えていますが、それはあまり良い方法ではありません。特に、将来必要になるかもしれない XSLT はすでに書かれているので、標準を使用することをお勧めします。

それとも、弾丸をかじってODFを実装する必要がありますか?

編集:答えについて

以前から XSL-FO の存在は知っていましたが、仕様の重みからあまり意識していませんでした。しかし、その通りです。サブセットがあれば、作業に必要なものすべてと成長の余地が得られます。リマインダーをどうもありがとう。

さらに、FOP や RenderX などのレンダリング ライブラリを含めることで、無料で PDF を生成できます。悪くない...

4

5 に答える 5

5

物事のプレゼンテーション面を表現する必要があることは確かなので、 XSL-FO W3C 勧告を参照する価値があるかもしれません。これは本格的なページ記述言語であり、よく知られている XSLT の残りの半分 (非常にファッショナブルではありません) です。

明らかに全体が「軽量」ではありませんが、非常に限られたサブセットを組み込んだ場合、(「段落タグ、フォント選択、フォントサイズと装飾」の仕様に一致するように) fo:block一般的なフォント プロパティ、次のようなもの:

<yourcontainer xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:block font-family="Arial, sans-serif" font-weight="bold"
        font-size="16pt">Example Heading</fo:block>
    <fo:block font-family="Times, serif"
        font-size="12pt">Paragraph text here etc etc...</fo:block>
</yourcontainer>

これには、独自のロールを作成するよりもいくつかの利点があります。作業するためのオープンな仕様があり、それが意味するすべてがあります。CSS プロパティを XML 属性として (SVG と同様の方法で) 再利用するため、書式設定の詳細の多くは多少なじみがあるように見えます。たとえば、インテリジェントなページングが必須の機能であると後で判断した場合は、アプリケーションに関連する仕様のセクションを追加してください。

XSL-FO を調査することで得られるもう 1 つのことがあります。段落とフォントを実行するだけでさえ、恐ろしく複雑になる可能性があることです。さまざまな言語やユース ケースでテキスト レイアウトと改行の「正しい方法」を実行しようとすることは、私にとって非常に困難な作業のように思えます。

于 2008-08-30T00:36:55.490 に答える
1

ワードプロセッシング専用の場合、DocBookはODFよりも少し軽いかもしれません。

ただし、wikiエントリには次のように記載されています。

DocBookは、技術文書用のセマンティックマークアップ言語です。もともとはコンピュータのハードウェアとソフトウェアに関連する技術文書を書くことを目的としていましたが、他の種類の文書にも使用できます。

それで、それは汎用のワードプロセッサにはそれほど適していないかもしれませんか?

DocBookを使用する利点は、多数のDocBook->他のフォーマットコンバーターが利用可能であるという事実です。お役に立てれば。

于 2008-08-27T20:53:51.657 に答える
1

私はDocBookが好きですが、実際には適合しません。XSLTを使用してプレゼンテーション形式にレンダリングすることを目的として、プレゼンテーションに依存しないように努めています。

ワードプロセッサでは、ユーザーはコンテンツとともにプレゼンテーションを編集しています。たとえば、ユーザーは「キーワード」をマークする必要はありません。必然的に、テキストを太字にする必要があります。

DocBookエディターは非常に優れたものですが(良いものが存在するかどうかはわかりません)、実際には私が行っていることではありません。

于 2008-08-27T20:57:30.790 に答える
0

そうですね...とにかくXMLに変換できる必要があるので、DOMツリーからすぐに作業することを妨げるものが何もないのに、なぜドキュメントツリーとDOMツリーの両方をメモリに保持するのでしょうか。

特に、私のプログラムのユニークな機能の1つは、入力時にすべてが常に保存されることであり、キーを押すたびにXMLへの変換全体を実行したくないためです。入力と出力をメモリ内のDOMツリーに直接結び付けるだけの方が簡単です。

編集:ああ、そしてXHTMLの唯一の問題は、基本的なページ付けをサポートしたいということです。そのためにいくつかの追加のタグを使用することで私を止めるものは何もないと思いますが...

于 2008-08-27T20:48:52.247 に答える
-1

XML は内部形式ではなく、外部形式です。

XHTMLの何が問題になっていますか? それは単純でどこにでもあります (少なくとも HTML はそうです)。あなたの実装は簡単にデバッグでき、ユーザーは永遠に素晴らしいものになるでしょう。

于 2008-08-27T20:44:57.230 に答える