org.apache.xerces.impl.dv
Class SchemaDVFactory

java.lang.Object
  |
  +--org.apache.xerces.impl.dv.SchemaDVFactory
Direct Known Subclasses:
SchemaDVFactoryImpl

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,v 1.5 2002/01/29 01:15:11 lehors Exp $
Author:
Sandy Gao, IBM

Constructor Summary
protected SchemaDVFactory()
           
 
Method Summary
abstract  XSListSimpleType createTypeList(java.lang.String name, java.lang.String targetNamespace, short finalSet, XSSimpleType itemType)
          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)
          Create a new simple type which is derived by restriction from another simple type.
abstract  XSUnionSimpleType createTypeUnion(java.lang.String name, java.lang.String targetNamespace, short finalSet, XSSimpleType[] memberTypes)
          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  java.util.Hashtable getBuiltInTypes()
          get all built-in simple types, which are stored in a hashtable keyed by the name
static SchemaDVFactory getInstance()
          Get an instance of SchemaDVFactory implementation.
static void setFactoryClass(java.lang.String factoryClass)
          Set the class name of the schema dv factory 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

setFactoryClass

public static final void setFactoryClass(java.lang.String factoryClass)
                                  throws DVFactoryException
Set the class name of the schema dv factory implementation. This method can only be called before the first time the method getInstance successfully returns, otherwise a DVFactoryException will be thrown.
Parameters:
className - the class name of the SchemaDVFactory implementation
Throws:
DVFactoryException - the method cannot be called at this time

getInstance

public static final SchemaDVFactory getInstance()
                                         throws DVFactoryException
Get an instance of SchemaDVFactory implementation. If setFactoryClass is called before this method, the passed-in class name will be used to create the factory instance. Otherwise, a default implementation is used. After the first time this method successfully returns, any subsequent invocation to this method returns the same instance.
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 java.util.Hashtable getBuiltInTypes()
get all built-in simple types, which are stored in a hashtable keyed by the name
Returns:
a hashtable which contains all built-in simple types

createTypeRestriction

public abstract XSSimpleType createTypeRestriction(java.lang.String name,
                                                   java.lang.String targetNamespace,
                                                   short finalSet,
                                                   XSSimpleType base)
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
Returns:
the newly created simple type

createTypeList

public abstract XSListSimpleType createTypeList(java.lang.String name,
                                                java.lang.String targetNamespace,
                                                short finalSet,
                                                XSSimpleType itemType)
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
Returns:
the newly created simple type

createTypeUnion

public abstract XSUnionSimpleType createTypeUnion(java.lang.String name,
                                                  java.lang.String targetNamespace,
                                                  short finalSet,
                                                  XSSimpleType[] memberTypes)
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"
base - member types of the union type
Returns:
the newly created simple type


Copyright © 1999-2002 Apache XML Project. All Rights Reserved.