## com.saxonica.schema
Class KeyRef

    java.lang.Object
      com.saxonica.schema.SchemaStructure
          com.saxonica.schema.IdentityConstraint
              com.saxonica.schema.KeyRef

All Implemented Interfaces:
  ComponentReference, SerializableSchemaComponent, UserSchemaComponent, java.io.Serializable, javax.xml.transform.SourceLocator, SchemaComponent

    public class KeyRef

extends IdentityConstraint
implements ComponentReference

This class represents an xs:keyRef identity constraint in a schema

See Also:
  Serialized Form

Field Summary

Fields inherited from interface net.sf.saxon.type.SchemaComponent
`FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING`

Constructor Summary
`KeyRef()` Create a KeyRef object representing an xs:keyref constraints
`KeyRef(int refer)` Create a new KeyRef Identity-Constraint.

Method Summary
`boolean` `fixup(SchemaCompiler compiler)` Check references from this component to other components
`int` `getReferFingerprint()` Gets the fingerprint of the name of the key being referenced).
`int` `getSymbolSpace()` Get the symbol space of the target of this reference
`SchemaComponent` `getTarget()` Get the schema component identified by this reference.
`boolean` `isResolved()` Determine whether this reference has been resolved
`void` `setReferFingerprint(int referFingerprint)` Sets the fingerprint of the name of the key being referenced.
`void` `setTargetKey(IdentityConstraint key)` Set the target key or unique constraint
`void` `tryToResolve(SchemaCompiler compiler)` Try to resolve the reference if possible, relative to components present in a given schema.
`boolean` `validate(SchemaCompiler compiler)` Checks the validity of this Schema defintion.

Methods inherited from class com.saxonica.schema.IdentityConstraint
`addField, elaborate, getFields, getFingerprint, getName, getSelector, getTargetNamespace, iterateFields, serialize, setNameCode, setSelector, typeCheck`

Methods inherited from class com.saxonica.schema.SchemaStructure
`getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getSystemId, getValidationStatus, lookForCycles, setConfiguration, setFixupStatus, setLineNumber, setLocator, 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
`getConfiguration, getFingerprint`

Methods inherited from interface javax.xml.transform.SourceLocator
`getColumnNumber, getLineNumber, getPublicId, getSystemId`

Methods inherited from interface com.saxonica.schema.UserSchemaComponent
`lookForCycles`

Methods inherited from interface net.sf.saxon.type.SchemaComponent
`getValidationStatus`

Constructor Detail

### KeyRef

    public KeyRef()

  Create a KeyRef object representing an xs:keyref constraints

### KeyRef

    public KeyRef(int refer)

  Create a new KeyRef Identity-Constraint.

  Parameters:
    `refer` - the fingerprint of the referenced key.

Method Detail

### getReferFingerprint

    public int getReferFingerprint()

  Gets the fingerprint of the name of the key being referenced).

  Returns:
    the fingerprint of the name of the key to reference.

### setReferFingerprint

    public void setReferFingerprint(int referFingerprint)

  Sets the fingerprint of the name of the key being referenced.

  Parameters:
    `referFingerprint` - the fingerprint of the name of the key to reference.

### setTargetKey

    public void setTargetKey(IdentityConstraint key)

  Set the target key or unique constraint

  Parameters:
    `key` - the target key definition or unique constraint

### tryToResolve

    public void tryToResolve(SchemaCompiler compiler)

  Try to resolve the reference if possible, relative to components present in a given schema. No error occurs if the reference cannot yet be resolved.

  Specified by:
    `tryToResolve` in interface `ComponentReference`
  Parameters:
    `compiler` - The schema containing the candidate target components for the reference. If null, the schema containing the reference is used.

### isResolved

    public boolean isResolved()

  Determine whether this reference has been resolved

  Specified by:
    `isResolved` in interface `ComponentReference`

### getTarget

    public SchemaComponent getTarget()
                              throws UnresolvedReferenceException

  Get the schema component identified by this reference.

  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.

### getSymbolSpace

    public int getSymbolSpace()

  Get the symbol space of the target of this reference

  Specified by:
    `getSymbolSpace` in interface `ComponentReference`

### fixup

    public boolean fixup(SchemaCompiler compiler)
                  throws SchemaException

  Check references from this component to other components

  Specified by:
    `fixup` in interface `UserSchemaComponent`
  Overrides:
    `fixup` in class `IdentityConstraint`
  Parameters:
    `compiler` - used for reporting error messages
  Returns:
    true if all is well, false if errors found
  Throws:
    `SchemaException`

### validate

    public boolean validate(SchemaCompiler compiler)
                     throws SchemaException

  Checks the validity of this Schema defintion.

  Specified by:
    `validate` in interface `UserSchemaComponent`
  Overrides:
    `validate` in class `IdentityConstraint`
  Returns:
    true when this Schema definition is valid, otherwise false.
  Throws:
    `SchemaException` - when this Schema definition is invalid.

Copyright (c) Saxonica Limited. All rights reserved.