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, Serializable, 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

      `COMPONENT_FUNCTION_TYPE, FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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, getComponentAsFunction, getFields, getFingerprint, getName, getSelector, getTargetNamespace, serialize, setNameCode, setSelector, typeCheck`

    - ### Methods inherited from class com.saxonica.schema.SchemaStructure

      `getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, lookForCycles, makeXPathExpressionPropertyRecord, setConfiguration, setFixupStatus, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, 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

      `getRedefinitionLevel, 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`
      Returns:
        true if the reference has been resolved to a schema component

    - #### 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`
      Returns:
        an integer code identifying the symbol space

    - #### 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) 2004-2013 Saxonica Limited. All rights reserved.