Class XSDatatypeImpl
- All Implemented Interfaces:
DatabindableDatatype
,XSDatatype
,Serializable
,org.relaxng.datatype.Datatype
- Direct Known Subclasses:
ConcreteType
,DataTypeWithFacet
,Proxy
This class should be considered as the implementation-detail, and applications should not access this class.
- Author:
- Kohsuke KAWAGUCHI
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
protected static final org.relaxng.datatype.ValidationContext
final WhiteSpaceProcessor
this field characterizes how this datatype treats white space.Fields inherited from interface org.relaxng.datatype.Datatype
ID_TYPE_ID, ID_TYPE_IDREF, ID_TYPE_IDREFS, ID_TYPE_NULL
Fields inherited from interface com.sun.msv.datatype.xsd.XSDatatype
APPLICABLE, DERIVATION_BY_LIST, DERIVATION_BY_RESTRICTION, DERIVATION_BY_UNION, FACET_ENUMERATION, FACET_FRACTIONDIGITS, FACET_LENGTH, FACET_MAXEXCLUSIVE, FACET_MAXINCLUSIVE, FACET_MAXLENGTH, FACET_MINEXCLUSIVE, FACET_MININCLUSIVE, FACET_MINLENGTH, FACET_PATTERN, FACET_TOTALDIGITS, FACET_WHITESPACE, FIXED, NOT_ALLOWED, VARIETY_ATOMIC, VARIETY_LIST, VARIETY_UNION, XMLSCHEMA_NSURI
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
XSDatatypeImpl
(String uri, String typeName, WhiteSpaceProcessor whiteSpace) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
_checkValid
(String content, org.relaxng.datatype.ValidationContext context) actual 'meat' of the checkValid methodprotected abstract Object
_createJavaObject
(String literal, org.relaxng.datatype.ValidationContext context) protected abstract Object
_createValue
(String content, org.relaxng.datatype.ValidationContext context) converts a whitespace-processed lexical value into the corresponding value objectprotected abstract boolean
checkFormat
(String literal, org.relaxng.datatype.ValidationContext context) final void
checkValid
(String content, org.relaxng.datatype.ValidationContext context) final Object
createJavaObject
(String literal, org.relaxng.datatype.ValidationContext context) converts lexcial value to a corresponding Java-friendly object by using the given context information.org.relaxng.datatype.DatatypeStreamingValidator
createStreamingValidator
(org.relaxng.datatype.ValidationContext context) final Object
createValue
(String lexicalValue, org.relaxng.datatype.ValidationContext context) Gets the nearest ancestor built-in type.String[]
Gets the names of all applicable facets.abstract ConcreteType
gets the concrete type object of the restriction chain.getFacetObject
(String facetName) gets the facet object that restricts the specified facetint
A property for RELAX NG DTD compatibility datatypes.getName()
gets the local name of the type.Gets the namespace URI of this simple type definition.boolean
Returns true if this datatype is known to accept any string.boolean
A property for RELAX NG DTD compatibility datatypes.final boolean
isDerivedTypeOf
(XSDatatype baseType, boolean restrictionAllowed) tests if this type is a derived type of the specified type.static boolean
isDerivedTypeOf
(XSDatatype base, XSDatatype derived, boolean restrictionAllowed) an implementation of "Type Derivation OK (Simple)" of the spec.final boolean
static String
static String
static String
static String
static String
protected boolean
final boolean
final int
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.sun.msv.datatype.DatabindableDatatype
getJavaObjectType, serializeJavaObject
Methods inherited from interface com.sun.msv.datatype.xsd.XSDatatype
convertToLexicalValue, displayName, getBaseType, getVariety, isFacetApplicable, isFinal
-
Field Details
-
whiteSpace
this field characterizes how this datatype treats white space. -
serializedValueChecker
protected static final org.relaxng.datatype.ValidationContext serializedValueChecker -
ERR_INAPPROPRIATE_FOR_TYPE
- See Also:
-
ERR_TOO_MUCH_PRECISION
- See Also:
-
ERR_TOO_MUCH_SCALE
- See Also:
-
ERR_ENUMERATION
- See Also:
-
ERR_ENUMERATION_WITH_ARG
- See Also:
-
ERR_OUT_OF_RANGE
- See Also:
-
ERR_LENGTH
- See Also:
-
ERR_MINLENGTH
- See Also:
-
ERR_MAXLENGTH
- See Also:
-
ERR_PATTERN_1
- See Also:
-
ERR_PATTERN_MANY
- See Also:
-
ERR_INVALID_ITEMTYPE
- See Also:
-
ERR_INVALID_MEMBER_TYPE
- See Also:
-
ERR_INVALID_BASE_TYPE
- See Also:
-
ERR_INVALID_WHITESPACE_VALUE
- See Also:
-
ERR_PARSE_ERROR
- See Also:
-
ERR_INVALID_VALUE_FOR_THIS_TYPE
- See Also:
-
ERR_FACET_MUST_BE_NON_NEGATIVE_INTEGER
- See Also:
-
ERR_FACET_MUST_BE_POSITIVE_INTEGER
- See Also:
-
ERR_OVERRIDING_FIXED_FACET
- See Also:
-
ERR_INCONSISTENT_FACETS_1
- See Also:
-
ERR_INCONSISTENT_FACETS_2
- See Also:
-
ERR_X_AND_Y_ARE_EXCLUSIVE
- See Also:
-
ERR_LOOSENED_FACET
- See Also:
-
ERR_SCALE_IS_GREATER_THAN_PRECISION
- See Also:
-
ERR_DUPLICATE_FACET
- See Also:
-
ERR_NOT_APPLICABLE_FACET
- See Also:
-
ERR_EMPTY_UNION
- See Also:
-
-
Constructor Details
-
XSDatatypeImpl
-
-
Method Details
-
getNamespaceUri
Description copied from interface:XSDatatype
Gets the namespace URI of this simple type definition.- Specified by:
getNamespaceUri
in interfaceXSDatatype
-
getName
Description copied from interface:XSDatatype
gets the local name of the type. If this type is an anonymous type, then this method returns null.In the terminology of the spec, this method returns the name property of this simple type component. If the name property is absent, this method returns null.
- Specified by:
getName
in interfaceXSDatatype
-
createValue
public final Object createValue(String lexicalValue, org.relaxng.datatype.ValidationContext context) - Specified by:
createValue
in interfaceorg.relaxng.datatype.Datatype
-
_createValue
protected abstract Object _createValue(String content, org.relaxng.datatype.ValidationContext context) converts a whitespace-processed lexical value into the corresponding value object -
checkValid
public final void checkValid(String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException - Specified by:
checkValid
in interfaceorg.relaxng.datatype.Datatype
- Throws:
org.relaxng.datatype.DatatypeException
-
_checkValid
protected abstract void _checkValid(String content, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException actual 'meat' of the checkValid method- Throws:
org.relaxng.datatype.DatatypeException
-
createJavaObject
public final Object createJavaObject(String literal, org.relaxng.datatype.ValidationContext context) Description copied from interface:DatabindableDatatype
converts lexcial value to a corresponding Java-friendly object by using the given context information.For the actual types returned by each type, see here.
Note that due to the difference between those Java friendly types and actual XML Schema specification, the returned object sometimes loses accuracy. For example, the "time" type allows "0.0000000000001 sec" which cannot be represented in
java.util.Calendar
class.- Specified by:
createJavaObject
in interfaceDatabindableDatatype
- Returns:
- null when the given lexical value is not a valid lexical value for this type.
-
_createJavaObject
-
isValid
- Specified by:
isValid
in interfaceorg.relaxng.datatype.Datatype
-
isAlwaysValid
public boolean isAlwaysValid()Description copied from interface:XSDatatype
Returns true if this datatype is known to accept any string. This is just a hint that allows the client code to do certain optimization.This method can return false even if the datatype actually accepts any string. That is, it's perfectly OK for any datatype to return false from this method.
- Specified by:
isAlwaysValid
in interfaceXSDatatype
-
createStreamingValidator
public org.relaxng.datatype.DatatypeStreamingValidator createStreamingValidator(org.relaxng.datatype.ValidationContext context) - Specified by:
createStreamingValidator
in interfaceorg.relaxng.datatype.Datatype
-
checkFormat
protected abstract boolean checkFormat(String literal, org.relaxng.datatype.ValidationContext context) -
needValueCheck
protected boolean needValueCheck() -
getFacetObject
gets the facet object that restricts the specified facet- Specified by:
getFacetObject
in interfaceXSDatatype
- Returns:
- null if no such facet object exists.
-
getApplicableFacetNames
Description copied from interface:XSDatatype
Gets the names of all applicable facets.- Specified by:
getApplicableFacetNames
in interfaceXSDatatype
-
getConcreteType
gets the concrete type object of the restriction chain. -
sameValue
- Specified by:
sameValue
in interfaceorg.relaxng.datatype.Datatype
-
valueHashCode
- Specified by:
valueHashCode
in interfaceorg.relaxng.datatype.Datatype
-
isDerivedTypeOf
Description copied from interface:XSDatatype
tests if this type is a derived type of the specified type.This method is an implementation of "Type Derivation OK (Simple)" of the spec. Therefore use caution if what you want is a casual method because this method may cause a lot of unintuitive result.
Note to implementors Use the static version of this method defined in the XSDatatypeImpl class. You don't need to implement this method from scratch.
- Specified by:
isDerivedTypeOf
in interfaceXSDatatype
restrictionAllowed
- This test needs "a subset of {extension,restriction,list,union} (of which only restriction is actually relevant). If this flag is set to true, this method behaves as if the empty set is passed as the set. This is usually what you want if you're simply trying to check the derivation relationship.If this flag is set to false, this method behaves as if {restriction} is passed as the set.
-
isDerivedTypeOf
public static boolean isDerivedTypeOf(XSDatatype base, XSDatatype derived, boolean restrictionAllowed) an implementation of "Type Derivation OK (Simple)" of the spec.- See Also:
-
getAncestorBuiltinType
Description copied from interface:XSDatatype
Gets the nearest ancestor built-in type.This method traverses the inheritance chain from this datatype to the root type (anySimpleType) and return the first built-in type it finds.
For example, if you derive a type Foo from NCName and Bar from Foo, then this method returns NCName.
- Specified by:
getAncestorBuiltinType
in interfaceXSDatatype
- Returns:
- Always return non-null valid object.
-
getIdType
public int getIdType()A property for RELAX NG DTD compatibility datatypes.ID_TYPE_NULL
is returned by default.- Specified by:
getIdType
in interfaceorg.relaxng.datatype.Datatype
-
isContextDependent
public boolean isContextDependent()A property for RELAX NG DTD compatibility datatypes. Context-independent by default.- Specified by:
isContextDependent
in interfaceorg.relaxng.datatype.Datatype
-
localize
-
localize
-
localize
-
localize
-
localize
-