モジュール java.desktop
パッケージ javax.swing.text.html

クラスHTMLDocument.HTMLReader

java.lang.Object
javax.swing.text.html.HTMLEditorKit.ParserCallback
javax.swing.text.html.HTMLDocument.HTMLReader
含まれているクラス:
HTMLDocument

public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
HTMLドキュメントをHTML要素構造とともにロードするためのHTMLリーダーです。 このクラスは、パーサーからのコールバックのセットであり、属性のタグが付いた要素のセットを生成するために実装されます。 解析は必要な要素サブツリーを記述するトークン群(ElementSpec)を組み立て、これを書込みロックのもとでドキュメントの外部クラスの挿入メソッドを使ってドキュメントに挿入します。

リーダーを構成するには、アクションの処理方法を記述したHTMLDocument.HTMLReader.TagAction型のアクションを登録します。 提供されているアクションの基本になっている考え方は、要素構造が結局のところなんらかのスタイルを持つ文字の並びから成る段落であれば、もっとも自然なテキストの編集オペレーションを提供できる、というものです。 構造的に指定した方が自然な場合もあるので、段落上での任意の構造が許可されるようにすべきであり、その場合でも、構造的なアクションを使って編集する必要があります。 つまり、解析中のストリームで指定されているHTML要素の一部は、属性に折りたたまれ、場合によっては段落が合成されます。 HTML要素が属性に変換される場合、情報が失われないように属性キーはHTML.Tag型になり、値はAttributeSet型になります。 これによって、既存のアクションの多くが機能するようになり、ユーザーは入力をキーボードから入力したり、リターン・キー、BackSpaceキー、Deleteキーなどを押したりして、その適切な結果を得ることができます。 選択を生成したり、属性を適用または削除したりすることもできます。以上のことを考慮した上で、リーダーが行う作業は次のようなタスクに分類できます。

ブロック
ストリームで指定されたものと同様の構造を構成します。 このタスクは、ほかの要素を格納する要素を生成します。
段落
ブロックと同様ですが、段落要素を合成しなくても済むように、要素が段落ビューとともに使用されることを前提とする点が異なります。
文字
要素を任意のテキスト位置で開始し、別の任意のテキスト位置で終了する属性として利用します。 これは最終的には、現在平坦化されているすべてのHTML文字要素とともに1つのテキスト中の文字の並びに統合されます。
特別
埋め込まれたグラフィック要素を生成します。
フォーム
埋込みグラフィック要素と同様の要素を生成します。グラフィック要素との違いは、フォームに関連したコンポーネント・モデルも持っているという点です。
非表示
ドキュメントが読取り専用で表示された場合は隠されてビューには表示されず、ドキュメントが編集される場合は表示される要素を生成します。 これはモデルから情報が失われないようにするのに役立ち、コメントや未知のタグのようなものを格納するために使用します。

現時点では、<APPLET>、<PARAM>、<MAP>、<AREA>、<LINK>、<SCRIPT>、および<STYLE>はサポートされていません。

HTML.Tagで定義されているタグに対して割り当てられているアクションの記述を次の表に示します。

HTMLタグと割り当てられているアクション
タグ ACtion
HTML.Tag.A CharacterAction
HTML.Tag.ADDRESS CharacterAction
HTML.Tag.APPLET HiddenAction
HTML.Tag.AREA AreaAction
HTML.Tag.B CharacterAction
HTML.Tag.BASE BaseAction
HTML.Tag.BASEFONT CharacterAction
HTML.Tag.BIG CharacterAction
HTML.Tag.BLOCKQUOTE BlockAction
HTML.Tag.BODY BlockAction
HTML.Tag.BR SpecialAction
HTML.Tag.CAPTION BlockAction
HTML.Tag.CENTER BlockAction
HTML.Tag.CITE CharacterAction
HTML.Tag.CODE CharacterAction
HTML.Tag.DD BlockAction
HTML.Tag.DFN CharacterAction
HTML.Tag.DIR BlockAction
HTML.Tag.DIV BlockAction
HTML.Tag.DL BlockAction
HTML.Tag.DT ParagraphAction
HTML.Tag.EM CharacterAction
HTML.Tag.FONT CharacterAction
HTML.Tag.FORM 1.4ではBlockAction
HTML.Tag.FRAME SpecialAction
HTML.Tag.FRAMESET BlockAction
HTML.Tag.H1 ParagraphAction
HTML.Tag.H2 ParagraphAction
HTML.Tag.H3 ParagraphAction
HTML.Tag.H4 ParagraphAction
HTML.Tag.H5 ParagraphAction
HTML.Tag.H6 ParagraphAction
HTML.Tag.HEAD HeadAction
HTML.Tag.HR SpecialAction
HTML.Tag.HTML BlockAction
HTML.Tag.I CharacterAction
HTML.Tag.IMG SpecialAction
HTML.Tag.INPUT FormAction
HTML.Tag.ISINDEX IsndexAction
HTML.Tag.KBD CharacterAction
HTML.Tag.LI BlockAction
HTML.Tag.LINK LinkAction
HTML.Tag.MAP MapAction
HTML.Tag.MENU BlockAction
HTML.Tag.META MetaAction
HTML.Tag.NOFRAMES BlockAction
HTML.Tag.OBJECT SpecialAction
HTML.Tag.OL BlockAction
HTML.Tag.OPTION FormAction
HTML.Tag.P ParagraphAction
HTML.Tag.PARAM HiddenAction
HTML.Tag.PRE PreAction
HTML.Tag.SAMP CharacterAction
HTML.Tag.SCRIPT HiddenAction
HTML.Tag.SELECT FormAction
HTML.Tag.SMALL CharacterAction
HTML.Tag.STRIKE CharacterAction
HTML.Tag.S CharacterAction
HTML.Tag.STRONG CharacterAction
HTML.Tag.STYLE StyleAction
HTML.Tag.SUB CharacterAction
HTML.Tag.SUP CharacterAction
HTML.Tag.TABLE BlockAction
HTML.Tag.TD BlockAction
HTML.Tag.TEXTAREA FormAction
HTML.Tag.TH BlockAction
HTML.Tag.TITLE TitleAction
HTML.Tag.TR BlockAction
HTML.Tag.TT CharacterAction
HTML.Tag.U CharacterAction
HTML.Tag.UL BlockAction
HTML.Tag.VAR CharacterAction

</html>が見つかると、Actionは通知されなくなります。