モジュール java.xml
パッケージ javax.xml.parsers

クラスSAXParserFactory

java.lang.Object
javax.xml.parsers.SAXParserFactory

public abstract class SAXParserFactory extends Object
アプリケーションがSAXベースのパーサーを構成および取得してXMLドキュメントを構文解析できるようにするファクトリAPIを定義します。
導入されたバージョン:
1.4
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    newInstance()を強制的に使用するprotectedコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract boolean
    getFeature​(String name)
    org.xml.sax.XMLReaderの基本となる実装で要求された特定のプロパティを返します。
    setSchema(Schema schema)メソッドによって指定されたSchemaオブジェクトを取得します。
    boolean
    ファクトリが名前空間を認識するパーサーを作成するように構成されているかどうかを示します。
    boolean
    構文解析時にXMLコンテンツを検証するパーサーを作成するようにファクトリが構成されているかどうかを示します。
    boolean
    XInclude処理の状態を取得します。
    SAXParserFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
    SAXParserFactory組込みシステムのデフォルト実装の新しいNamespaceAwareインスタンスを作成します。
    SAXParserFactoryの新しいインスタンスを取得します。
    newInstance​(String factoryClassName, ClassLoader classLoader)
    クラス名からSAXParserFactoryの新しいインスタンスを取得します。
    SAXParserFactoryの新しいNamespaceAwareインスタンスを作成します。
    newNSInstance​(String factoryClassName, ClassLoader classLoader)
    クラス名からSAXParserFactoryの新しいNamespaceAwareインスタンスを作成します。
    abstract SAXParser
    現在構成されているファクトリ・パラメータを使用してSAXParserの新しいインスタンスを作成します。
    abstract void
    setFeature​(String name, boolean value)
    org.xml.sax.XMLReaderの基本となる実装に特定の機能を設定します。
    void
    setNamespaceAware​(boolean awareness)
    このファクトリで作成されたパーサーがXML名前空間をサポートするように指定します。
    void
    setSchema​(Schema schema)
    このファクトリから作成されたパーサーによって使用されるSchemaを設定します。
    void
    setValidating​(boolean validating)
    このファクトリで作成されたパーサーが構文解析時にドキュメントの妥当性を検証するように指定します。
    void
    setXIncludeAware​(boolean state)
    XInclude処理の状態を設定します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • SAXParserFactory

      protected SAXParserFactory()
      newInstance()を強制的に使用するprotectedコンストラクタです。
  • メソッドの詳細

    • newDefaultNSInstance

      public static SAXParserFactory newDefaultNSInstance()
      SAXParserFactory組込みシステムのデフォルト実装の新しいNamespaceAwareインスタンスを作成します。 ファクトリ・インスタンスによって生成されたパーサーは、デフォルトでXMLネームスペースのサポートを提供します。
      実装要件:
      このメソッドは、newDefaultInstance()と同じプロセスを使用してファクトリ・インスタンスを作成するだけでなく、NamespaceAwareをtrueに設定する必要があります。
      戻り値:
      SAXParserFactory組込みシステムのデフォルトの実装の新しいインスタンス。
      導入されたバージョン:
      13
    • newNSInstance

      public static SAXParserFactory newNSInstance()
      SAXParserFactoryの新しいNamespaceAwareインスタンスを作成します。 ファクトリ・インスタンスによって生成されたパーサーは、デフォルトでXMLネームスペースのサポートを提供します。
      実装要件:
      このメソッドは、newInstance()と同じプロセスを使用してファクトリ・インスタンスを作成するだけでなく、NamespaceAwareをtrueに設定する必要があります。
      戻り値:
      SAXParserFactoryの新規インスタンス
      例外:
      FactoryConfigurationError - サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合。
      導入されたバージョン:
      13
    • newNSInstance

      public static SAXParserFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
      クラス名からSAXParserFactoryの新しいNamespaceAwareインスタンスを作成します。 ファクトリ・インスタンスによって生成されたパーサーは、デフォルトでXMLネームスペースのサポートを提供します。
      実装要件:
      このメソッドは、newInstance(java.lang.String, java.lang.ClassLoader)と同じプロセスを使用してファクトリ・インスタンスを作成するだけでなく、NamespaceAwareをtrueに設定する必要があります。
      パラメータ:
      factoryClassName - javax.xml.parsers.SAXParserFactoryの実装を提供する完全修飾ファクトリ・クラス名。
      classLoader - ファクトリ・クラスをロードするために使用するClassLoader nullの場合、現在のThreadコンテキストclassLoaderがファクトリ・クラスをロードするために使用されます。
      戻り値:
      SAXParserFactoryの新規インスタンス
      例外:
      FactoryConfigurationError - factoryClassNamenull、またはファクトリ・クラスをロードまたはインスタンス化できない場合。
      導入されたバージョン:
      13
    • newDefaultInstance

      public static SAXParserFactory newDefaultInstance()
      SAXParserFactory組み込みシステムのデフォルト実装の新しいインスタンスを作成します。
      戻り値:
      SAXParserFactory組み込みシステムのデフォルト実装の新しいインスタンス。
      導入されたバージョン:
      9
    • newInstance

      public static SAXParserFactory newInstance()
      SAXParserFactoryの新しいインスタンスを取得します。 このstaticメソッドは新しいファクトリ・インスタンスを作成します。このメソッドは次の順序のルックアップ手順で、ロードするSAXParserFactory実装クラスを判定します。
      • javax.xml.parsers.SAXParserFactoryシステム・プロパティを使用する。
      • 構成ファイル"jaxp.properties"を使用します。 このファイルは標準のProperties形式であり、通常Javaインストールのconfディレクトリにあります。 これには、実装クラスの完全修飾名が格納されています。

        jaxp.propertiesファイルはJAXP実装によって一度だけ読み込まれ、その値は将来の使用のためにキャッシュされます。 最初の読込み時にファイルが存在しないと、そのあとにその存在がチェックされることはない。 最初に読み込まれたあと、jaxp.propertiesのプロパティの値を変更することはできない。

      • ServiceLoaderクラスで定義されているサービス・プロバイダ・ローディング機能を使用して、デフォルトのロード・メカニズムを使用してサービスの実装を特定してロード: サービス・プロバイダ・ローディング機能は、現在のスレッド・コンテキスト・クラス・ローダーを使用してサービスをロードしようとします。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。

      • それ以外の場合は、system-default実装が返されます。

      アプリケーションがSAXParserFactoryへの参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。

      トラブルシューティングのヒント

      jaxp.debugシステム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.errに出力します。

      SAXParserのロードに問題がある場合、次のようにします。

       java -Djaxp.debug=1 YourProgram ....
       

      戻り値:
      SAXParserFactoryの新しいインスタンス。
      例外:
      FactoryConfigurationError - サービス構成エラーが発生した場合、または実装が使用できないかインスタンス化できない場合。
    • newInstance

      public static SAXParserFactory newInstance(String factoryClassName, ClassLoader classLoader)
      クラス名からSAXParserFactoryの新しいインスタンスを取得します。 この関数は、クラス・パスに複数のプロバイダがある場合に便利です。 どのプロバイダがロードされるかを指定できるため、アプリケーションをさらに制御できます。

      アプリケーションがSAXParserFactoryへの参照を取得すると、ファクトリを使用してパーサーのインスタンスを構成および取得できます。

      トラブルシューティングのヒント

      jaxp.debugシステム・プロパティを設定すると、このメソッドは実行中の処理や検索している場所に関する大量のデバッグ・メッセージをSystem.errに出力します。

      問題がある場合、次のようにします。

       java -Djaxp.debug=1 YourProgram ....
       

      パラメータ:
      factoryClassName - javax.xml.parsers.SAXParserFactoryの実装を提供する完全修飾のファクトリ・クラス名。
      classLoader - ファクトリ・クラスのロードに使用されるClassLoader nullの場合は、現在のThreadのコンテキストclassLoaderが、ファクトリ・クラスのロードに使用されます。
      戻り値:
      SAXParserFactoryの新しいインスタンス
      例外:
      FactoryConfigurationError - factoryClassNamenull、またはファクトリ・クラスをロードまたはインスタンス化できない場合。
      導入されたバージョン:
      1.6
      関連項目:
      newInstance()
    • newSAXParser

      public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
      現在構成されているファクトリ・パラメータを使用してSAXParserの新しいインスタンスを作成します。
      戻り値:
      SAXParserの新しいインスタンス。
      例外:
      ParserConfigurationException - 要求された構成を満たすパーサーを生成できない場合。
      SAXException - SAXエラーの場合。
    • setNamespaceAware

      public void setNamespaceAware(boolean awareness)
      このファクトリで作成されたパーサーがXML名前空間をサポートするように指定します。 デフォルトでは、この値はfalseに設定されます。
      パラメータ:
      awareness - このコードで作成されたパーサーがXML名前空間をサポートする場合はtrue、そうでない場合はfalse。
    • setValidating

      public void setValidating(boolean validating)
      このファクトリで作成されたパーサーが構文解析時にドキュメントの妥当性を検証するように指定します。 デフォルトでは、この値はfalseに設定されます。

      ここで言う「検証」とは、XML勧告で定義されている妥当性を検証するパーサーという意味です。 つまり、実質的にはDTD検証を制御するだけということです。ただし、JAXP 1.2に定義されている従来の2つのプロパティを除きます。

      DTDではなく、W3C XML SchemaまたはRELAX NGなどの新しいスキーマ言語を使用する場合は、setValidating(boolean)メソッドをfalseにして妥当性を検証しないパーサーとして構成してから、setSchema(Schema)メソッドでスキーマをパーサーに関連付けます。

      パラメータ:
      validating - このコードで作成されたパーサーが構文解析時にドキュメントの妥当性を検証する場合はtrue、そうでない場合はfalse。
    • isNamespaceAware

      public boolean isNamespaceAware()
      ファクトリが名前空間を認識するパーサーを作成するように構成されているかどうかを示します。
      戻り値:
      ファクトリが名前空間を認識するパーサーを作成するように構成されている場合はtrue、そうでない場合はfalse。
    • isValidating

      public boolean isValidating()
      構文解析時にXMLコンテンツを検証するパーサーを作成するようにファクトリが構成されているかどうかを示します。
      戻り値:
      構文解析時にXMLコンテンツを検証するパーサーを作成するようにファクトリが構成されている場合はtrue、そうでない場合はfalse。
    • setFeature

      public abstract void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
      org.xml.sax.XMLReaderの基本となる実装に特定の機能を設定します。 コア機能とコア・プロパティのリストについては、http://www.saxproject.org/のサイトを参照してください。

      実装はすべて、XMLConstants.FEATURE_SECURE_PROCESSING機能をサポートしている必要があります。 この機能については次のとおりです。

      • true: 実装は実装限界に準拠するXML処理を制限します。 例は、エンティティ拡張制限や大容量のリソースを消費するXMLスキーマなど。 セキュリティ上の理由からXML処理が制限される場合は、登録済みのErrorHandler.fatalError(SAXParseException exception)へ呼出しを介して報告されます。 ハンドラ仕様については、SAXParser parseメソッドを参照してください。
      • 機能がfalseの場合、実装は、実装限界にかまわず、XML仕様に従ってXMLを処理します。

      パラメータ:
      name - 設定される機能の名前。
      value - 設定される機能の値。
      例外:
      ParserConfigurationException - 要求された構成を満たすパーサーを生成できない場合。
      SAXNotRecognizedException - 基本となるXMLReaderがプロパティ名を認識しない場合。
      SAXNotSupportedException - 基本となるXMLReaderはプロパティ名を認識するが、そのプロパティをサポートしない場合。
      NullPointerException - nameパラメータがnullである場合。
      関連項目:
      XMLReader.setFeature(java.lang.String, boolean)
    • getFeature

      public abstract boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
      org.xml.sax.XMLReaderの基本となる実装で要求された特定のプロパティを返します。
      パラメータ:
      name - 取り出されるプロパティの名前。
      戻り値:
      要求されたプロパティの値。
      例外:
      ParserConfigurationException - 要求された構成を満たすパーサーを生成できない場合。
      SAXNotRecognizedException - 基本となるXMLReaderがプロパティ名を認識しない場合。
      SAXNotSupportedException - 基本となるXMLReaderはプロパティ名を認識するが、そのプロパティをサポートしない場合。
      関連項目:
      XMLReader.getProperty(java.lang.String)
    • getSchema

      public Schema getSchema()
      setSchema(Schema schema)メソッドによって指定されたSchemaオブジェクトを取得します。
      戻り値:
      setSchema(Schema)メソッドを介して最後に設定されたSchemaオブジェクト、またはSAXParserFactoryが作成されてからメソッドが呼び出されていない場合はnull。
      例外:
      UnsupportedOperationException - 実装がこのメソッドをオーバーライドしない場合
      導入されたバージョン:
      1.5
    • setSchema

      public void setSchema(Schema schema)
      このファクトリから作成されたパーサーによって使用されるSchemaを設定します。

      Schemaがnull以外の場合、パーサーは、情報をアプリケーションに渡す前に、ドキュメントを検証するために作成されたバリデータを使用します。

      バリデータによって警告、エラー、重大なエラーが検出されると、パーサーは自身がこれらのエラーを検出した場合と同様にこれらを処理する必要があります。 つまり、ユーザー指定のErrorHandlerが設定されている場合は、これらのエラーを受け取り、そうでない場合は実装固有のデフォルトのエラー処理規則に従って処理される必要があります。

      バリデータはSAXイベント・ストリームを変更することがあり(たとえば、ドキュメントから失われていたデフォルト値を追加するなど)、パーサーはこれらの変更されたイベント・ストリームをアプリケーションが確実に受け取るようにする役割を持ちます。

      最初に、nullSchemaとして設定されます。

      この処理はisValidating()メソッドがfalseを返した場合でも有効です。

      http://java.sun.com/xml/jaxp/properties/schemaSourceプロパティまたはhttp://java.sun.com/xml/jaxp/properties/schemaLanguageプロパティをnull以外のSchemaオブジェクトと一緒に使用するとエラーになります。 これらのプロパティがSAXParserに設定されていると、そのような構成によってSAXException例外が発生します。

      実装時のノート

      パーサーは、あらゆるSchema実装で動作できる必要があります。 ただし、パーサーおよびスキーマが仕様に記載されている結果を出すかぎり、実装固有のカスタム・メカニズムを使用できます。

      パラメータ:
      schema - 使用するSchema、スキーマを削除するにはnull
      例外:
      UnsupportedOperationException - 実装がこのメソッドをオーバーライドしない場合
      導入されたバージョン:
      1.5
    • setXIncludeAware

      public void setXIncludeAware(boolean state)
      XInclude処理の状態を設定します。

      ドキュメント・インスタンスにXIncludeマークアップが見つかった場合、「XML Inclusions (XInclude) Version 1.0」に指定されているとおりに処理する必要があります。

      XInclude処理のデフォルトはfalseに設定されます。

      パラメータ:
      state - XInclude処理をtrueまたはfalseに設定する
      例外:
      UnsupportedOperationException - 実装がこのメソッドをオーバーライドしない場合
      導入されたバージョン:
      1.5
    • isXIncludeAware

      public boolean isXIncludeAware()
      XInclude処理の状態を取得します。
      戻り値:
      XInclude処理の現在の状態
      例外:
      UnsupportedOperationException - 実装がこのメソッドをオーバーライドしない場合
      導入されたバージョン:
      1.5