public interface XSDatatype extends Serializable, DatabindableDatatype
The most important methods are defined in the
org.relaxng.datatype.Datatype
interface.
This interface provides additional information which is not covered by
Datatype
interface.
Also, this interface provides various simple type component properties
which are defined in the spec.
Application can use this interface to interact with datatype objects.
Modifier and Type | Field and Description |
---|---|
static int |
APPLICABLE
indicates the specified facet is applicable to this type.
|
static int |
DERIVATION_BY_LIST |
static int |
DERIVATION_BY_RESTRICTION |
static int |
DERIVATION_BY_UNION |
static String |
FACET_ENUMERATION |
static String |
FACET_FRACTIONDIGITS |
static String |
FACET_LENGTH |
static String |
FACET_MAXEXCLUSIVE |
static String |
FACET_MAXINCLUSIVE |
static String |
FACET_MAXLENGTH |
static String |
FACET_MINEXCLUSIVE |
static String |
FACET_MININCLUSIVE |
static String |
FACET_MINLENGTH |
static String |
FACET_PATTERN |
static String |
FACET_TOTALDIGITS |
static String |
FACET_WHITESPACE |
static int |
FIXED
indicates the specified facet is fixed in this type and
therefore not appliable.
|
static int |
NOT_ALLOWED
indicates the specified facet is not appliable to this type by definition.
|
static int |
VARIETY_ATOMIC |
static int |
VARIETY_LIST |
static int |
VARIETY_UNION |
static String |
XMLSCHEMA_NSURI |
Modifier and Type | Method and Description |
---|---|
String |
convertToLexicalValue(Object valueObject,
SerializationContext context)
converts value object back to the corresponding value in the lexical space.
|
String |
displayName()
gets the displayable name of this type.
|
XSDatatype |
getAncestorBuiltinType()
Gets the nearest ancestor built-in type.
|
String[] |
getApplicableFacetNames()
Gets the names of all applicable facets.
|
XSDatatype |
getBaseType()
gets the base type of this type.
|
DataTypeWithFacet |
getFacetObject(String facetName)
gets the facet object that restricts the specified facet.
|
String |
getName()
gets the local name of the type.
|
String |
getNamespaceUri()
Gets the namespace URI of this simple type definition.
|
int |
getVariety()
gets the variety
of this simple type.
|
boolean |
isAlwaysValid()
Returns true if this datatype is known to accept any string.
|
boolean |
isDerivedTypeOf(XSDatatype baseType,
boolean restrictionAllowed)
tests if this type is a derived type of the specified type.
|
int |
isFacetApplicable(String facetName)
returns if the specified facet is applicable to this datatype.
|
boolean |
isFinal(int derivationType)
checks if this type is declared as final for the specified kind of derivation.
|
createJavaObject, getJavaObjectType, serializeJavaObject
static final int VARIETY_ATOMIC
static final int VARIETY_LIST
static final int VARIETY_UNION
static final int DERIVATION_BY_RESTRICTION
static final int DERIVATION_BY_LIST
static final int DERIVATION_BY_UNION
static final int APPLICABLE
static final int FIXED
static final int NOT_ALLOWED
static final String FACET_LENGTH
static final String FACET_MINLENGTH
static final String FACET_MAXLENGTH
static final String FACET_PATTERN
static final String FACET_ENUMERATION
static final String FACET_TOTALDIGITS
static final String FACET_FRACTIONDIGITS
static final String FACET_MININCLUSIVE
static final String FACET_MAXINCLUSIVE
static final String FACET_MINEXCLUSIVE
static final String FACET_MAXEXCLUSIVE
static final String FACET_WHITESPACE
static final String XMLSCHEMA_NSURI
String getName()
String getNamespaceUri()
String displayName()
This method is an ad-hoc method and there is no corresponding property in the spec.
String convertToLexicalValue(Object valueObject, SerializationContext context) throws IllegalArgumentException
This method does the reverse operation of the createValue method. The returned string is not necessarily the canonical representation. Also note that the implementation may accept invalid values without throwing IllegalArgumentException. To make sure that the result is actually a valid representation, call the isValid method.
Be careful not to confuse this method with
The serializeJavaObject method, which is defined in
the DatabindableDatatype
method.
context
- Context information that will be possibly used for the conversion.
Currently, this object is used only by QName, but may be extended
in the future.IllegalArgumentException
- if the type of the given object is not the expected one.
For example, this exception is thrown if you pass a BigInteger object
to the "gYear" type.int getVariety()
boolean isFinal(int derivationType)
In the terminology of the spec, this method can be used to examine the final property of this component.
derivationType
- one of pre-defined values (DERIVATION_BY_XXX).int isFacetApplicable(String facetName)
String[] getApplicableFacetNames()
DataTypeWithFacet getFacetObject(String facetName)
XSDatatype getBaseType()
This method is intended to capture the semantics of the base type definition property of the simple type component, but there is an important difference.
Specifically, if you derive a type D from another type B, then calling D.getBaseType() does not necessarily return B. Instead, it may return an intermediate object (that represents a facet). Calling the getBaseType method recursively will eventually return B.
XSDatatype getAncestorBuiltinType()
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.
boolean isDerivedTypeOf(XSDatatype baseType, boolean restrictionAllowed)
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.
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.
boolean isAlwaysValid()
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.
Copyright © 2016 Oracle Corporation. All rights reserved.