FileDocCategorySizeDatePackage
SchemaDVFactory.javaAPI DocJava SE 5 API8269Fri Aug 26 14:55:46 BST 2005com.sun.org.apache.xerces.internal.impl.dv

SchemaDVFactory

public abstract class SchemaDVFactory extends 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.

author
Sandy Gao, IBM
version
$Id: SchemaDVFactory.java,v 1.12 2004/02/17 07:14:48 neeraj Exp $

Fields Summary
private static final String
DEFAULT_FACTORY_CLASS
Constructors Summary
protected SchemaDVFactory()

Methods Summary
public abstract com.sun.org.apache.xerces.internal.impl.dv.XSSimpleTypecreateTypeList(java.lang.String name, java.lang.String targetNamespace, short finalSet, com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType itemType, com.sun.org.apache.xerces.internal.xs.XSObjectList annotations)
Create a new simple type which is derived by list from another simple type.

param
name name of the new type, could be null
param
targetNamespace target namespace of the new type, could be null
param
finalSet value of "final"
param
itemType item type of the list type
param
annotation set of annotations
return
the newly created simple type

public abstract com.sun.org.apache.xerces.internal.impl.dv.XSSimpleTypecreateTypeRestriction(java.lang.String name, java.lang.String targetNamespace, short finalSet, com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType base, com.sun.org.apache.xerces.internal.xs.XSObjectList annotations)
Create a new simple type which is derived by restriction from another simple type.

param
name name of the new type, could be null
param
targetNamespace target namespace of the new type, could be null
param
finalSet value of "final"
param
base base type of the new type
param
annotation set of annotations
return
the newly created simple type

public abstract com.sun.org.apache.xerces.internal.impl.dv.XSSimpleTypecreateTypeUnion(java.lang.String name, java.lang.String targetNamespace, short finalSet, com.sun.org.apache.xerces.internal.impl.dv.XSSimpleType[] memberTypes, com.sun.org.apache.xerces.internal.xs.XSObjectList annotations)
Create a new simple type which is derived by union from a list of other simple types.

param
name name of the new type, could be null
param
targetNamespace target namespace of the new type, could be null
param
finalSet value of "final"
param
base member types of the union type
param
annotation set of annotations
return
the newly created simple type

public abstract com.sun.org.apache.xerces.internal.impl.dv.XSSimpleTypegetBuiltInType(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.

param
name the name of the datatype
return
the datatype validator of the given name

public abstract com.sun.org.apache.xerces.internal.util.SymbolHashgetBuiltInTypes()
get all built-in simple types, which are stored in a SymbolHash keyed by the name

return
a SymbolHash which contains all built-in simple types

public static final synchronized com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactorygetInstance()
Get a default instance of SchemaDVFactory implementation.

return
an instance of SchemaDVFactory implementation
exception
DVFactoryException cannot create an instance of the specified class name or the default class name


                                                                       
            
        return getInstance(DEFAULT_FACTORY_CLASS);
    
public static final synchronized com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactorygetInstance(java.lang.String factoryClass)
Get an instance of SchemaDVFactory implementation.

param
factoryClass name of the schema factory implementation to instantiate.
return
an instance of SchemaDVFactory implementation
exception
DVFactoryException cannot create an instance of the specified class name or the default class name


        try {
            // if the class name is not specified, use the default one
            return (SchemaDVFactory)(ObjectFactory.newInstance(
                factoryClass, ObjectFactory.findClassLoader(), true));
        } catch (ClassCastException e4) {
            throw new DVFactoryException("Schema factory class " + factoryClass + " does not extend from SchemaDVFactory.");
        }