com.saxonica.schema
Class AttributeGroupReference

java.lang.Object
  extended bycom.saxonica.schema.SchemaStructure
      extended bycom.saxonica.schema.AttributeGroupReference
All Implemented Interfaces:
ComponentReference, SchemaComponent, java.io.Serializable, javax.xml.transform.SourceLocator, UserSchemaComponent

public final class AttributeGroupReference
extends SchemaStructure
implements ComponentReference, UserSchemaComponent

An XML Schema Attribute Group Reference, corresponding to an xs:attributeGroup element with a 'ref' attribute.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface net.sf.saxon.type.SchemaComponent
FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING
 
Constructor Summary
AttributeGroupReference(PreparedSchema schema, int fingerprint)
          Creates a new AttributeGroup reference
 
Method Summary
 boolean fixup(PreparedSchema schema)
          Fix up references to other elements in the schema.
 AttributeWildcard getAttributeWildcard(PreparedSchema schema)
          Returns the attribute wildcard in the referenced attribute group, if any.
 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()
          Resolves the attribute group reference Note this method doesn't bind irrevocably to the target attribute group declaration, because this may change following a redefine.
 boolean isResolved()
          Determine whether this reference has been resolved
 void lookForCycles(PreparedSchema schema, java.util.Stack references)
          Check for cycles in the attribute group.
 void setFingerprint(int fingerprint)
          Set the fingerprint of the target of this reference
 void tryToResolve(PreparedSchema schema)
          Attempt to resolve this reference using the groups defined in a given schema.
 boolean validate(PreparedSchema schema)
          Checks the validity of this Schema component.
 
Methods inherited from class com.saxonica.schema.SchemaStructure
getColumnNumber, getFixupStatus, getLineNumber, getPublicId, getSchema, getSystemId, getValidationStatus, setFixupStatus, setLineNumber, setLocator, setSchema, setSystemId, setValidationStatus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.saxonica.schema.ComponentReference
getSchema
 
Methods inherited from interface javax.xml.transform.SourceLocator
getColumnNumber, getLineNumber, getPublicId, getSystemId
 
Methods inherited from interface net.sf.saxon.type.SchemaComponent
getValidationStatus
 

Constructor Detail

AttributeGroupReference

public AttributeGroupReference(PreparedSchema schema,
                               int fingerprint)
Creates a new AttributeGroup reference

Parameters:
schema - the Schema that this AttributeGroup belongs to.
fingerprint - The NamePool fingerprint of the name of the attribute group (that is, the name contained in the 'ref' attribute)
Method Detail

isResolved

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

Specified by:
isResolved in interface ComponentReference

getSymbolSpace

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

Specified by:
getSymbolSpace in interface ComponentReference

setFingerprint

public void setFingerprint(int fingerprint)
Set the fingerprint of the target of this reference


getFingerprint

public int getFingerprint()
Get the fingerprint of the target of this reference

Specified by:
getFingerprint in interface ComponentReference

getAttributeWildcard

public AttributeWildcard getAttributeWildcard(PreparedSchema schema)
                                       throws UnresolvedReferenceException
Returns the attribute wildcard in the referenced attribute group, if any.

Parameters:
schema -
Returns:
the the attribute wildcard (xs:anyAttribute element) in the referenced attribute group, if there is one; otherwise null.
Throws:
UnresolvedReferenceException

fixup

public boolean fixup(PreparedSchema schema)
              throws SchemaException
Fix up references to other elements in the schema.

Specified by:
fixup in interface UserSchemaComponent
Parameters:
schema - The schema.
Returns:
true (this implementation does nothing).
Throws:
SchemaException

validate

public boolean validate(PreparedSchema schema)
                 throws SchemaException
Checks the validity of this Schema component. For internal use only.

Specified by:
validate in interface UserSchemaComponent
Parameters:
schema - if this is not null, any errors that are detected should be reported using the error() method of this schema.
Returns:
true when this Schema definition is valid, otherwise false.
Throws:
SchemaException - if the ErrorListener decides that an error is fatal.

lookForCycles

public void lookForCycles(PreparedSchema schema,
                          java.util.Stack references)
                   throws SchemaException
Check for cycles in the attribute group. For internal use only.

Specified by:
lookForCycles in interface UserSchemaComponent
Overrides:
lookForCycles in class SchemaStructure
Parameters:
schema -
references - A list of attribute groups that reference this one, directly or indirectly.
Throws:
SchemaException - if a circularity is detected.

tryToResolve

public void tryToResolve(PreparedSchema schema)
Attempt to resolve 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:
schema - The schema containing the candidate target components for the reference. If null, the schema containing the reference is used.

getTarget

public SchemaComponent getTarget()
Resolves the attribute group reference Note this method doesn't bind irrevocably to the target attribute group declaration, because this may change following a redefine.

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.