Package com.saxonica.ee.schema.sdoc
Class SimpleTypeDefinition
java.lang.Object
com.saxonica.ee.schema.SchemaStructure
com.saxonica.ee.schema.UserDefinedType
com.saxonica.ee.schema.UserSimpleType
com.saxonica.ee.schema.sdoc.SimpleTypeDefinition
- All Implemented Interfaces:
SerializableSchemaComponent
,UserSchemaComponent
,SourceLocator
,Location
,HyperType
,SchemaComponent
,SchemaType
,SimpleType
,Locator
A simple type definition holds all the information about a simpleType
during the course of schema processing. On completion
of schema processing, a more specific SimpleType object is created,
called the WorkingType: this will be for example a
UserListType
, UserAtomicType
, or UserUnionType
, and the SimpleTypeDefinition is then
discarded.-
Field Summary
Fields inherited from class com.saxonica.ee.schema.UserDefinedType
extendedTypes, finalProhibitions
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a SimpleTypeDefinition -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMemberType
(TypeReference memberType) Add a member type to this union typeboolean
fixup
(SchemaCompiler compiler) Check references from this component to other componentsgetTypedValue
(UnicodeString value, NamespaceResolver resolver, ConversionRules rules) Get the typed value corresponding to a given string value, assuming it is valid against this typeGet the simple type created for this definitionboolean
Test whether this Simple Type is an atomic type.boolean
Determine whether this is a built-in type or a user-defined typeboolean
On a SimpleTypeDefinition, isListType() always returns true if the type is "derived by List".boolean
Test whether this type is namespace sensitive, that is, if a namespace context is needed to translate between the lexical space and the value space.boolean
On a SimpleTypeDefinition, isUnionType() always returns true if the type is "derived by Union".void
serialize
(SchemaModelSerializer serializer) Serialize the schema componentprotected void
serializeVariety
(SchemaModelSerializer serializer) void
setIsSimpleContent
(boolean b) Indicate that this simple type represents the content type of a complex type with simple contentvoid
setItemTypeReference
(TypeReference itemType) Set the reference to an item type of this list typevoid
setTokenSeparator
(RegularExpression separator) boolean
validate
(SchemaCompiler compiler) Checks the validity of this SimpleType definition.validateContent
(UnicodeString value, NamespaceResolver nsResolver, ConversionRules rules) Check whether a given input string is valid according to this SimpleTypeMethods inherited from class com.saxonica.ee.schema.UserSimpleType
addFacet, addInheritedFacets, analyzeContentExpression, applyWhitespaceNormalization, atomize, checkAgainstFacets, checkTypeDerivationIsOK, convertFacetValues, elaborate, getBuiltInBaseType, getComponentAsFunction, getComponentAsFunction, getContextComponent, getEQName, getExtendedFacetList, getFacet, getLocalFacetList, getWhitespaceAction, isIdRefType, isIdType, isSimpleType, isTypeDerivationOK, makeValidationFailure, mergeEnumerationFacets, postprocess, preprocess, setContextComponent, setFacetList
Methods inherited from class com.saxonica.ee.schema.UserDefinedType
allowsDerivation, containingDeclarationIsElement, getBaseType, getBaseTypeFingerprint, getBaseTypeReference, getBlock, getContainingDeclarationName, getDepth, getDerivationMethod, getDescription, getDisplayName, getExtensionTypes, getFinalProhibitions, getFingerprint, getName, getNamePool, getStructuredQName, getTargetNamespace, getTypeName, isAnonymousType, isComplexType, isSameType, isSameURI, registerExtensionType, setBaseTypeReference, setContainingDeclaration, setDerivationMethod, setDerivationMethodName, setExtendedTypes, setFinalProhibitions, setTypeName, toString
Methods inherited from class com.saxonica.ee.schema.SchemaStructure
getColumnNumber, getConfiguration, getFixupStatus, getGeneratedId, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, hasSameLocation, isValidationNeeded, lookForCycles, makeXPathExpressionPropertyRecord, saveLocation, setConfiguration, setFixupStatus, setGeneratedId, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, setSystemId, setValidationStatus
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.sf.saxon.type.SchemaComponent
getComponentAsFunction, getRedefinitionLevel, getValidationStatus
Methods inherited from interface net.sf.saxon.type.SchemaType
allowsDerivation, getBaseType, getBlock, getDerivationMethod, getDescription, getDisplayName, getFinalProhibitions, getFingerprint, getName, getStructuredQName, getSystemId, getTargetNamespace, isAnonymousType, isComplexType, isSameType
Methods inherited from interface com.saxonica.ee.schema.UserSchemaComponent
elaborate, lookForCycles
-
Constructor Details
-
SimpleTypeDefinition
Create a SimpleTypeDefinition- Parameters:
config
- the Saxon configuration
-
-
Method Details
-
setItemTypeReference
Set the reference to an item type of this list type- Parameters:
itemType
- reference to a type forming the item type of this list type
-
isAtomicType
public boolean isAtomicType()Test whether this Simple Type is an atomic type. On a SimpleTypeDefinition, the variety of the type cannot be reliably determined until fixup() has been called to determine the base type.- Specified by:
isAtomicType
in interfaceSchemaType
- Specified by:
isAtomicType
in interfaceSimpleType
- Overrides:
isAtomicType
in classUserSimpleType
- Returns:
- true if this type is known to be atomic
-
isListType
public boolean isListType()On a SimpleTypeDefinition, isListType() always returns true if the type is "derived by List". A list type that is derived by restricting another List type cannot be reliably recognized until fixup() has been called to determine the base type.- Specified by:
isListType
in interfaceSimpleType
- Overrides:
isListType
in classUserSimpleType
- Returns:
- true if this type is "derived by List"
-
isUnionType
public boolean isUnionType()On a SimpleTypeDefinition, isUnionType() always returns true if the type is "derived by Union". A union type that is derived by restricting another Union type cannot be reliably recognized until the fixup() method has been called to determine the base type.- Specified by:
isUnionType
in interfaceSimpleType
- Overrides:
isUnionType
in classUserSimpleType
- Returns:
- true if this type is "derived by Union"
-
setIsSimpleContent
public void setIsSimpleContent(boolean b) Indicate that this simple type represents the content type of a complex type with simple content- Parameters:
b
- true if this is the content type of a complex type with simple content
-
addMemberType
Add a member type to this union type- Parameters:
memberType
- the member type to be added
-
setTokenSeparator
-
getWorkingType
Get the simple type created for this definition- Returns:
- the UserSimpleType object if it has been created, otherwise null
-
fixup
Check references from this component to other components- Specified by:
fixup
in interfaceUserSchemaComponent
- Overrides:
fixup
in classSchemaStructure
- Parameters:
compiler
- used for error reporting- Returns:
- true if all is well, false if errors found
- Throws:
SchemaException
-
validate
Checks the validity of this SimpleType definition.- Specified by:
validate
in interfaceUserSchemaComponent
- Overrides:
validate
in classUserSimpleType
- Parameters:
compiler
- used for error reporting- Returns:
- true when this Schema definition is valid, otherwise false.
- Throws:
SchemaException
- when this SimpleType definition is invalid.
-
getTypedValue
public AtomicSequence getTypedValue(UnicodeString value, NamespaceResolver resolver, ConversionRules rules) throws ValidationException Get the typed value corresponding to a given string value, assuming it is valid against this type- Specified by:
getTypedValue
in interfaceSimpleType
- Parameters:
value
- the string valueresolver
- a namespace resolver used to resolve prefixes in QNames and notationsrules
- the conversion rules for the Configuration- Returns:
- an iterator over the atomic sequence comprising the typed value
- Throws:
ValidationException
- if the supplied value is invalid against this simple type
-
isBuiltInType
public boolean isBuiltInType()Determine whether this is a built-in type or a user-defined type- Specified by:
isBuiltInType
in interfaceSimpleType
- Returns:
- true if this is a built-in type
-
isNamespaceSensitive
public boolean isNamespaceSensitive()Test whether this type is namespace sensitive, that is, if a namespace context is needed to translate between the lexical space and the value space. This is true for types derived from, or containing, QNames and NOTATIONs- Specified by:
isNamespaceSensitive
in interfaceHyperType
- Returns:
- true if the type is namespace-sensitive
-
validateContent
public ValidationFailure validateContent(UnicodeString value, NamespaceResolver nsResolver, ConversionRules rules) Check whether a given input string is valid according to this SimpleType- Specified by:
validateContent
in interfaceSimpleType
- Parameters:
value
- the input string to be checkednsResolver
- a namespace resolver used to resolve namespace prefixes if the type is namespace sensitive. The value supplied may be null; in this case any namespace-sensitive content will throw an UnsupportedOperationException.rules
- the conversion rules for the configuration- Returns:
- null if validation succeeds; or return a ValidationFailure describing the validation failure if validation fails. Note that the exception is returned rather than being thrown.
- Throws:
UnsupportedOperationException
- if the type is namespace-sensitive and no namespace resolver is supplied
-
serialize
Serialize the schema component- Specified by:
serialize
in interfaceSerializableSchemaComponent
- Overrides:
serialize
in classUserSimpleType
- Parameters:
serializer
- the object responsible for performing the serialization- Throws:
XPathException
- if serialization fails
-
serializeVariety
- Specified by:
serializeVariety
in classUserSimpleType
-