Class Assertion

All Implemented Interfaces:
SerializableSchemaComponent, UserSchemaComponent, SourceLocator, Location, SchemaComponent, Locator

public class Assertion extends SchemaStructure implements SchemaComponent, SerializableSchemaComponent
An Assertion schema component (See XML Schema 1.1 Part 1)
  • Constructor Details

    • Assertion

      public Assertion()
    • Assertion

      public Assertion(EnterpriseConfiguration config, XPathExpression condition, XPathVariable valueVariable, Map<StructuredQName,XPathVariable> params, 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)
      params - parameters declared using saxon:param and used in this expression
      text - the original text of the XPath expression
  • Method Details

    • 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
    • setSweep

      public void setSweep(Sweep sweep)
      Set the sweep of the expression; if motionless or consuming, the validator may attempt streamed evaluation.
      Parameters:
      sweep - the sweep of the expression (indicating whether it is capable of streamed evaluation)
    • getSweep

      public Sweep getSweep()
      Get the sweep of the expression; if motionless or consuming, the validator may attempt streamed evaluation.
      Returns:
      the sweep of the expression (indicating whether it is capable of streamed evaluation)
    • setReturnsFailingNodes

      public void setReturnsFailingNodes(boolean failingNodes)
      Say that the expression should return the nodes that cause the expression to be invalid, rather than returning a true/false result
      Parameters:
      failingNodes - set to true if the result is a set of nodes that cause the assertion to fail
    • 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
    • testSimple

      public boolean testSimple(AtomicSequence value, ConversionRules rules)
      Evaluate the assertion
      Parameters:
      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.
      rules - used to provide context information including the current error listener, URIResolver, and document pool, current date/time, etc. To take advantage of validation parameters (saxon:param) this must be a ValidationContext; but on other paths such as casting it is not possible to supply parameters, and the defaults are used
      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.
    • testComplex

      public List<NodeInfo> testComplex(NodeInfo contextItem, AtomicSequence value, ValidationContext rules)
      Evaluate a complex type assertion
      Parameters:
      contextItem - the item to be used as the context item in evaluating the condition
      value - for a complex type with simple content, the typed value of the simple content, as a sequence of atomic values.
      rules - used to provide context information including the current error listener, URIResolver, and document pool, current date/time, etc. To take advantage of validation parameters (saxon:param) this must be a ValidationContext; but on other paths such as casting it is not possible to supply parameters, and the defaults are used
      Returns:
      an empty sequence if the assertion succeeds; otherwise a list of offending nodes which will be reported in any error message.
    • setDocumentsAndCollections

      public static void setDocumentsAndCollections(Configuration config, XPathDynamicContext context)
      Set the dynamic XPath context to respond appropriately to requests for documents and collections
      Parameters:
      config - the Saxon configuration
      context - the dynamic context for evaluation of XPath expressions, which will be modified by this request.
    • 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
      Parameters:
      serializer - the object responsible for performing the serialization
      Throws:
      XPathException - if serialization fails
    • getComponentAsFunction

      public FunctionItem getComponentAsFunction()
      Description copied from interface: SchemaComponent
      Get the schema component in the form of a function item. This allows schema information to be made visible to XSLT or XQuery code. The function makes available the contents of the schema component as defined in the XSD specification. The function takes a string as argument representing a property name, and returns the corresponding property of the schema component. There is also a property "class" which returns the kind of schema component, for example "Attribute Declaration".
      Specified by:
      getComponentAsFunction in interface SchemaComponent
      Overrides:
      getComponentAsFunction in class SchemaStructure
      Returns:
      the schema component represented as a function from property names to property values.