モジュール java.xml
パッケージ org.xml.sax.ext

クラスDefaultHandler2

  • すべての実装されたインタフェース:
    ContentHandler, DTDHandler, EntityResolver, ErrorHandler, DeclHandler, EntityResolver2, LexicalHandler


    public class DefaultHandler2
    extends DefaultHandler
    implements LexicalHandler, DeclHandler, EntityResolver2
    このクラスはSAX2の基本となるハンドラ・クラスを拡張して、SAX2のLexicalHandlerDeclHandler、およびEntityResolver2拡張をサポートします。 元のSAX1 resolveEntity()メソッドをオーバーライドする以外は、追加されたハンドラ・メソッドは戻るだけです。 サブクラサーはメソッドごとにすべてをオーバーライドできます。
    このモジュールは、ソース・コード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません

    注: このクラスは、ContentHandler.setDocumentLocator()呼出しにLocator2オブジェクトが渡され、またContentHandler.startElement()呼出しにAttributes2オブジェクトが渡されたことをすでに認識している可能性があります。

    導入されたバージョン:
    1.5, SAX 2.0 (extensions 1.1 alpha)
    • コンストラクタの詳細

      • DefaultHandler2

        public DefaultHandler2​()
        すべての構文解析イベントを無視するハンドラを構築します。
    • メソッドの詳細

      • startCDATA

        public void startCDATA​()
                        throws SAXException
        インタフェースからコピーされた説明: LexicalHandler
        CDATAセクションの開始を報告します。

        CDATAセクションのコンテンツは、正規のcharactersイベントを介して報告されます。このイベントは境界の報告だけに使用されます。

        定義:
        startCDATA、インタフェース: LexicalHandler
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
        関連項目:
        LexicalHandler.endCDATA()
      • startDTD

        public void startDTD​(String name,
                             String publicId,
                             String systemId)
                      throws SAXException
        インタフェースからコピーされた説明: LexicalHandler
        DTD宣言がある場合、その開始を報告します。

        このメソッドは、DOCTYPE宣言の開始を報告するメソッドです。文書にDOCTYPE宣言が含まれていない場合は呼び出されません。

        DTDHandlerイベントまたはDeclHandlerイベントを介して報告されるすべての宣言は、startDTDイベントからendDTDイベントまでの間に出現することになっています。 宣言は、startEntityイベントからendEntityイベントまでの間に出現しないと、内部DTDサブセットに所属するものと見なされます。 DTDのコメントおよび処理命令も、startDTDイベントからendDTDイベントまでの間に、元の(論理的な)発生順で報告されることになっています。ただし、DTDHandlerイベントやDeclHandlerイベントに対する正確な相対位置に出現する必要はありません。

        startDTD/endDTDイベントは、ContentHandlerからのstartDocumentイベントとendDocumentイベントの間で、最初のstartElementイベントの前に出現します。

        定義:
        startDTD、インタフェース: LexicalHandler
        パラメータ:
        name - 文書型名。
        publicId - 宣言された外部DTDサブセットの公開識別子。宣言されていない場合はnull。
        systemId - 宣言された外部DTDサブセットのシステム識別子。宣言されていない場合はnull。 (文書のベースURIに対しては解決されません)
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
        関連項目:
        LexicalHandler.endDTD(), LexicalHandler.startEntity(java.lang.String)
      • startEntity

        public void startEntity​(String name)
                         throws SAXException
        インタフェースからコピーされた説明: LexicalHandler
        内部および外部のXMLエンティティの一部の開始を報告します。

        パラメータ・エンティティ(外部DTDサブセットを含む)の報告機能はオプションです。LexicalHandlerイベントを報告するSAX2のドライバの中には、この機能を実装しないものもあります。http://xml.org/sax/features/lexical-handler/parameter-entities機能を使って、パラメータ・エンティティの報告を照会または制御できます。

        一般的なエンティティは、正規名で報告されます。パラメータ・エンティティ名の前には「%」が付けられています。外部DTDサブセットは「[dtd]」という擬似エンティティ名を持っています。

        SAX2ドライバがこれらのイベントを提供しているときは、その他のすべてのイベントをstart/endエンティティ・イベント内に正しく入れ子にする必要があります。 DeclHandlerまたはDTDHandlerのイベントを正しい順序で並べる必要はありません。

        スキップされたエンティティは、ContentHandlerインタフェースの一部であるskippedEntityイベントを介して報告されます。

        SAXが採用しているストリーミング・イベント・モデルの制約により、次の状況では一部のエンティティ境界を報告することができません。

        • 属性値に含まれている一般的なエンティティ
        • 宣言に含まれているパラメータ・エンティティ

        これらは通知なく拡張されます。元のエンティティ境界の位置は示されません。

        文字参照の境界(実際にはエンティティではない)も報告されません。

        すべてのstart/endEntityイベントを正しく入れ子にする必要があります。

        定義:
        startEntity、インタフェース: LexicalHandler
        パラメータ:
        name - エンティティの名前。 パラメータ・エンティティの場合、この名前は「%」で始まります。外部DTDサブセットの場合は「[dtd]」となります。
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
        関連項目:
        LexicalHandler.endEntity(java.lang.String), DeclHandler.internalEntityDecl(java.lang.String, java.lang.String), DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
      • comment

        public void comment​(char[] ch,
                            int start,
                            int length)
                     throws SAXException
        インタフェースからコピーされた説明: LexicalHandler
        文書内の任意の位置にあるXMLコメントを報告します。

        このコールバックは、文書要素の内外に存在するコメント(外部DTDサブセット内のコメントも含む)に対して使用されます。 DTD内のコメントは、start/endDTDイベントとstart/endEntityイベント(使用されている場合)の内部に正しく入れ子にする必要があります。

        定義:
        comment、インタフェース: LexicalHandler
        パラメータ:
        ch - コメントに含まれる文字を格納する配列。
        start - 配列内の開始位置。
        length - 配列から使用される文字数。
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
      • attributeDecl

        public void attributeDecl​(String eName,
                                  String aName,
                                  String type,
                                  String mode,
                                  String value)
                           throws SAXException
        インタフェースからコピーされた説明: DeclHandler
        属性型宣言を報告します。

        有効な(最初の)属性宣言だけが報告されます。 型は、「CDATA」、「ID」、「IDREF」、「IDREFS」、「NMTOKEN」、「NMTOKENS」、「ENTITY」、「ENTITIES」、区切り文字「|」と、削除されたすべての空白文字とともに括弧に入れられたトークン・グループ、または削除されたすべての空白文字とともに括弧に入れられたトークン・グループの直前にある空白文字の、直前の「NOTATION」という語のどれかの文字列になります。

        値はアプリケーションに報告され、適正に正規化されてエンティティ参照と文字列参照を拡張した値になります。

        定義:
        attributeDecl、インタフェース: DeclHandler
        パラメータ:
        eName - 関連要素名。
        aName - 属性の名前。
        type - 属性型を示す文字列。
        mode - 属性のデフォルト・モードを示す文字列(#IMPLIED、#REQUIRED、または#FIXED)。いずれにも当てはまらない場合はnull。
        value - 属性のデフォルト値を示す文字列。存在しない場合はnull。
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
      • elementDecl

        public void elementDecl​(String name,
                                String model)
                         throws SAXException
        インタフェースからコピーされた説明: DeclHandler
        要素型宣言を報告します。

        コンテンツ・モデルは、文字列「EMPTY」、文字列「ANY」またはカッコに入れられたグループ(オプションで出現インジケータを伴う)で構成されます。 このモデルは、すべてのパラメータ・エンティティが完全に解決され、すべての空白文字が削除されるように正規化されます。また、囲むカッコを含みます。 その他の正規化(重複したカッコの削除、出現インジケータの簡易化など)はパーサーによって随意行われます。

        定義:
        elementDecl、インタフェース: DeclHandler
        パラメータ:
        name - 要素型名。
        model - コンテンツ・モデルを示す正規文字列。
        例外:
        SAXException - アプリケーションが例外を発生させる場合があります。
      • getExternalSubset

        public InputSource getExternalSubset​(String name,
                                             String baseURI)
                                      throws SAXException,
                                             IOException
        外部サブセットが文書テキストに宣言されなかった場合、何も使用されないことをパーサーに通知します。
        定義:
        getExternalSubset、インタフェース: EntityResolver2
        パラメータ:
        name - 文書のルート要素の識別。 利用可能なDOCTYPE宣言または実際のルート要素からの名前。
        baseURI - 文書のベースURI。外部サブセットを選択する追加ヒントとして機能する。 XMLReaderにInputSourceしか提供されなかったためにnullとなる場合を除き、常に絶対URIである。
        戻り値:
        パーサーによって使用される新しい外部サブセットを記述するInputSourceオブジェクト。外部サブセットが提供されない場合はnullが示される。
        例外:
        SAXException - 任意のSAX例外。ほかの例外をラップしている可能性があります。
        IOException - 新しいInputStreamやReaderの作成失敗、または不正なURLを示している可能性があります。
      • resolveEntity

        public InputSource resolveEntity​(String name,
                                         String publicId,
                                         String baseURI,
                                         String systemId)
                                  throws SAXException,
                                         IOException
        基底URIに対してsystemIdを解釈処理して結果が絶対URIとなったエンティティ・テキストを読み取るようパーサーに通知します。 古いDefaultHandler.resolveEntity()メソッドはこのメソッドを呼び出すようにオーバーライドされるので、このメソッドはnullのnamebaseURI、およびすでに絶対化されているsystemIdで呼び出されることがあります。
        定義:
        resolveEntity、インタフェース: EntityResolver2
        パラメータ:
        name - 解決される外部エンティティの識別。 外部サブセットの「[dtd]」やパラメータ・エンティティを示す「%」で開始される名前、またはそれ以外の一般エンティティの名前。 SAX2パーサーによって呼び出される場合nullにはなりません。
        publicId - 参照される外部エンティティの公開識別子(XML仕様で要求されるように正規化されている)。提供されなかった場合はnull。
        baseURI - 相対的なsystemIDを解釈するときに基準にするURI。 XMLReaderはInputSourceに指定された可能性があるので、nullでないかぎり常に絶対URI。 このURIは、関連する宣言を開始する「<」に関連付けられているXML仕様によって定義されます。
        systemId - 参照される外部エンティティのシステム識別子。相対URIまたは絶対URI。 SAX2パーサーによって呼び出される場合nullにはなりません。宣言されたエンティティと外部サブセットのみが、そうしたパーサーによって解決されます。
        戻り値:
        パーサーによって使用される新しい入力ソースを記述するInputSourceオブジェクト。 nullを返すことによって、基底URIに対するシステムIDを解決し、結果として得られるURIにつなげるようにパーサーに指示する。
        例外:
        SAXException - 任意のSAX例外。ほかの例外をラップしている可能性があります。
        IOException - 新しいInputStreamやReaderの作成失敗、または不正なURLを示している可能性があります。