com.saxonica.schema
Class TypeReference

java.lang.Object
  extended by com.saxonica.schema.SchemaStructure
      extended by com.saxonica.schema.TypeReference
All Implemented Interfaces:
ComponentReference, Serializable, SourceLocator

public class TypeReference
extends SchemaStructure
implements ComponentReference

A reference to a simple or complex type

See Also:
Serialized Form

Constructor Summary
TypeReference(int fingerprint, SchemaAwareConfiguration config, SourceLocator locator)
          Creates a new Type reference
 
Method Summary
 int getFingerprint()
          Get the fingerprint of the target of this reference
 int getSymbolSpace()
          Get the symbol space of the target of this reference
 SchemaComponent getTarget()
          Returns the type that this type reference is a reference to
 boolean isResolved()
          Determine whether this reference has been resolved
 void lookForCycles(PreparedSchema schema, Stack references, ErrorListener errorListener)
          This method is called to look for cycles.
 void setTarget(SchemaType target)
           
 void tryToResolve(SchemaCompiler compiler)
          Attempt to resolved this reference using the groups defined in a given schema.
 
Methods inherited from class com.saxonica.schema.SchemaStructure
elaborate, fixup, getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getSystemId, getValidationStatus, lookForCycles, setConfiguration, setFixupStatus, setLineNumber, setLocator, setSystemId, setValidationStatus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.saxonica.schema.ComponentReference
getConfiguration
 
Methods inherited from interface javax.xml.transform.SourceLocator
getColumnNumber, getLineNumber, getPublicId, getSystemId
 

Constructor Detail

TypeReference

public TypeReference(int fingerprint,
                     SchemaAwareConfiguration config,
                     SourceLocator locator)
Creates a new Type reference

Parameters:
fingerprint - the Name Pool fingerprint of the name of the type being referenced
config - identifies the XML Schema in which this type reference appears. May be null if the reference is in a built-in type
locator - the SourceLocator identifying the location of the reference. May be null if the reference is in a built-in type
Method Detail

isResolved

public boolean isResolved()
Determine whether this reference has been resolved

Specified by:
isResolved in interface ComponentReference

setTarget

public void setTarget(SchemaType target)

getFingerprint

public int getFingerprint()
Description copied from interface: ComponentReference
Get the fingerprint of the target of this reference

Specified by:
getFingerprint in interface ComponentReference

getSymbolSpace

public int getSymbolSpace()
Get the symbol space of the target of this reference

Specified by:
getSymbolSpace in interface ComponentReference

getTarget

public SchemaComponent getTarget()
                          throws UnresolvedReferenceException
Returns the type that this type reference is a reference to

Specified by:
getTarget in interface ComponentReference
Returns:
the schema component if the reference has been resolved.
Throws:
UnresolvedReferenceException - if the reference has not been resolved. Note that this is an unchecked exception.

tryToResolve

public void tryToResolve(SchemaCompiler compiler)
Attempt to resolved this reference using the groups defined in a given schema. No error results if the reference cannot be resolved.

Specified by:
tryToResolve in interface ComponentReference
Parameters:
compiler - The compiler being used to compile the referring component. This is assumed to know about the schema containing the candidate target components for the reference. If null, the schema containing the reference is used.

lookForCycles

public void lookForCycles(PreparedSchema schema,
                          Stack references,
                          ErrorListener errorListener)
                   throws SchemaException
This method is called to look for cycles. The object implementing this method is required (a) to raise an exception if the object itself appears in the list of references, (b) to add itself to the list of references, and (c) to call the lookForCycles method on all the objects that it references.

Parameters:
schema -
references - A stack of objects that contain direct or indirect references to this object, and that must therefore not be referred to from this object.
errorListener -
Throws:
SchemaException


Copyright (C) Michael H. Kay. All rights reserved.