Interface XmlSchemaVisitor
- All Known Implementing Classes:
XmlSchemaStateMachineGenerator
XmlSchema using the
XmlSchemaWalker.
Use this interface in conjunction with XmlSchemaWalker to
receive events as an XmlSchema is
traversed.
-
Method Summary
Modifier and TypeMethodDescriptionvoidonEndAttributes(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo) This method is called when all of the attributes have been processed (provided the element has a type defined).voidCalled when an all group is entered.voidonEnterChoiceGroup(XmlSchemaChoice choice) Called when a choice group is entered.voidonEnterElement(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo, boolean previouslyVisited) A notification that anXmlSchemaElementhas been entered.voidCalled when a sequence is entered.voidThis method is called when the walker enters a substitution group.voidCalled when an all group is exited.voidonExitChoiceGroup(XmlSchemaChoice choice) Called when a choice group is exited.voidonExitElement(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo, boolean previouslyVisited) Signifies the end of the element that was previously entered.voidCalled when a sequence is exited.voidCalled when the end of the substitution group is reached.voidonVisitAny(XmlSchemaAny any) Called when a wildcard element is entered.voidonVisitAnyAttribute(XmlSchemaElement element, XmlSchemaAnyAttribute anyAttr) Called when a wildcard attribute is visited.voidonVisitAttribute(XmlSchemaElement element, XmlSchemaAttrInfo attrInfo) This method is called for each attribute associated with the element, providing theXmlSchemaAttrInforepresenting that attribute.
-
Method Details
-
onEnterElement
void onEnterElement(XmlSchemaElement element, XmlSchemaTypeInfo typeInfo, boolean previouslyVisited) A notification that anXmlSchemaElementhas 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 toonExitElement(XmlSchemaElement, XmlSchemaTypeInfo, boolean).On all subsequent visits to this element,
previouslyVisitedwill be set totrueand the attributes will not be revisited. The next call will be toonExitElement(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
Signifies the end of the element that was previously entered. Provides the same information about the element as was provided inonEnterElement(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
This method is called for each attribute associated with the element, providing theXmlSchemaAttrInforepresenting that attribute.- Parameters:
element- The element owing the attribute.attrInfo- The attribute information.
-
onEndAttributes
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
This method is called when the walker enters a substitution group. This method is called providing the base type, and thenonEnterElement(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()returnstrue). 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- TheXmlSchemaElementrepresenting the base of the substitution group.
-
onExitSubstitutionGroup
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
Called when an all group is entered.- Parameters:
all- TheXmlSchemaAllrepresenting the all group.
-
onExitAllGroup
Called when an all group is exited.- Parameters:
all- TheXmlSchemaAllrepresenting the all group.
-
onEnterChoiceGroup
Called when a choice group is entered.- Parameters:
choice- TheXmlSchemaChoicerepresenting the choice group.
-
onExitChoiceGroup
Called when a choice group is exited.- Parameters:
choice- TheXmlSchemaChoicerepresenting the choice group.
-
onEnterSequenceGroup
Called when a sequence is entered.- Parameters:
seq- TheXmlSchemaSequencerepresenting the sequence.
-
onExitSequenceGroup
Called when a sequence is exited.- Parameters:
seq- TheXmlSchemaSequencerepresenting the sequence.
-
onVisitAny
Called when a wildcard element is entered.- Parameters:
any- TheXmlSchemaAnyrepresenting the wildcard element.
-
onVisitAnyAttribute
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 toonEndAttributes(XmlSchemaElement, XmlSchemaTypeInfo).- Parameters:
element- The owning element.anyAttr- TheXmlSchemaAnyAttributerepresenting the wildcard attribute.
-