クラスDocumentParser

java.lang.Object
javax.swing.text.html.parser.Parser
javax.swing.text.html.parser.DocumentParser
すべての実装されたインタフェース:
DTDConstants

public class DocumentParser extends Parser
HTMLドキュメントのParserです。実際にはDTDを指定できますが、swingのhtml dtdにはこのクラスだけを使うようにしてください。 HTMLのInputStreamを読み取り、ParserCallbackクラスの適切なメソッドを呼び出します。 これは、HTMLEditorKitがHTML urlを解析するために使用するデフォルトのパーサーです。

有効なすべてのタグ、および暗示されているが明示的には指定されていないタグに対して、コールバックを伝えます。 たとえば、HTML文字列(<p>blah)で定義されているのはpタグだけです。 コールバックは次のメソッドを検出します。

  1. handleStartTag(html, ...)
  2. handleStartTag(head, ...)
  3. handleEndTag(head)
  4. handleStartTag(body, ...)
  5. handleStartTag(p, ...)
  6. handleText(...)
  7. handleEndTag(p)
  8. handleEndTag(body)
  9. handleEndTag(html)
italicの項目は暗示されています。つまり、明示的には指定されていませんが、正しいHTMLであるために存在しているということです(headは必要ありませんが、生成されます)。 暗示されるタグについては、AttributeSet引数がキーHTMLEditorKit.ParserCallback.IMPLIEDBoolean.TRUEの値を持ちます。

HTML.Attributesは型保証されたHTML属性の列挙を定義します。 タグの属性キーがHTML.Attributeで定義される場合はHTML.Attributeがキーとして使用され、それ以外の場合はStringが使用されます。 たとえば<p foo=bar class=neat>には2つの属性があります。fooはHTML.Attributeでは定義されず、クラスはHTML.Attributeで定義されるため、AttributeSetは2つの値を持ちます。「neat」というString値を持つHTML.Attribute.CLASSと、「bar」というString値を持つStringキー「foo」です。

位置引数はタグ、コメント、またはテキストの開始を示します。 配列と同様に、ストリームの最初の文字は0という位置が設定されます。 暗示されるタグの場合、位置は次に検出されるタグの位置を示します。 最初の例では、bodyおよびhtmlの暗示された開始タグはpタグと同じ位置が設定され、p、htmlおよびbodyの暗示された終了タグはすべて同じ位置が設定されています。

HTMLは空白をスキップするため、テキストの位置は最初の有効な文字の位置になります。たとえば文字列\n\n\nblahでは、テキストblahは3という位置が設定され、改行はスキップされます。

値を持たない属性、たとえばHTML文字列<foo blah>の属性blahは値を持ちませんが、こうした属性の場合は、AttributeSetの値に配置される値として次の2つが考えられます。

  • DTDが要素の定義を含まない場合、または定義に明示的な値がない場合は、AttributeSetの値はHTML.NULL_ATTRIBUTE_VALUEとなる。
  • DTDが明示的な値を含む場合はdtdのその値が使用される。たとえば<!ATTLIST OPTION selected (selected)#IMPLIED>では、dtdの値(この場合はselected)が使用される。

ストリームの解析が終了すると、コールバックは行末文字列である可能性が高い文字列の通知を受けます。 行末文字列は、ストリームの解析中にもっとも多く検出される\n、\rまたは\r\nのどれかです。

  • フィールドのサマリー

    クラス Parserで宣言されたフィールド

    dtd, strict
    修飾子と型
    フィールド
    説明
    protected DTD
    dtd。
    protected boolean
    このフラグは、ParserがSGMLとの互換性を厳密に調べるかどうかを決定します。

    インタフェースで宣言されたフィールド DTDConstants

    ANY, CDATA, CONREF, CURRENT, DEFAULT, EMPTY, ENDTAG, ENTITIES, ENTITY, FIXED, GENERAL, ID, IDREF, IDREFS, IMPLIED, MD, MODEL, MS, NAME, NAMES, NMTOKEN, NMTOKENS, NOTATION, NUMBER, NUMBERS, NUTOKEN, NUTOKENS, PARAMETER, PI, PUBLIC, RCDATA, REQUIRED, SDATA, STARTTAG, SYSTEM
    修飾子と型
    フィールド
    説明
    static final int
    DTD定数はANYに対応
    static final int
    DTD定数はCDATAに対応
    static final int
    DTD定数はCONREFに対応
    static final int
    DTD定数は、CURRENTに対応
    static final int
    DTD定数はDEFAULTに対応
    static final int
    DTD定数はEMPTYに対応
    static final int
    DTD定数はENDTAGに対応
    static final int
    DTD定数はENTITIESに対応
    static final int
    DTD定数はENTITYに対応
    static final int
    DTD定数はFIXEDに対応
    static final int
    DTD定数はGENERALに対応
    static final int
    DTD定数はIDに対応
    static final int
    DTD定数はIDREFに対応
    static final int
    DTD定数はIDREFSに対応
    static final int
    DTD定数はIMPLIEDに対応
    static final int
    DTD定数はMDに対応
    static final int
    DTD定数はMODELに対応
    static final int
    DTD定数はMSに相当
    static final int
    DTD定数はNAMEに対応
    static final int
    DTD定数はNAMESに対応
    static final int
    DTD定数はNMTOKENに対応
    static final int
    DTD定数はNMTOKENSに対応
    static final int
    DTD定数はNOTATIONに対応
    static final int
    DTD定数はNUMBERに対応
    static final int
    DTD定数はNUMBERSに対応
    static final int
    DTD定数はNUTOKENに対応
    static final int
    DTD定数はNUTOKENSに対応
    static final int
    DTD定数はPARAMETERに対応
    static final int
    DTD定数はPIに対応
    static final int
    DTD定数はPUBLICに対応
    static final int
    DTD定数はRCDATAに対応
    static final int
    DTD定数はREQUIREDに対応
    static final int
    DTD定数はSDATAに対応
    static final int
    DTD定数はSTARTTAGに対応
    static final int
    DTD定数はSYSTEMに対応
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    指定されたdtdでドキュメント・パーサーを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected void
    空のタグを処理します。
    protected void
    終了タグを処理します。
    protected void
    開始タグを処理します。
    protected void
    handleText(char[] data)
    テキストを処理します。
    void
    parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet)
    DTDが指定されている場合に、HTMLストリームを解析します。

    Parserクラスで宣言されたメソッド

    endTag, error, error, error, error, flushAttributes, getAttributes, getCurrentLine, getCurrentPos, handleComment, handleEOFInComment, handleError, handleTitle, makeTag, makeTag, markFirstTime, parse, parseDTDMarkup, parseMarkupDeclarations, startTag
    修飾子と型
    メソッド
    説明
    protected void
    endTag(boolean omitted)
    終了タグを処理します。
    protected void
    1番目、2番目および3番目のエラー・メッセージ引数"?"を使用して、エラー・ハンドラを起動します。
    protected void
    error(String err, String arg1)
    第2および第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。
    protected void
    error(String err, String arg1, String arg2)
    3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。
    protected void
    error(String err, String arg1, String arg2, String arg3)
    エラー・ハンドラを起動します。
    protected void
    現在の属性を削除します。
    現在のタグの属性を返します。
    protected int
    現在解析中の行の行番号を返します。
    protected int
    現在の位置を返します。
    protected void
    handleComment(char[] text)
    HTMLのコメントを検出したときに呼び出されます。
    protected void
    HTMLコメントを閉じずにコンテンツが終了したときにコールされます。
    protected void
    handleError(int ln, String msg)
    エラーが発生したことを示す。
    protected void
    handleTitle(char[] text)
    HTMLのtitleタグを検出したときに呼び出されます。
    protected TagElement
    TagElementを作成します。
    protected TagElement
    makeTag(Element elem, boolean fictional)
    TagElementを作成します。
    protected void
    ドキュメント内で最初に見つかったタグにマークを付けます。
    void
    DTDが指定されている場合に、HTMLストリームを解析します。
    ドキュメント・タイプ宣言マークアップ宣言を解析します。
    protected boolean
    マークアップ宣言を解析します。
    protected void
    開始タグを処理します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • DocumentParser

      public DocumentParser(DTD dtd)
      指定されたdtdでドキュメント・パーサーを作成します。
      パラメータ:
      dtd - dtd。
  • メソッドの詳細

    • parse

      public void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet) throws IOException
      DTDが指定されている場合に、HTMLストリームを解析します。
      パラメータ:
      in - 読者がソースを読む
      callback - コールバック
      ignoreCharSet - trueがcharsetが無視される場合
      スロー:
      IOException - 入出力エラーが発生した場合
    • handleStartTag

      protected void handleStartTag(TagElement tag)
      開始タグを処理します。
      オーバーライド:
      handleStartTag、クラスParser
      パラメータ:
      tag - 処理されるタグ
    • handleEmptyTag

      protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException
      空のタグを処理します。
      オーバーライド:
      handleEmptyTag、クラスParser
      パラメータ:
      tag - 処理されるタグ
      スロー:
      ChangedCharSetException - ドキュメントの文字セットが変更された場合
    • handleEndTag

      protected void handleEndTag(TagElement tag)
      終了タグを処理します。
      オーバーライド:
      handleEndTag、クラスParser
      パラメータ:
      tag - 処理されるタグ
    • handleText

      protected void handleText(char[] data)
      テキストを処理します。
      オーバーライド:
      handleText、クラスParser
      パラメータ:
      data - セクション・テキスト