com.saxonica.validate

## Class EntityValidator

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

- All Implemented Interfaces:
    Result, Receiver

      public class EntityValidator
      extends ProxyReceiver

  This class validates that elements and attributes of type ENTITY or ENTITIES have values are declared in the DOCTYPE declaration of the instance document as unparsed entities.

  This component of the validation pipeline is used during standalone schema validation, but not during validation invoked from XSLT or XQuery, as constructed trees never contain unparsed entities.

- - ### 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

    Constructors
    Constructor and Description
    `EntityValidator(Receiver next)` Create a validator for attributes of type ENTITY or ENTITIES

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId, int properties)` Handle an attribute
    `void` | `characters(CharSequence chars, int locationId, int properties)` Character data
    `void` | `endElement()` End of element
    `protected void` | `reportValidationError(ValidationException err, long locationId)` Report a validation error
    `void` | `setUnparsedEntity(String name, String uri, String publicId)` Set the URI for an unparsed entity in the document.
    `void` | `startElement(NodeName nameCode, SchemaType typeCode, int locationId, int properties)` Notify the start of an element
    `boolean` | `usesTypeAnnotations()` Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `append, close, comment, endDocument, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, startContent, startDocument`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, getConfiguration, getPipelineConfiguration, getSystemId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### EntityValidator

          public EntityValidator(Receiver next)

      Create a validator for attributes of type ENTITY or ENTITIES
      Parameters:
        `next` - the next receiver in the pipeline

  - ### Method Detail

    - #### setUnparsedEntity

          public void setUnparsedEntity(String name,
                               String uri,
                               String publicId)
                                 throws XPathException

      Set the URI for an unparsed entity in the document.
      Specified by:
        `setUnparsedEntity` in interface `Receiver`
      Overrides:
        `setUnparsedEntity` in class `ProxyReceiver`
      Parameters:
        `name` - The name of the unparsed entity
        `uri` - The system identifier of the unparsed entity
        `publicId` - The public identifier of the unparsed entity
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement(NodeName nameCode,
                          SchemaType 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` - if an error occurs

    - #### characters

          public void characters(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` - if an error occurs

    - #### endElement

          public void endElement()
                          throws XPathException

      End of element
      Specified by:
        `endElement` in interface `Receiver`
      Overrides:
        `endElement` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### attribute

          public void attribute(NodeName nameCode,
                       SimpleType typeCode,
                       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

    - #### usesTypeAnnotations

          public boolean usesTypeAnnotations()

      Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events
      Specified by:
        `usesTypeAnnotations` in interface `Receiver`
      Overrides:
        `usesTypeAnnotations` in class `ProxyReceiver`
      Returns:
        true if the Receiver makes any use of this information. If false, the caller may supply untyped nodes instead of supplying the type annotation

    - #### 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` - if the error is considered fatal

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.