javax.xml.datatypeパッケージに関する注意事項を次の表に示します。
表6-19 javax.xml.datatypeパッケージに関する注意事項
項番 | 注意事項 |
---|---|
1 | マルチスレッドプログラミングをする場合,javax.xml.datatypeパッケージで規定されたオブジェクトはスレッドセーフではありません。したがって,各スレッドは排他的にこれらのオブジェクトにアクセスするようにしてください。 |
2 | DatatypeFactoryクラスの各メソッドでIllegalArgumentExceptionが発生したとき,getMessage()メソッドでは,各メソッドに指定したパラメタが戻ります。 |
3 | DatatypeFactoryクラスのnewXMLGregorianCalendarメソッド,newXMLGregorianCalendarDateメソッド,newXMLGregorianCalendarTimeメソッドで,月を表すフィールドに4,6,9,11のどれかを設定したとき,日を表すフィールドに31を設定してもエラーが発生しません。 |
4 | DatatypeFactoryクラスのnewXMLGregorianCalendarメソッドおよびnewXMLGregorianCalendarTimeメソッドの引数millisecondには,0から999までの値を指定してください。 |
5 | 月を表すフィールドが1のDurationオブジェクトと,日を表すフィールドが28のDurationオブジェクトを比較したとき,結果は次のようになります。
|
6 | DatatypeFactoryクラスのnewDuration(long durationInMilliSeconds)メソッド,newDurationDayTime(long durationInMilliseconds)メソッド,またはnewDurationYearMonth(long durationInMilliseconds)メソッドで作成したDurationオブジェクトは,DatatypeConstants.DURATION_DAYTIME型になります。したがって,このDurationオブジェクトの月を表すフィールド,日を表すフィールドの値は0になります。 |
7 | XMLGregorianCalendarクラスのsetHourメソッド,およびsetTimeメソッドの引数hourには,0から23までの値を指定してください。また,DatatypeFactoryクラスのnewXMLGregorianCalendarメソッド,newXMLGregorianCalendarTimeメソッドの引数の「時間を表すフィールド」には,0から23までの値を指定してください。 |
8 | JAXP1.3仕様書では,XMLGregorianCalendarクラスのisValidメソッドは「Validate instance by getXMLSchemaType() constraints.」と定義されています。Cosminexus XML Processorでは,次の制約をすべて満たしているときにtrueを返します。
|
9 | XMLGregorianCalendarクラスのequalsメソッドの引数がnullのとき,NullPointerException例外は発生せずにfalseが戻ります。 |
10 | DatatypeConstants.GMONTH型のXMLGregorianCalendarオブジェクトにtoString, toXMLFormatメソッドを適用して得られる字句表現は,W3C XML Schema 1.0 Part 2(second edition)仕様書のセクション3.2.14で規定された文字列「--MM」ではなく,second editionより前の仕様書で規定された文字列「--MM--」になります。 |