2

<informaltable>要素をサブクラス化することで最も簡単に解決できると思われるDocBookの微妙なカスタマイズを試みています。role属性を使用してDocBook要素をサブクラス化できることを示唆するステートメントがいくつかあります。

ロールを使用したサブクラス化を暗示するドキュメントが可能

例1-DocBook5.1から:決定的なガイド-DocBookのカスタマイズ

DocBookのほとんどすべての要素にあるrole属性は、要素をサブクラス化するために使用できるテキスト属性です。

例2-DocBook5.1から:決定的なガイド-DocBook要素リファレンス

役割はすべてのDocBook要素で発生するという意味で共通の属性ですが、カスタマイザーはそれが「共通の属性」パターンの一部ではないことに気付くでしょう。異なる要素で独立して役割をサブクラス化できると便利なため、パラメーター化が異なります。

例3-CERN-DocBookを使用したドキュメントの作成

ほとんどのDocBookタグには、共通の属性セットが含まれています。最も頻繁に使用されるこのような一般的な属性は、要素内のデータの言語を指定するlang、他の要素から参照できるように要素にラベルを付けるid、要素をサブクラス化できるroleです。情報的にはより具体的です。

一般的なGoogleの調査結果。

「extenddocbookelementsrole attribute」の組み合わせをグーグルで検索すると、新しい要素を処理するテンプレートに関するページが表示されますが、role属性を使用して要素をサブクラス化することを検討している以下のカスタマイズ例以外のページは表示されないようです。

存在するカスタマイズの例

既存のDocBook要素のフォーマットをカスタマイズする例がありますが、これらはXSLTのカスタマイズであり、DocBookスキーマの拡張については説明していません。

要素を追加する例もありますが<sect6>、冗長すぎて効率的なサブクラス化の手段にはならないようです。技術的には、その例はまったくサブクラス化されていないのではないかと思います。roleまた、その例では、属性を特別に使用していないようです。

属性を使用したサブクラス化はrole実際に実行できますか?

上記の例から、DocBookスキーマはrole属性を使用した要素のサブクラス化を容易にするために特別に設計されたようですが、具体的な例は公開されていないようです。

私はXMLとDocBookの両方に不慣れです。DocBook要素のサブクラス化は非常に簡単なので、気付かれることはありませんか?もしそうなら、誰かがそれがどのように達成されているかを示すことができますか?

roleうまくいかない素晴らしいアイデアを使用してDocBook要素をサブクラス化していますか?もしそうなら、なぜそれは機能しませんか?

注1: サブクラス化<informaltable>が私の元の問題を解決するための正しいアプローチであるかどうかは、まったく別の問題です。

注2: 質問にハイパーリンクが多かったのですが、私の評判では2つ以上投稿できないようです:(

4

1 に答える 1

2

上記の例から、DocBookスキーマはrole属性を使用して要素のサブクラス化を容易にするように特別に設計されているようですが、具体的な例は公開されていないようです。

TDGの例5.14roleは、2つの値のみが許可されるように要素の属性を制約する方法を示す非常に具体的な例<procedure>です(デフォルトでは、任意の値が許可されます)。このカスタマイズには、スキーマの変更が必要です。必要に応じて、と同様のことを行うことができます<informaltable>

そして、あなたがただのようなものを使うことを妨げるものは何もありません

<informaltable role="myspecialtable">
 ...
</informaltable>

これは、最も単純な種類の「サブクラス化」です。スキーマを変更する必要はありません。どのようrole="myspecialtable"に解釈または処理されるかは完全にあなた次第です。

要素を追加する例もありますが、<sect6>冗長すぎて効率的なサブクラス化の手段にはならないようです。技術的には、その例はまったくサブクラス化されていないのではないかと思います。また、その例では、role属性を特別に使用しているようには見えません。

それでは、サブクラス化についてどのように考えていますか?

おそらく、「サブクラス化」という用語は少し誤解を招く可能性があります。DocBookはマークアップシステムであり、プログラミング言語ではありません。DocBook要素をサブクラス化(カスタマイズ)することと、JavaまたはC++でサブクラスを作成することとの類似点はあまり理解されるべきではありません。

魔法のようなものは何もありませんrole。これは、事前定義されたセマンティクスを持たない単なる属性です。DocBookのカスタマイズを作成するために特別なことをする必要はありません。

DocBook要素のサブクラス化は非常に簡単なので、気付かれることはありませんか?

なんでそんなこと言うの?「DocBookのカスタマイズ」の章全体は、DocBook要素のカスタマイズに関するものです。それは見過ごされてしまうものではありません。

ロールを使用してDocBook要素をサブクラス化することは、うまくいかない素晴らしいアイデアですか?

それは機能しますが、おそらくあなたが期待する方法ではありません。

上記のようにrole、要素の属性の特定の値を決定し、それをドキュメントで使用するだけで、実際にはその要素のサブクラス(カスタマイズ、バリアント)を作成できます。それでおしまい。

カスタム要素の使用方法(変換、フィルタリング、視覚化など)は別の話です。

于 2012-07-28T07:51:07.487 に答える