## com.saxonica.validate
Class IdValidator

    java.lang.Object
      net.sf.saxon.event.SequenceReceiver
          net.sf.saxon.event.ProxyReceiver
              com.saxonica.validate.IdValidator

All Implemented Interfaces:
  javax.xml.transform.Result, Receiver

    public class IdValidator

extends ProxyReceiver

This class validates that ID elements and attributes have unique values and that IDREF and IDREFS elements and attributes refer to an ID in the same document. The class assumes that these elements and attributes have already been locally validated (so, for example, a element of type ID will not have child elements).

Field Summary

Fields inherited from class net.sf.saxon.event.ProxyReceiver
`nextReceiver`

Fields inherited from class net.sf.saxon.event.SequenceReceiver
`pipelineConfiguration, previousAtomic, systemId`

Fields inherited from interface javax.xml.transform.Result
`PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

Constructor Summary
`IdValidator()` Create a validator for ID constraints

Method Summary
`void` `attribute(int nameCode, int typeCode, java.lang.CharSequence value, int locationId, int properties)` Handle an attribute
`void` `characters(java.lang.CharSequence chars, int locationId, int properties)` Character data
`void` `close()` End of document
`void` `endElement()` End of element
`protected void` `reportValidationError(ValidationException err, long locationId)` Report a validation error
`void` `setConstraintChecker(ConstraintChecker checker)` Set the owning ConstraintChecker
`void` `startElement(int nameCode, int typeCode, int locationId, int properties)` Notify the start of an element

Methods inherited from class net.sf.saxon.event.ProxyReceiver
`append, comment, endDocument, getConfiguration, getDocumentLocator, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument`

Methods inherited from class net.sf.saxon.event.SequenceReceiver
`getPipelineConfiguration, getSystemId`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### IdValidator

    public IdValidator()

  Create a validator for ID constraints

Method Detail

### setConstraintChecker

    public void setConstraintChecker(ConstraintChecker checker)

  Set the owning ConstraintChecker

  Parameters:
    `checker` - the owning ConstraintChecker

### startElement

    public void startElement(int nameCode,
                             int typeCode,
                             int locationId,
                             int properties)
                      throws XPathException

  Notify the start of an element

  Specified by:
    `startElement` in interface `Receiver`
  Overrides:
    `startElement` in class `ProxyReceiver`
  Parameters:
    `nameCode` - integer code identifying the name of the element within the name pool.
    `typeCode` - integer code identifying the element's type within the name pool.
    `properties` - for future use. Should be set to zero.
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
  Throws:
    `XPathException`

### characters

    public void characters(java.lang.CharSequence chars,
                           int locationId,
                           int properties)
                    throws XPathException

  Character data

  Specified by:
    `characters` in interface `Receiver`
  Overrides:
    `characters` in class `ProxyReceiver`
  Parameters:
    `chars` - The characters
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
    `properties` - Bit significant value. The following bits are defined:
  DISABLE_ESCAPING
    Disable escaping for this text node
  USE_CDATA
    Output as a CDATA section
  Throws:
    `XPathException`

### endElement

    public void endElement()
                    throws XPathException

  End of element

  Specified by:
    `endElement` in interface `Receiver`
  Overrides:
    `endElement` in class `ProxyReceiver`
  Throws:
    `XPathException`

### attribute

    public void attribute(int nameCode,
                          int typeCode,
                          java.lang.CharSequence value,
                          int locationId,
                          int properties)
                   throws XPathException

  Handle an attribute

  Specified by:
    `attribute` in interface `Receiver`
  Overrides:
    `attribute` in class `ProxyReceiver`
  Parameters:
    `nameCode` - integer identifying the name of the attribute
    `typeCode` - integer identifying the type annotation (ignored)
    `value` - the value of the attribute
    `properties` - additional properties of the attribute
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
  Throws:
    `XPathException` - On any failure to write the attribute

### close

    public void close()
               throws XPathException

  End of document

  Specified by:
    `close` in interface `Receiver`
  Overrides:
    `close` in class `ProxyReceiver`
  Throws:
    `XPathException`

### reportValidationError

    protected void reportValidationError(ValidationException err,
                                         long locationId)
                                  throws ValidationException

  Report a validation error

  Parameters:
    `err` - The validation exception
    `locationId` - identifies the location in the source document or stylesheet/query where the validation error was detected
  Throws:
    `ValidationException`

Copyright (c) Saxonica Limited. All rights reserved.