Class AnyURIType

All Implemented Interfaces:
DatabindableDatatype, Discrete, XSDatatype, Serializable, org.relaxng.datatype.Datatype

public class AnyURIType extends BuiltinAtomicType implements Discrete
"anyURI" type. See http://www.w3.org/TR/xmlschema-2/#anyURI for the spec. type of the value object is java.lang.String.
See Also:
  • Field Details

    • theInstance

      public static final AnyURIType theInstance
    • isUric

      private static final boolean[] isUric
      a table that indicates whether a particular character has to be escaped or not. false indicates it has to be escaped. this table is of length 128.
    • regexp

      static final RegExp regexp
    • serialVersionUID

      private static final long serialVersionUID
      See Also:
  • Constructor Details

    • AnyURIType

      private AnyURIType()
  • Method Details

    • checkFormat

      protected boolean checkFormat(String content, org.relaxng.datatype.ValidationContext context)
      Specified by:
      checkFormat in class XSDatatypeImpl
    • appendHex

      private static void appendHex(StringBuffer buf, int hex)
    • appendByte

      private static void appendByte(StringBuffer buf, int ch)
    • appendEscaped

      private static void appendEscaped(StringBuffer buf, char ch)
      convert one 'char' in BMP to UTF-8 encoding.
    • appendEscaped

      private static void appendEscaped(StringBuffer buf, char ch1, char ch2)
      convert one surrogate pair to UTF-8 encoding.
    • createUricMap

      private static boolean[] createUricMap()
    • escape

      public static String escape(String content)
      escape non-ASCII characters in URL
    • createRegExp

      static RegExp createRegExp()
    • _createValue

      public Object _createValue(String content, org.relaxng.datatype.ValidationContext context)
      Description copied from class: XSDatatypeImpl
      converts a whitespace-processed lexical value into the corresponding value object
      Specified by:
      _createValue in class XSDatatypeImpl
    • convertToLexicalValue

      public String convertToLexicalValue(Object value, SerializationContext context)
      Description copied from interface: XSDatatype
      converts value object back to the corresponding value in the lexical space.

      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.

      Specified by:
      convertToLexicalValue in interface XSDatatype
      Parameters:
      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.
    • isFacetApplicable

      public final int isFacetApplicable(String facetName)
      Description copied from interface: XSDatatype
      returns if the specified facet is applicable to this datatype.
      Specified by:
      isFacetApplicable in interface XSDatatype
      Returns:
      APPLICABLE
      if the facet is applicable
      FIXED
      if the facet is already fixed (that is,not applicable)
      NOT_ALLOWED
      if the facet is not applicable to this datatype at all. this value is also returned for unknown facets.
    • countLength

      public final int countLength(Object value)
      Description copied from interface: Discrete
      count the number of item in value type. Actual semantics of this method varies.
      Specified by:
      countLength in interface Discrete
    • getJavaObjectType

      public Class getJavaObjectType()
      Description copied from interface: DatabindableDatatype
      gets the type of the objects that are created by the createJavaObject method.
      Specified by:
      getJavaObjectType in interface DatabindableDatatype
    • getBaseType

      public XSDatatype getBaseType()
      Description copied from interface: XSDatatype
      gets the base type of this type. This method returns null if this object represents the simple ur-type.

      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.

      Specified by:
      getBaseType in interface XSDatatype