com.saxonica.schema
Class Assertion

java.lang.Object
  extended by com.saxonica.schema.SchemaStructure
      extended by 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, getSystemId, getValidationStatus, lookForCycles, setConfiguration, setFixupStatus, setLineNumber, setLocator, setRedefinitionLevel, 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) Saxonica Limited. All rights reserved.