データを他の場所で使用できるように抽象化のレベルを維持しながら、フォーマットされたテキストのブロック(改行、タブ、リストなど)をデータベース(特定のものはありません)にどのように保存してWeb(XHTML)に表示しますか?アプリケーションまたはWebサイトの構造が将来変更される場合はどうなりますか?
2 に答える
XML を使用してドキュメントの構造を保存し、Web ブラウザーに表示する前に常に何らかの XSLT 変換を適用します。こうすることで、情報をさまざまなブラウザーや、通常の UI での表示やプレーン テキスト ドキュメントへのエクスポートなどの他の用途に適応させることができます。
構造は、フォーマット情報だけでなく、意味のあるものでなければなりません。理想的には、ドメイン固有のデータ モデルの表現です。
もちろん、意味のある情報がドキュメント構造である場合、次のようなものを定義することを止めるものは何もありません。
<document>
<title>SomeTitle</title>
<paragraph>Some Long paragraph text</paragraph>
</document>
このコンテキストで XML を使用するもう 1 つの利点は、データベースが (Oracle のように) XML をサポートしている場合、テキストの内容を照会できることです。
テキストは頻繁にクエリする必要がないものであるか、コンテンツは実際には表示のみを目的としているものであると想定しています。それ以外の場合は、データベースを正規化する方がよい場合があります。
あなたの質問にはわずかに衝突する2つのアイデアがあります - データをコンテンツから分離して再利用できるようにすることと、フォーマットデータを含めることです。
書式設定データはデータの一部ですか、それとも単なるメタデータですか?
これは前に見たことがありません。基本的にCSS / HTMLの難問のようです。
これらのテキスト ブロックが既知のデータ スキームに適合する場合 (マリオの回答が想定しているように)、ええ、私は彼の回答を使用しますが、あなたの質問を読み直して回答します (そして想定します)。 、マリオが使用した段落タグ?
書式設定は基本的にデータの一部であり、単なる追加ではなく、CSS / HTML ソリューションのようなものを採用することをお勧めします。標準の XHTML タグを使用してテキストを保存し、CSS で使用できるようにします。これは、標準の UI を使用する場合 (非 Web アプリケーションの場合など) に解析され、必要に応じてタグを削除して置き換えることができます。
もちろん、独自のマークアップ (< span class="myBitOfText /> の代わりに [myBitOfText #]) を作成することもできますが、再目的化や文字列操作を必要としないデータベースからの戻り値が 1 つある場合もあります。