## com.saxonica.schema
Class Assertion

    java.lang.Object
      com.saxonica.schema.SchemaStructure
          com.saxonica.schema.Assertion

All Implemented Interfaces:
  SerializableSchemaComponent, Serializable, SourceLocator

    public class Assertion

extends SchemaStructure
implements SerializableSchemaComponent

An Assertion schema component (See XML Schema 1.1 Part 1 Working Draft)

See Also:
  Serialized Form

Constructor Summary
`Assertion(EnterpriseConfiguration config, XPathExpression condition, XPathVariable valueVariable, String text)` Create an Assertion component

Method Summary
`boolean` `equals(Object other)` equals() is used when deciding whether two assertions are equal, as part of the type subsumption algorithm.
`XPathExpression` `getCondition()` Get the XPath expression representing the assertion.
`String` `getConditionText()` Get the original text of the condition.
`String` `getMessage()` Get the user-defined error message associated with the assertion
`XPathStaticContext` `getStaticContext()` Get the static context for the expression
`XPathVariable` `getValueVariable()` Get the variable bound to the name $value
`int` `hashCode()` Hashcode is used when deciding whether two assertions are equal, as part of the type subsumption algorithm.
`void` `serialize(SchemaModelSerializer serializer)` Serialize the schema component
`void` `setMessage(String message)` Set the user-defined error message associated with the assertion
`void` `setStaticContext(XPathStaticContext staticContext)` Set the static context for the expression.
`List<Item>` `test(Item contextItem, ValueRepresentation value, Controller controller)` Evaluate the assertion

Methods inherited from class com.saxonica.schema.SchemaStructure
`elaborate, fixup, getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, lookForCycles, setConfiguration, setFixupStatus, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, setSystemId, setValidationStatus`

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

Constructor Detail

### Assertion

    public Assertion(EnterpriseConfiguration config,
                     XPathExpression condition,
                     XPathVariable valueVariable,
                     String text)

  Create an Assertion component

  Parameters:
    `config` - the Saxon configuration
    `condition` - the compiled XPath expression
    `valueVariable` - the variable to hold $value (may be null)
    `text` - the original text of the XPath expression

Method Detail

### getCondition

    public XPathExpression getCondition()

  Get the XPath expression representing the assertion. If xs:report is used, this will be the negation of the condition in the source schema.

  Returns:
    the XPath expression

### getValueVariable

    public XPathVariable getValueVariable()

  Get the variable bound to the name $value

  Returns:
    the variable whose name is $value (may be null)

### getConditionText

    public String getConditionText()

  Get the original text of the condition.

  Returns:
    the original text of the XPath expression

### setMessage

    public void setMessage(String message)

  Set the user-defined error message associated with the assertion

  Parameters:
    `message` - the message defined using the saxon:message attribute, if present

### getMessage

    public String getMessage()

  Get the user-defined error message associated with the assertion

  Returns:
    the user-defined error message, if any; otherwise null

### setStaticContext

    public void setStaticContext(XPathStaticContext staticContext)

  Set the static context for the expression. Note: this is needed only to support exporting of the schema component model

  Parameters:
    `staticContext` - the static context

### getStaticContext

    public XPathStaticContext getStaticContext()

  Get the static context for the expression

  Returns:
    the static context

### test

    public List<Item> test(Item contextItem,
                           ValueRepresentation value,
                           Controller controller)

  Evaluate the assertion

  Parameters:
    `contextItem` - the item to be used as the context item in evaluating the condition
    `value` - the simple value to be tested, if any. If present, and if the expression uses $value, this value will be bound to the variable $value for evaluating the assertion.
    `controller` - May be null. If present, will be used to provide context information including the current error listener, URIResolver, and document pool, current date/time, etc.
  Returns:
    null if the assertion succeeds; otherwise a list of offending items which will be reported in any error message. Returning an empty list indicates that the assertion has failed but there are no specific offending items to be reported.

### hashCode

    public int hashCode()

  Hashcode is used when deciding whether two assertions are equal, as part of the type subsumption algorithm. Assertions are equal if their XPath expressions are equal.

  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(Object other)

  equals() is used when deciding whether two assertions are equal, as part of the type subsumption algorithm. Assertions are equal if their XPath expressions are equal.

  Overrides:
    `equals` in class `Object`

### serialize

    public void serialize(SchemaModelSerializer serializer)
                   throws XPathException

  Serialize the schema component

  Specified by:
    `serialize` in interface `SerializableSchemaComponent`
  Throws:
    `XPathException`

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