Class XSSimpleTypeDecl

java.lang.Object
org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl
All Implemented Interfaces:
XSSimpleType, org.apache.xerces.xs.XSObject, org.apache.xerces.xs.XSSimpleTypeDefinition, org.apache.xerces.xs.XSTypeDefinition, TypeInfo

public class XSSimpleTypeDecl extends Object implements XSSimpleType, TypeInfo

INTERNAL:

Usage of this class is not supported. It may be altered or removed at any time.
Version:
$Id: XSSimpleTypeDecl.java 1891772 2021-07-24 11:51:11Z mukulg $
Author:
Sandy Gao, IBM, Neeraj Bajaj, Sun Microsystems, inc.
  • Field Details

    • DV_STRING

      protected static final short DV_STRING
      See Also:
    • DV_BOOLEAN

      protected static final short DV_BOOLEAN
      See Also:
    • DV_DECIMAL

      protected static final short DV_DECIMAL
      See Also:
    • DV_FLOAT

      protected static final short DV_FLOAT
      See Also:
    • DV_DOUBLE

      protected static final short DV_DOUBLE
      See Also:
    • DV_DURATION

      protected static final short DV_DURATION
      See Also:
    • DV_DATETIME

      protected static final short DV_DATETIME
      See Also:
    • DV_TIME

      protected static final short DV_TIME
      See Also:
    • DV_DATE

      protected static final short DV_DATE
      See Also:
    • DV_GYEARMONTH

      protected static final short DV_GYEARMONTH
      See Also:
    • DV_GYEAR

      protected static final short DV_GYEAR
      See Also:
    • DV_GMONTHDAY

      protected static final short DV_GMONTHDAY
      See Also:
    • DV_GDAY

      protected static final short DV_GDAY
      See Also:
    • DV_GMONTH

      protected static final short DV_GMONTH
      See Also:
    • DV_HEXBINARY

      protected static final short DV_HEXBINARY
      See Also:
    • DV_BASE64BINARY

      protected static final short DV_BASE64BINARY
      See Also:
    • DV_ANYURI

      protected static final short DV_ANYURI
      See Also:
    • DV_QNAME

      protected static final short DV_QNAME
      See Also:
    • DV_PRECISIONDECIMAL

      protected static final short DV_PRECISIONDECIMAL
      See Also:
    • DV_NOTATION

      protected static final short DV_NOTATION
      See Also:
    • DV_ANYSIMPLETYPE

      protected static final short DV_ANYSIMPLETYPE
      See Also:
    • DV_ID

      protected static final short DV_ID
      See Also:
    • DV_IDREF

      protected static final short DV_IDREF
      See Also:
    • DV_ENTITY

      protected static final short DV_ENTITY
      See Also:
    • DV_INTEGER

      protected static final short DV_INTEGER
      See Also:
    • DV_LIST

      protected static final short DV_LIST
      See Also:
    • DV_UNION

      protected static final short DV_UNION
      See Also:
    • DV_YEARMONTHDURATION

      protected static final short DV_YEARMONTHDURATION
      See Also:
    • DV_DAYTIMEDURATION

      protected static final short DV_DAYTIMEDURATION
      See Also:
    • DV_ANYATOMICTYPE

      protected static final short DV_ANYATOMICTYPE
      See Also:
    • YEARMONTHDURATION_DT

      public static final short YEARMONTHDURATION_DT
      See Also:
    • DAYTIMEDURATION_DT

      public static final short DAYTIMEDURATION_DT
      See Also:
    • PRECISIONDECIMAL_DT

      public static final short PRECISIONDECIMAL_DT
      See Also:
    • ANYATOMICTYPE_DT

      public static final short ANYATOMICTYPE_DT
      See Also:
    • lengthAnnotation

      public org.apache.xerces.xs.XSAnnotation lengthAnnotation
    • minLengthAnnotation

      public org.apache.xerces.xs.XSAnnotation minLengthAnnotation
    • maxLengthAnnotation

      public org.apache.xerces.xs.XSAnnotation maxLengthAnnotation
    • whiteSpaceAnnotation

      public org.apache.xerces.xs.XSAnnotation whiteSpaceAnnotation
    • totalDigitsAnnotation

      public org.apache.xerces.xs.XSAnnotation totalDigitsAnnotation
    • fractionDigitsAnnotation

      public org.apache.xerces.xs.XSAnnotation fractionDigitsAnnotation
    • patternAnnotations

      public XSObjectListImpl patternAnnotations
    • enumerationAnnotations

      public org.apache.xerces.xs.XSObjectList enumerationAnnotations
    • maxInclusiveAnnotation

      public org.apache.xerces.xs.XSAnnotation maxInclusiveAnnotation
    • maxExclusiveAnnotation

      public org.apache.xerces.xs.XSAnnotation maxExclusiveAnnotation
    • minInclusiveAnnotation

      public org.apache.xerces.xs.XSAnnotation minInclusiveAnnotation
    • minExclusiveAnnotation

      public org.apache.xerces.xs.XSAnnotation minExclusiveAnnotation
  • Constructor Details

    • XSSimpleTypeDecl

      public XSSimpleTypeDecl()
    • XSSimpleTypeDecl

      protected XSSimpleTypeDecl(XSSimpleTypeDecl base, String name, short validateDV, short ordered, boolean bounded, boolean finite, boolean numeric, boolean isImmutable, short builtInKind)
    • XSSimpleTypeDecl

      protected XSSimpleTypeDecl(XSSimpleTypeDecl base, String name, String uri, short finalSet, boolean isImmutable, org.apache.xerces.xs.XSObjectList annotations, short builtInKind)
    • XSSimpleTypeDecl

      protected XSSimpleTypeDecl(XSSimpleTypeDecl base, String name, String uri, short finalSet, boolean isImmutable, org.apache.xerces.xs.XSObjectList annotations)
    • XSSimpleTypeDecl

      protected XSSimpleTypeDecl(String name, String uri, short finalSet, XSSimpleTypeDecl itemType, boolean isImmutable, org.apache.xerces.xs.XSObjectList annotations)
    • XSSimpleTypeDecl

      protected XSSimpleTypeDecl(String name, String uri, short finalSet, XSSimpleTypeDecl[] memberTypes, org.apache.xerces.xs.XSObjectList annotations)
  • Method Details

    • getGDVs

      protected static TypeValidator[] getGDVs()
    • setDVs

      protected void setDVs(TypeValidator[] dvs)
    • setRestrictionValues

      protected XSSimpleTypeDecl setRestrictionValues(XSSimpleTypeDecl base, String name, String uri, short finalSet, org.apache.xerces.xs.XSObjectList annotations)
    • setListValues

      protected XSSimpleTypeDecl setListValues(String name, String uri, short finalSet, XSSimpleTypeDecl itemType, org.apache.xerces.xs.XSObjectList annotations)
    • setUnionValues

      protected XSSimpleTypeDecl setUnionValues(String name, String uri, short finalSet, XSSimpleTypeDecl[] memberTypes, org.apache.xerces.xs.XSObjectList annotations)
    • getType

      public short getType()
      Description copied from interface: org.apache.xerces.xs.XSObject
      The type of this object, i.e. ELEMENT_DECLARATION.
      Specified by:
      getType in interface org.apache.xerces.xs.XSObject
    • getTypeCategory

      public short getTypeCategory()
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      Return whether this type definition is a simple type or complex type.
      Specified by:
      getTypeCategory in interface org.apache.xerces.xs.XSTypeDefinition
    • getName

      public String getName()
      Description copied from interface: org.apache.xerces.xs.XSObject
      The name of type NCName, as defined in XML Namespaces, of this declaration specified in the {name} property of the component or null if the definition of this component does not have a {name} property. For anonymous types, the processor must construct and expose an anonymous type name that is distinct from the name of every named type and the name of every other anonymous type.
      Specified by:
      getName in interface org.apache.xerces.xs.XSObject
    • getTypeName

      public String getTypeName()
      Specified by:
      getTypeName in interface TypeInfo
    • getNamespace

      public String getNamespace()
      Description copied from interface: org.apache.xerces.xs.XSObject
      The [target namespace] of this object, or null if it is unspecified.
      Specified by:
      getNamespace in interface org.apache.xerces.xs.XSObject
    • getFinal

      public short getFinal()
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      For complex types the returned value is a bit combination of the subset of {DERIVATION_EXTENSION, DERIVATION_RESTRICTION} corresponding to final set of this type or DERIVATION_NONE. For simple types the returned value is a bit combination of the subset of { DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST } corresponding to final set of this type or DERIVATION_NONE.
      Specified by:
      getFinal in interface org.apache.xerces.xs.XSTypeDefinition
    • isFinal

      public boolean isFinal(short derivation)
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      {final}. For a complex type definition it is a subset of {extension, restriction}. For a simple type definition it is a subset of {extension, list, restriction, union}.
      Specified by:
      isFinal in interface org.apache.xerces.xs.XSTypeDefinition
      Parameters:
      derivation - Extension, restriction, list, union constants (defined in XSConstants).
      Returns:
      True if restriction is in the final set, otherwise false.
    • getBaseType

      public org.apache.xerces.xs.XSTypeDefinition getBaseType()
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      {base type definition}: either a simple type definition or a complex type definition.
      Specified by:
      getBaseType in interface org.apache.xerces.xs.XSTypeDefinition
    • getAnonymous

      public boolean getAnonymous()
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      Convenience attribute. A boolean that specifies if the type definition is anonymous.
      Specified by:
      getAnonymous in interface org.apache.xerces.xs.XSTypeDefinition
    • getVariety

      public short getVariety()
      Description copied from interface: org.apache.xerces.xs.XSSimpleTypeDefinition
      [variety]: one of {atomic, list, union} or absent.
      Specified by:
      getVariety in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • isIDType

      public boolean isIDType()
      Description copied from interface: XSSimpleType
      Check whether this type is or is derived from ID. REVISIT: this method makes ID special, which is not a good design. but since ID is not a primitive, there doesn't seem to be a clean way of doing it except to define special method like this.
      Specified by:
      isIDType in interface XSSimpleType
      Returns:
      whether this simple type is or is derived from ID.
    • getWhitespace

      public short getWhitespace() throws DatatypeException
      Description copied from interface: XSSimpleType
      Return the whitespace corresponding to this datatype.
      Specified by:
      getWhitespace in interface XSSimpleType
      Returns:
      valid values are WS_PRESERVE, WS_REPLACE, WS_COLLAPSE.
      Throws:
      DatatypeException - union datatypes don't have whitespace facet associated with them
    • getPrimitiveKind

      public short getPrimitiveKind()
      Description copied from interface: XSSimpleType
      return an ID representing the built-in primitive base type. REVISIT: This method is (currently) for internal use only. the constants returned from this method are not finalized yet. the names and values might change in the further.
      Specified by:
      getPrimitiveKind in interface XSSimpleType
      Returns:
      an ID representing the built-in primitive base type
    • getBuiltInKind

      public short getBuiltInKind()
      Returns the closest built-in type category this type represents or derived from. For example, if this simple type is a built-in derived type integer the INTEGER_DV is returned.
      Specified by:
      getBuiltInKind in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getPrimitiveType

      public org.apache.xerces.xs.XSSimpleTypeDefinition getPrimitiveType()
      If variety is atomic the primitive type definition (a built-in primitive datatype definition or the simple ur-type definition) is available, otherwise null.
      Specified by:
      getPrimitiveType in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getItemType

      public org.apache.xerces.xs.XSSimpleTypeDefinition getItemType()
      If variety is list the item type definition (an atomic or union simple type definition) is available, otherwise null.
      Specified by:
      getItemType in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getMemberTypes

      public org.apache.xerces.xs.XSObjectList getMemberTypes()
      If variety is union the list of member type definitions (a non-empty sequence of simple type definitions) is available, otherwise an empty XSObjectList.
      Specified by:
      getMemberTypes in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • applyFacets

      public void applyFacets(XSFacets facets, short presentFacet, short fixedFacet, ValidationContext context) throws InvalidDatatypeFacetException
      If is chosen
      Specified by:
      applyFacets in interface XSSimpleType
      Parameters:
      facets - the value of all the facets
      presentFacet - bit combination value of the costraining facet constants which are present.
      fixedFacet - bit combination value of the costraining facet constants which are fixed.
      context - the validation context
      Throws:
      InvalidDatatypeFacetException - exception for invalid facet values.
    • validate

      public Object validate(String content, ValidationContext context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException
      validate a value, and return the compiled form
      Specified by:
      validate in interface XSSimpleType
      Parameters:
      content - the string value that needs to be validated
      context - the validation context
      validatedInfo - used to store validation result
      Returns:
      the actual value (QName, Boolean) of the string value
      Throws:
      InvalidDatatypeValueException
    • getActualEnumValue

      protected ValidatedInfo getActualEnumValue(String lexical, ValidationContext ctx, ValidatedInfo info) throws InvalidDatatypeValueException
      Throws:
      InvalidDatatypeValueException
    • validateWithInfo

      public ValidatedInfo validateWithInfo(String content, ValidationContext context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException
      validate a value, and return the compiled form
      Throws:
      InvalidDatatypeValueException
    • validate

      public Object validate(Object content, ValidationContext context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException
      validate a value, and return the compiled form
      Specified by:
      validate in interface XSSimpleType
      Parameters:
      content - the string value that needs to be validated
      context - the validation context
      validatedInfo - used to store validation result
      Returns:
      the actual value (QName, Boolean) of the string value
      Throws:
      InvalidDatatypeValueException
    • validate

      public void validate(ValidationContext context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException
      validate an actual value against this DV
      Specified by:
      validate in interface XSSimpleType
      Parameters:
      context - the validation context
      validatedInfo - used to provide the actual value and member types
      Throws:
      InvalidDatatypeValueException - exception for invalid values.
    • isEqual

      public boolean isEqual(Object value1, Object value2)
      Description copied from interface: XSSimpleType
      Check whether two actual values are equal.
      Specified by:
      isEqual in interface XSSimpleType
      Parameters:
      value1 - the first value
      value2 - the second value
      Returns:
      true if the two value are equal
    • isIdentical

      public boolean isIdentical(Object value1, Object value2)
    • normalize

      public static String normalize(String content, short ws)
    • normalize

      protected String normalize(Object content, short ws)
    • getOrdered

      public short getOrdered()
      Fundamental Facet: ordered.
      Specified by:
      getOrdered in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getBounded

      public boolean getBounded()
      Fundamental Facet: bounded.
      Specified by:
      getBounded in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getFinite

      public boolean getFinite()
      Fundamental Facet: cardinality.
      Specified by:
      getFinite in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getNumeric

      public boolean getNumeric()
      Fundamental Facet: numeric.
      Specified by:
      getNumeric in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • isDefinedFacet

      public boolean isDefinedFacet(short facetName)
      Convenience method. [Facets]: check whether a facet is defined on this type.
      Specified by:
      isDefinedFacet in interface org.apache.xerces.xs.XSSimpleTypeDefinition
      Parameters:
      facetName - The name of the facet.
      Returns:
      True if the facet is defined, false otherwise.
    • getDefinedFacets

      public short getDefinedFacets()
      [facets]: all facets defined on this type. The value is a bit combination of FACET_XXX constants of all defined facets.
      Specified by:
      getDefinedFacets in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • isFixedFacet

      public boolean isFixedFacet(short facetName)
      Convenience method. [Facets]: check whether a facet is defined and fixed on this type.
      Specified by:
      isFixedFacet in interface org.apache.xerces.xs.XSSimpleTypeDefinition
      Parameters:
      facetName - The name of the facet.
      Returns:
      True if the facet is fixed, false otherwise.
    • getFixedFacets

      public short getFixedFacets()
      [facets]: all defined facets for this type which are fixed.
      Specified by:
      getFixedFacets in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getLexicalFacetValue

      public String getLexicalFacetValue(short facetName)
      Convenience method. Returns a value of a single constraining facet for this simple type definition. This method must not be used to retrieve values for enumeration and pattern facets.
      Specified by:
      getLexicalFacetValue in interface org.apache.xerces.xs.XSSimpleTypeDefinition
      Parameters:
      facetName - The name of the facet, i.e. FACET_LENGTH, FACET_TOTALDIGITS (see XSConstants). To retrieve the value for a pattern or an enumeration, see enumeration and pattern.
      Returns:
      A value of the facet specified in facetName for this simple type definition or null.
    • getLexicalEnumeration

      public org.apache.xerces.xs.StringList getLexicalEnumeration()
      A list of enumeration values if it exists, otherwise an empty StringList.
      Specified by:
      getLexicalEnumeration in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getActualEnumeration

      public org.apache.xerces.xs.datatypes.ObjectList getActualEnumeration()
      A list of actual enumeration values if it exists, otherwise an empty ObjectList.
    • getEnumerationItemTypeList

      public org.apache.xerces.xs.datatypes.ObjectList getEnumerationItemTypeList()
      A list of enumeration type values (as a list of ShortList objects) if it exists, otherwise returns null
    • getEnumerationTypeList

      public org.apache.xerces.xs.ShortList getEnumerationTypeList()
    • getLexicalPattern

      public org.apache.xerces.xs.StringList getLexicalPattern()
      A list of pattern values if it exists, otherwise an empty StringList.
      Specified by:
      getLexicalPattern in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getAnnotations

      public org.apache.xerces.xs.XSObjectList getAnnotations()
      [annotations]: a set of annotations for this simple type component if it exists, otherwise an empty XSObjectList.
      Specified by:
      getAnnotations in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • derivedFromType

      public boolean derivedFromType(org.apache.xerces.xs.XSTypeDefinition ancestor, short derivation)
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      Convenience method which checks if this type is derived from the given ancestorType.
      Specified by:
      derivedFromType in interface org.apache.xerces.xs.XSTypeDefinition
      Parameters:
      ancestor - An ancestor type definition.
      derivation - A bit combination representing a subset of { DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST }.
      Returns:
      True if this type is derived from ancestorType using only derivation methods from the derivationMethod .
    • derivedFrom

      public boolean derivedFrom(String ancestorNS, String ancestorName, short derivation)
      Description copied from interface: org.apache.xerces.xs.XSTypeDefinition
      Convenience method which checks if this type is derived from the given ancestor type.
      Specified by:
      derivedFrom in interface org.apache.xerces.xs.XSTypeDefinition
      Parameters:
      ancestorNS - An ancestor type namespace.
      ancestorName - An ancestor type name.
      derivation - A bit combination representing a subset of { DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST }.
      Returns:
      True if this type is derived from ancestorType using only derivation methods from the derivationMethod .
    • isDOMDerivedFrom

      public boolean isDOMDerivedFrom(String ancestorNS, String ancestorName, int derivationMethod)
      Checks if a type is derived from another by restriction, given the name and namespace. See: http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#TypeInfo-isDerivedFrom
      Parameters:
      ancestorNS - The namspace of the ancestor type declaration
      ancestorName - The name of the ancestor type declaration
      derivationMethod - The derivation method
      Returns:
      boolean True if the ancestor type is derived from the reference type by the specifiied derivation method.
    • reset

      public void reset()
    • getNamespaceItem

      public org.apache.xerces.xs.XSNamespaceItem getNamespaceItem()
      Description copied from interface: org.apache.xerces.xs.XSObject
      A namespace schema information item corresponding to the target namespace of the component, if it is globally declared; or null otherwise.
      Specified by:
      getNamespaceItem in interface org.apache.xerces.xs.XSObject
      See Also:
      • XSObject.getNamespaceItem()
    • setNamespaceItem

      public void setNamespaceItem(org.apache.xerces.xs.XSNamespaceItem namespaceItem)
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • getFacets

      public org.apache.xerces.xs.XSObjectList getFacets()
      A list of constraining facets if it exists, otherwise an empty XSObjectList. Note: This method must not be used to retrieve values for enumeration and pattern facets.
      Specified by:
      getFacets in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getFacet

      public org.apache.xerces.xs.XSObject getFacet(int facetType)
      Description copied from interface: org.apache.xerces.xs.XSSimpleTypeDefinition
      A constraining facet object. An instance of XSFacet or XSMultiValueFacet.
      Specified by:
      getFacet in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getMultiValueFacets

      public org.apache.xerces.xs.XSObjectList getMultiValueFacets()
      A list of enumeration and pattern constraining facets if it exists, otherwise an empty XSObjectList.
      Specified by:
      getMultiValueFacets in interface org.apache.xerces.xs.XSSimpleTypeDefinition
    • getMinInclusiveValue

      public Object getMinInclusiveValue()
    • getMinExclusiveValue

      public Object getMinExclusiveValue()
    • getMaxInclusiveValue

      public Object getMaxInclusiveValue()
    • getMaxExclusiveValue

      public Object getMaxExclusiveValue()
    • setAnonymous

      public void setAnonymous(boolean anon)
    • getTypeNamespace

      public String getTypeNamespace()
      Specified by:
      getTypeNamespace in interface TypeInfo
    • isDerivedFrom

      public boolean isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod)
      Specified by:
      isDerivedFrom in interface TypeInfo