Interface XmlSchemaVisitor

All Known Implementing Classes:
XmlSchemaStateMachineGenerator

public interface XmlSchemaVisitor
Defines a visitor interface for notifications when walking an XmlSchema using the XmlSchemaWalker.

Use this interface in conjunction with XmlSchemaWalker to receive events as an XmlSchema is traversed.

  • Method Details

    • onEnterElement

      void onEnterElement(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo, boolean previouslyVisited)
      A notification that an XmlSchemaElement has been entered. The element returned will be a true representation of the element at that point in the schema: if the schema defines a reference, the reference is followed and merged with its global definition.

      The first time this element is reached, all of its attributes will be visited (if any). Once the attributes have been visited, onEndAttributes(XmlSchemaElement, XmlSchemaTypeInfo) will be called. The only exception is when the element has no type information, at which point the next call will be to onExitElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean).

      On all subsequent visits to this element, previouslyVisited will be set to true and the attributes will not be revisited. The next call will be to onExitElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean), as all of the element's attributes and children have already been provided.

      Parameters:
      element - The element the walker is currently entering.
      typeInfo - The type information of that element.
      previouslyVisited - Whether the element was previously visited.
    • onExitElement

      void onExitElement(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo, boolean previouslyVisited)
      Signifies the end of the element that was previously entered. Provides the same information about the element as was provided in onEnterElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean) in the event it is easier to process on exit.
      Parameters:
      element - The element the walker is currently exiting.
      typeInfo - The type information of that element.
      previouslyVisited - Whether the element was previously visited.
    • onVisitAttribute

      void onVisitAttribute(XmlSchemaElement element, XmlSchemaAttrInfo attrInfo)
      This method is called for each attribute associated with the element, providing the XmlSchemaAttrInfo representing that attribute.
      Parameters:
      element - The element owing the attribute.
      attrInfo - The attribute information.
    • onEndAttributes

      void onEndAttributes(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo)
      This method is called when all of the attributes have been processed (provided the element has a type defined). This is a convenience method to allow the visitor to be notified when no more attributes are coming, and the walker will be traversing the element's children.
      Parameters:
      element - The element the walker is traversing.
      typeInfo - Type information about the element, if it is easier to process here.
    • onEnterSubstitutionGroup

      void onEnterSubstitutionGroup(XmlSchemaElement base)
      This method is called when the walker enters a substitution group. This method is called providing the base type, and then onEnterElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean) is called for all types in the substitution group, starting with the base type.

      The only exception is when the base type of the substitution group is abstract (XmlSchemaElement.isAbstract() returns true ). When this happens, onEnterElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean) is not called with the abstract type, as there is no information to provide.

      If the root element is the base of a substitution group, this method will be the first one called. Otherwise, onEnterElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean) will be called with the root element.

      Parameters:
      base - The XmlSchemaElement representing the base of the substitution group.
    • onExitSubstitutionGroup

      void onExitSubstitutionGroup(XmlSchemaElement base)
      Called when the end of the substitution group is reached. The base element of the substitution group is provided for convenience.
      Parameters:
      base - The base element of the subtitution group.
    • onEnterAllGroup

      void onEnterAllGroup(XmlSchemaAll all)
      Called when an all group is entered.
      Parameters:
      all - The XmlSchemaAll representing the all group.
    • onExitAllGroup

      void onExitAllGroup(XmlSchemaAll all)
      Called when an all group is exited.
      Parameters:
      all - The XmlSchemaAll representing the all group.
    • onEnterChoiceGroup

      void onEnterChoiceGroup(XmlSchemaChoice choice)
      Called when a choice group is entered.
      Parameters:
      choice - The XmlSchemaChoice representing the choice group.
    • onExitChoiceGroup

      void onExitChoiceGroup(XmlSchemaChoice choice)
      Called when a choice group is exited.
      Parameters:
      choice - The XmlSchemaChoice representing the choice group.
    • onEnterSequenceGroup

      void onEnterSequenceGroup(XmlSchemaSequence seq)
      Called when a sequence is entered.
      Parameters:
      seq - The XmlSchemaSequence representing the sequence.
    • onExitSequenceGroup

      void onExitSequenceGroup(XmlSchemaSequence seq)
      Called when a sequence is exited.
      Parameters:
      seq - The XmlSchemaSequence representing the sequence.
    • onVisitAny

      void onVisitAny(XmlSchemaAny any)
      Called when a wildcard element is entered.
      Parameters:
      any - The XmlSchemaAny representing the wildcard element.
    • onVisitAnyAttribute

      void onVisitAnyAttribute(XmlSchemaElement element, XmlSchemaAnyAttribute anyAttr)
      Called when a wildcard attribute is visited. If an element has a wildcard element, this will be called after all other attributes have been visited, and before the call to onEndAttributes(XmlSchemaElement, XmlSchemaTypeInfo).
      Parameters:
      element - The owning element.
      anyAttr - The XmlSchemaAnyAttribute representing the wildcard attribute.