モジュール java.xml

Java API for XML Processing (JAXP)、Streaming API for XML (StAX)、Simple API for XML (SAX)、およびW3C Document Object Model (DOM) APIを定義します。
実装上のノート:

実装固有の機能およびプロパティ

このモジュールのパブリックAPIに記述された標準の機能やプロパティに加えて、JDK実装では、実装固有の多くの機能とプロパティがサポートされています。 このセクションでは、ネーミング規則、システム・プロパティ、jaxp.properties、スコープとオーダー、およびプロパティが適用されるプロセッサについて説明します。 現在実装でサポートされている実装固有の機能およびプロパティの一覧表については、このノートを参照してください。

ネーミング規則

機能およびプロパティの名前は、プレフィクスと名前で構成される完全修飾名になります。

プレフィクス

JDKプロパティのプレフィクスは、次のように定義されます。
     http://www.oracle.com/xml/jaxp/properties/
 
機能のプレフィクス:
     http://www.oracle.com/xml/jaxp/features/
 
システム・プロパティのプレフィクス:
     jdk.xml.
 

名前

名前は、大文字と小文字が区別される1つまたは複数の単語で構成されます。 最初の単語のすべての文字は小文字ですが、後続の単語の最初の文字は大文字で始まります。

XML文書がスタンドアロンであるかどうかを示すプロパティの例は、次のような形式になります。

     http://www.oracle.com/xml/jaxp/properties/isStandalone
 
対応するシステム・プロパティ:
     
 

システム・プロパティ

プロパティには、前述のプレフィクスを除き、同じ名前を持つ対応するシステム・プロパティを指定できます。 システム・プロパティはプロセッサを作成する前に設定する必要があり、あとでクリアできます。

jaxp.properties

jaxp.propertiesファイルでシステム・プロパティを指定して、JDKのすべての呼出しの動作を設定できます。 形式はsystem-property-name=valueです。 たとえば:
     jdk.xml.isStandalone=true
 

JAXP構成ファイルjaxp.propertiesの詳細は、SAXParserFactory#newInstanceを参照してください。

スコープとオーダー

DOM、SAX、スキーマ検証、XSLTおよびXPathを含むXMLプロセッサには、XMLConstants.FEATURE_SECURE_PROCESSING機能(今後、セキュア処理と呼ばれます。)が必要です。 「機能とプロパティ」"security: yes" (この後、セキュリティ・プロパティと呼ばれます。)というフラグが付いたプロパティは、セキュア処理がtrueに設定されている場合に強制されます。 このような強制には、セキュリティ機能をtrueに設定し、表に示された定義済の値に制限があります。 ただし、セキュア処理をfalseに設定すると、プロパティ値は影響を受けません。

Java Security Managerが存在する場合は、セキュア処理がtrueに設定され、オフにできません。 そのため、セキュリティ・プロパティが実施されます。

jaxp.propertiesファイルで指定されたプロパティは、JDKのすべての呼出しに影響し、デフォルト値、またはセキュアな処理によって設定された値を上書きします。

システム・プロパティは、設定するとJDKの起動に影響し、デフォルト設定やjaxp.propertiesまたはセキュアな処理で設定された可能性のある設定をオーバーライドします。

JAXPファクトリまたはプロセッサによって指定されるJAXPプロパティは、(例: SAXParser)によって、システム・プロパティ、jaxp.propertiesファイル、およびセキュアな処理が優先されます。

プロセッサのサポート

機能とプロパティは、1つ以上のプロセッサでサポートされる可能性があります。 次の表に、参照に使用できるID別にプロセッサを一覧表示します。

プロセッサ
ID 名前 プロパティを設定する方法
DOM DOMパーサー DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setAttribute(name, value);
SAX SAXパーサー SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
parser.setProperty(name, value);
StAX StAXパーサー XMLInputFactory xif = XMLInputFactory.newInstance();
xif.setProperty(name, value);
Validation XML検証API SchemaFactory schemaFactory = SchemaFactory.newInstance(schemaLanguage);
schemaFactory.setProperty(name, value);
Transform XML変換API TransformerFactory factory = TransformerFactory.newInstance();
factory.setAttribute(name, value);
DOMLS DOM Load and Save LSSerializer serializer = domImplementation.createLSSerializer();
serializer.getDomConfig().setParameter(name, value);

実装固有の機能およびプロパティ

この項では、JDK実装でサポートされている機能とプロパティをリストします。

機能とプロパティ
名前 [1] 説明 システム・プロパティ [2] jaxp.properties [2] 値 [3] セキュリティ [4] サポートされているプロセッサ [5] 導入されたバージョン [6]
デフォルト
isStandalone シリアライザが出力をスタンドアロン文書として扱うことを示します。 このプロパティを使用して、XML宣言のあとに改行を記述できます。 xml-declarationプロパティとは異なり、このプロパティはXML宣言を書き出すかどうかには影響しません。 yes yes boolean true/false false No DOMLS 17

[1] プロパティの名前。 プロパティを設定するときは、完全修飾名(プレフィクス+名前)を使用する必要があります。

[2] 値"yes"は、プロパティに対応するシステム・プロパティがあることを示します。それ以外は"no"。

[3] この値は、この表に示すとおり、大/小文字を区別する必要があります。 対応するシステム・プロパティの値タイプはStringです。 ブール型の場合、システム・プロパティは"true"の場合のみtrueで、それ以外の場合はfalseです。

[4] 値"yes"は、プロパティがセキュリティ・プロパティであることを示します。 セキュリティ保護処理がセキュリティ・プロパティの値に与える影響については、「スコープとオーダー」を参照してください。

[5] プロパティをサポートする1つ以上のプロセッサ。 フィールドの値は、表「プロセッサ」で説明されているIDです。

[6] プロパティが導入された初期リリースを示します。

モジュール・グラフ:
java.xmlのモジュール・グラフjava.xmlのモジュール・グラフ
導入されたバージョン:
9