Package com.sun.msv.datatype.xsd


package com.sun.msv.datatype.xsd
W3C XML Schema Datatypes implementation.

This package implements the recommendation version of W3C XML Schema Part 2 datatypes. The latest version of the spec is here.

Application developers should understand the usage of the following classes: com.sun.msv.datatype.xsd.DatatypeFactory, com.sun.msv.datatype.xsd.XSDatatype, org.relaxng.datatype.Datatype, and org.relaxng.datatype.ValidationContext. Other classes are implementations of those types and therefore not important in most cases.

The current release has several limitations. See readme.txt for details.

Object types returned by the createJavaObject method

The following W3C XML Schema types return java.lang.String, with no loss of accuracy.

The "language" type also returns java.lang.String, but it always returns a string in all lower-case. The "anyURI" type returns java.lang.String too. It doesn't perform any escaping. So "%20" as a value of the "anyURI" type results in "%20", not " ".

For other types:

XSD type Java type
string java.lang.String(*5)
ENTITY
normalizedString
token
NMTOKEN
Name
NCName
NOTATION
anyURI (*3)
language (*4)
boolean java.lang.Boolean
number java.math.BigDecimal
float java.lang.Float
double java.lang.Double
integer a derived class of
java.lang.Number
negativeInteger
positiveInteger
nonNegativeInteger
nonPositiveInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
long
int
short
byte
QName java.lang.String[2](*1)
base64Binary byte[]
hexBinary
dateTime java.util.Calendar(*2)
date
time
gYear
gYearMonth
gMonth
gMonthDay
gDay

For types derived by list, the createJavaObject method returns java.lang.Object[] that contains Java values of the item type. For types derived by restriction, the method returns the same type as the base type. For types derived by union, the method returns Java values of one of the member types.

The createJavaObject method currently returns meaningless types for "duration" datatype.

*1
The first item in the array is the namespace URI. The second (the last) item in the array is the local name.
*2
Missing fields are not set. For example, "gYearMonth" type returns a Calendar object whose DAY_OF_MONTH, HOUR_OF_DAY, MINUTE,SECOND, and MILLISECOND fields are not set. If the XML representation does not contain the millisecond part, then MILLISECOND field of the returned Calendar object is not set. This field is set only when the XML representation contains fractional seconds (e.g., "01:02:03.5").
*3
The anyURI type does not perform URI escaping. So it returns "%20" for the lexical value "%20".
*4
The language type always return a string in the lower case. That is, it returns "en_us" for "EN_US".
*5
Strings are white-space normalized according to the value of the whiteSpace facet. For example, " abc " as a Name yields "abc"; " abc " as a string yields " abc ".