org.apache.xerces.impl.dv

## Class SchemaDVFactory

- java.lang.Object
- - org.apache.xerces.impl.dv.SchemaDVFactory

- Direct Known Subclasses:
    BaseDVFactory, BaseSchemaDVFactory

      public abstract class SchemaDVFactory
      extends java.lang.Object

  Defines a factory API that enables applications to

  1. to get the instance of specified SchemaDVFactory implementation

  2. to create/return built-in schema simple types

  3. to create user defined simple types.

  Implementations of this abstract class can be used to get built-in simple types and create user-defined simle types.

  The implementation should store the built-in datatypes in static data, so that they can be shared by multiple parser instance, and multiple threads.

  Version:
    $Id: SchemaDVFactory.java 558582 2007-07-23 02:05:04Z mrglavas $
  Author:
    Sandy Gao, IBM

  # INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SchemaDVFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract XSSimpleType` | `createTypeList(java.lang.String name, java.lang.String targetNamespace, short finalSet, XSSimpleType itemType, org.apache.xerces.xs.XSObjectList annotations)` Create a new simple type which is derived by list from another simple type.
    `abstract XSSimpleType` | `createTypeRestriction(java.lang.String name, java.lang.String targetNamespace, short finalSet, XSSimpleType base, org.apache.xerces.xs.XSObjectList annotations)` Create a new simple type which is derived by restriction from another simple type.
    `abstract XSSimpleType` | `createTypeUnion(java.lang.String name, java.lang.String targetNamespace, short finalSet, XSSimpleType[] memberTypes, org.apache.xerces.xs.XSObjectList annotations)` Create a new simple type which is derived by union from a list of other simple types.
    `abstract XSSimpleType` | `getBuiltInType(java.lang.String name)` Get a built-in simple type of the given name REVISIT: its still not decided within the Schema WG how to define the ur-types and if all simple types should be derived from a complex type, so as of now we ignore the fact that anySimpleType is derived from anyType, and pass 'null' as the base of anySimpleType.
    `abstract SymbolHash` | `getBuiltInTypes()` get all built-in simple types, which are stored in a SymbolHash keyed by the name
    `static SchemaDVFactory` | `getInstance()` Get a default instance of SchemaDVFactory implementation.
    `static SchemaDVFactory` | `getInstance(java.lang.String factoryClass)` Get an instance of SchemaDVFactory implementation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SchemaDVFactory

          protected SchemaDVFactory()

  - ### Method Detail

    - #### getInstance

          public static final SchemaDVFactory getInstance()
                                                   throws DVFactoryException

      Get a default instance of SchemaDVFactory implementation.
      Returns:
        an instance of SchemaDVFactory implementation
      Throws:
        `DVFactoryException` - cannot create an instance of the specified class name or the default class name

    - #### getInstance

          public static final SchemaDVFactory getInstance(java.lang.String factoryClass)
                                                   throws DVFactoryException

      Get an instance of SchemaDVFactory implementation.
      Parameters:
        `factoryClass` - name of the schema factory implementation to instantiate.
      Returns:
        an instance of SchemaDVFactory implementation
      Throws:
        `DVFactoryException` - cannot create an instance of the specified class name or the default class name

    - #### getBuiltInType

          public abstract XSSimpleType getBuiltInType(java.lang.String name)

      Get a built-in simple type of the given name REVISIT: its still not decided within the Schema WG how to define the ur-types and if all simple types should be derived from a complex type, so as of now we ignore the fact that anySimpleType is derived from anyType, and pass 'null' as the base of anySimpleType. It needs to be changed as per the decision taken.
      Parameters:
        `name` - the name of the datatype
      Returns:
        the datatype validator of the given name

    - #### getBuiltInTypes

          public abstract SymbolHash getBuiltInTypes()

      get all built-in simple types, which are stored in a SymbolHash keyed by the name
      Returns:
        a SymbolHash which contains all built-in simple types

    - #### createTypeRestriction

          public abstract XSSimpleType createTypeRestriction(java.lang.String name,
                                           java.lang.String targetNamespace,
                                           short finalSet,
                                           XSSimpleType base,
                                           org.apache.xerces.xs.XSObjectList annotations)

      Create a new simple type which is derived by restriction from another simple type.
      Parameters:
        `name` - name of the new type, could be null
        `targetNamespace` - target namespace of the new type, could be null
        `finalSet` - value of "final"
        `base` - base type of the new type
        `annotations` - set of annotations
      Returns:
        the newly created simple type

    - #### createTypeList

          public abstract XSSimpleType createTypeList(java.lang.String name,
                                    java.lang.String targetNamespace,
                                    short finalSet,
                                    XSSimpleType itemType,
                                    org.apache.xerces.xs.XSObjectList annotations)

      Create a new simple type which is derived by list from another simple type.
      Parameters:
        `name` - name of the new type, could be null
        `targetNamespace` - target namespace of the new type, could be null
        `finalSet` - value of "final"
        `itemType` - item type of the list type
        `annotations` - set of annotations
      Returns:
        the newly created simple type

    - #### createTypeUnion

          public abstract XSSimpleType createTypeUnion(java.lang.String name,
                                     java.lang.String targetNamespace,
                                     short finalSet,
                                     XSSimpleType[] memberTypes,
                                     org.apache.xerces.xs.XSObjectList annotations)

      Create a new simple type which is derived by union from a list of other simple types.
      Parameters:
        `name` - name of the new type, could be null
        `targetNamespace` - target namespace of the new type, could be null
        `finalSet` - value of "final"
        `memberTypes` - member types of the union type
        `annotations` - set of annotations
      Returns:
        the newly created simple type

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.