org.apache.xerces.impl.xs

Class XMLSchemaValidator

public class XMLSchemaValidator extends Object implements XMLComponent, XMLDocumentFilter, FieldActivator, RevalidationHandler

The XML Schema validator. The validator implements a document filter: receiving document events from the scanner; validating the content and structure; augmenting the InfoSet, if applicable; and notifying the parser of the information resulting from the validation process.

This component requires the following features and properties from the component manager that uses it:

Version: $Id: XMLSchemaValidator.java,v 1.179 2005/07/24 22:55:21 mrglavas Exp $

Author: Sandy Gao IBM Elena Litani IBM Andy Clark IBM Neeraj Bajaj, Sun Microsystems, inc.

UNKNOWN:

Nested Class Summary
protected classXMLSchemaValidator.KeyRefValueStore
Key reference value store.
protected classXMLSchemaValidator.KeyValueStore
Key value store.
protected classXMLSchemaValidator.LocalIDKey
protected static classXMLSchemaValidator.ShortVector
A simple vector for shorts.
protected classXMLSchemaValidator.UniqueValueStore
Unique value store.
protected abstract classXMLSchemaValidator.ValueStoreBase
Value store implementation base class.
protected classXMLSchemaValidator.ValueStoreCache
Value store cache.
protected static classXMLSchemaValidator.XPathMatcherStack
Stack of XPath matchers for identity constraints.
protected classXMLSchemaValidator.XSIErrorReporter
A wrapper of the standard error reporter.
Field Summary
protected static StringALLOW_JAVA_ENCODINGS
Feature identifier: whether to recognize java encoding names
protected static StringCONTINUE_AFTER_FATAL_ERROR
Feature identifier: whether to continue parsing a schema after a fatal error is encountered
protected static StringDYNAMIC_VALIDATION
Feature identifier: dynamic validation.
protected static StringENTITY_MANAGER
static StringENTITY_RESOLVER
Property identifier: entity resolver.
static StringERROR_REPORTER
Property identifier: error reporter.
protected AugmentationsImplfAugmentations
protected booleanfAugPSVI
protected ElementPSVImplfCurrentPSVI
current PSVI element info
protected XMLStringfDefaultValue
protected XMLDocumentHandlerfDocumentHandler
Document handler.
protected XMLDocumentSourcefDocumentSource
protected booleanfDoValidation
protected booleanfDynamicValidation
protected booleanfEntityRef
protected XMLEntityResolverfEntityResolver
Entity resolver
protected StringfExternalNoNamespaceSchema
protected StringfExternalSchemas
protected booleanfFullChecking
protected XMLGrammarPoolfGrammarPool
protected booleanfIdConstraint
protected booleanfInCDATA
protected ObjectfJaxpSchemaSource
protected HashtablefLocationPairs
protected XMLSchemaValidator.XPathMatcherStackfMatcherStack
Stack of active XPath matchers for identity constraints.
protected HashMapfMayMatchFieldMap
Map which is used to catch instance documents that try and match a field several times in the same scope.
protected booleanfNormalizeData
protected booleanfSchemaDynamicValidation
protected booleanfSchemaElementDefault
protected SymbolTablefSymbolTable
Symbol table.
protected booleanfUseGrammarPoolOnly
protected ValidationManagerfValidationManager
protected ValidationStatefValidationState
protected XMLSchemaValidator.ValueStoreCachefValueStoreCache
Cache of value stores for identity constraint fields.
protected XSDDescriptionfXSDDescription
Schema Grammar Description passed, to give a chance to application to supply the Grammar
protected XMLSchemaValidator.XSIErrorReporterfXSIErrorReporter
Error reporter.
protected static StringGENERATE_SYNTHETIC_ANNOTATIONS
Feature: generate synthetic annotations
protected static StringHONOUR_ALL_SCHEMALOCATIONS
Feature identifier: honour all schemaLocations
protected static intID_CONSTRAINT_NUM
protected static StringJAXP_SCHEMA_LANGUAGE
Property identifier: JAXP schema language.
protected static StringJAXP_SCHEMA_SOURCE
Property identifier: JAXP schema source.
protected static StringNORMALIZE_DATA
Feature identifier: expose schema normalized value
protected static StringPARSER_SETTINGS
protected static StringSCHEMA_AUGMENT_PSVI
Feature identifier: augment PSVI
protected static StringSCHEMA_ELEMENT_DEFAULT
Feature identifier: send element default value via characters()
protected static StringSCHEMA_FULL_CHECKING
Feature identifier: schema full checking
protected static StringSCHEMA_LOCATION
Property identifier: schema location.
protected static StringSCHEMA_NONS_LOCATION
Property identifier: no namespace schema location.
protected static StringSCHEMA_VALIDATION
Feature identifier: validation.
protected static StringSTANDARD_URI_CONFORMANT_FEATURE
Feature identifier: standard uri conformant feature.
static StringSYMBOL_TABLE
Property identifier: symbol table.
protected static StringUSE_GRAMMAR_POOL_ONLY
Feature identifier: use grammar pool only
protected static StringVALIDATE_ANNOTATIONS
Feature identifier: validate annotations.
protected static StringVALIDATION
Feature identifier: validation.
protected static StringVALIDATION_MANAGER
static StringXMLGRAMMAR_POOL
Property identifier: grammar pool.
Constructor Summary
XMLSchemaValidator()
Default constructor.
Method Summary
XPathMatcheractivateField(Field field, int initialDepth)
Request to activate the specified field.
booleancharacterData(String data, Augmentations augs)
voidcharacters(XMLString text, Augmentations augs)
Character content.
voidcomment(XMLString text, Augmentations augs)
A comment.
voiddoctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
Notifies of the presence of the DOCTYPE line in the document.
voidelementDefault(String data)
voidemptyElement(QName element, XMLAttributes attributes, Augmentations augs)
An empty element.
voidendCDATA(Augmentations augs)
The end of a CDATA section.
voidendDocument(Augmentations augs)
The end of the document.
voidendElement(QName element, Augmentations augs)
The end of an element.
voidendGeneralEntity(String name, Augmentations augs)
This method notifies the end of a general entity.
voidendValueScopeFor(IdentityConstraint identityConstraint, int initialDepth)
Ends the value scope for the specified identity constraint.
XMLDocumentHandlergetDocumentHandler()
Returns the document handler
XMLDocumentSourcegetDocumentSource()
Returns the document source
BooleangetFeatureDefault(String featureId)
Returns the default state for a feature, or null if this component does not want to report a default value for this feature.
ObjectgetPropertyDefault(String propertyId)
Returns the default state for a property, or null if this component does not want to report a default value for this property.
String[]getRecognizedFeatures()
Returns a list of feature identifiers that are recognized by this component.
String[]getRecognizedProperties()
Returns a list of property identifiers that are recognized by this component.
voidignorableWhitespace(XMLString text, Augmentations augs)
Ignorable whitespace.
BooleanmayMatch(Field field)
Returns whether the given field is permitted to match a value.
voidprocessingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction.
voidreset(XMLComponentManager componentManager)
voidsetDocumentHandler(XMLDocumentHandler documentHandler)
Sets the document handler to receive information about the document.
voidsetDocumentSource(XMLDocumentSource source)
Sets the document source
voidsetFeature(String featureId, boolean state)
Sets the state of a feature.
voidsetMayMatch(Field field, Boolean state)
Sets whether the given field is permitted to match a value.
voidsetProperty(String propertyId, Object value)
Sets the value of a property.
voidstartCDATA(Augmentations augs)
The start of a CDATA section.
voidstartDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)
The start of the document.
voidstartElement(QName element, XMLAttributes attributes, Augmentations augs)
The start of an element.
voidstartGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies the start of a general entity.
voidstartValueScopeFor(IdentityConstraint identityConstraint, int initialDepth)
Start the value scope for the specified identity constraint.
voidtextDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity.
voidxmlDecl(String version, String encoding, String standalone, Augmentations augs)
Notifies of the presence of an XMLDecl line in the document.

Field Detail

ALLOW_JAVA_ENCODINGS

protected static final String ALLOW_JAVA_ENCODINGS
Feature identifier: whether to recognize java encoding names

CONTINUE_AFTER_FATAL_ERROR

protected static final String CONTINUE_AFTER_FATAL_ERROR
Feature identifier: whether to continue parsing a schema after a fatal error is encountered

DYNAMIC_VALIDATION

protected static final String DYNAMIC_VALIDATION
Feature identifier: dynamic validation.

ENTITY_MANAGER

protected static final String ENTITY_MANAGER

ENTITY_RESOLVER

public static final String ENTITY_RESOLVER
Property identifier: entity resolver.

ERROR_REPORTER

public static final String ERROR_REPORTER
Property identifier: error reporter.

fAugmentations

protected final AugmentationsImpl fAugmentations

fAugPSVI

protected boolean fAugPSVI

fCurrentPSVI

protected ElementPSVImpl fCurrentPSVI
current PSVI element info

fDefaultValue

protected XMLString fDefaultValue

fDocumentHandler

protected XMLDocumentHandler fDocumentHandler
Document handler.

fDocumentSource

protected XMLDocumentSource fDocumentSource

fDoValidation

protected boolean fDoValidation

fDynamicValidation

protected boolean fDynamicValidation

fEntityRef

protected boolean fEntityRef

fEntityResolver

protected XMLEntityResolver fEntityResolver
Entity resolver

fExternalNoNamespaceSchema

protected String fExternalNoNamespaceSchema

fExternalSchemas

protected String fExternalSchemas

fFullChecking

protected boolean fFullChecking

fGrammarPool

protected XMLGrammarPool fGrammarPool

fIdConstraint

protected boolean fIdConstraint

fInCDATA

protected boolean fInCDATA

fJaxpSchemaSource

protected Object fJaxpSchemaSource

fLocationPairs

protected final Hashtable fLocationPairs

fMatcherStack

protected XMLSchemaValidator.XPathMatcherStack fMatcherStack
Stack of active XPath matchers for identity constraints. All active XPath matchers are notified of startElement and endElement callbacks in order to perform their matches.

For each element with identity constraints, the selector of each identity constraint is activated. When the selector matches its XPath, then all the fields of the identity constraint are activated.

Note: Once the activation scope is left, the XPath matchers are automatically removed from the stack of active matchers and no longer receive callbacks.

fMayMatchFieldMap

protected final HashMap fMayMatchFieldMap
Map which is used to catch instance documents that try and match a field several times in the same scope.

fNormalizeData

protected boolean fNormalizeData

fSchemaDynamicValidation

protected boolean fSchemaDynamicValidation

fSchemaElementDefault

protected boolean fSchemaElementDefault

fSymbolTable

protected SymbolTable fSymbolTable
Symbol table.

fUseGrammarPoolOnly

protected boolean fUseGrammarPoolOnly

fValidationManager

protected ValidationManager fValidationManager

fValidationState

protected ValidationState fValidationState

fValueStoreCache

protected XMLSchemaValidator.ValueStoreCache fValueStoreCache
Cache of value stores for identity constraint fields.

fXSDDescription

protected final XSDDescription fXSDDescription
Schema Grammar Description passed, to give a chance to application to supply the Grammar

fXSIErrorReporter

protected final XMLSchemaValidator.XSIErrorReporter fXSIErrorReporter
Error reporter.

GENERATE_SYNTHETIC_ANNOTATIONS

protected static final String GENERATE_SYNTHETIC_ANNOTATIONS
Feature: generate synthetic annotations

HONOUR_ALL_SCHEMALOCATIONS

protected static final String HONOUR_ALL_SCHEMALOCATIONS
Feature identifier: honour all schemaLocations

ID_CONSTRAINT_NUM

protected static final int ID_CONSTRAINT_NUM

JAXP_SCHEMA_LANGUAGE

protected static final String JAXP_SCHEMA_LANGUAGE
Property identifier: JAXP schema language.

JAXP_SCHEMA_SOURCE

protected static final String JAXP_SCHEMA_SOURCE
Property identifier: JAXP schema source.

NORMALIZE_DATA

protected static final String NORMALIZE_DATA
Feature identifier: expose schema normalized value

PARSER_SETTINGS

protected static final String PARSER_SETTINGS

SCHEMA_AUGMENT_PSVI

protected static final String SCHEMA_AUGMENT_PSVI
Feature identifier: augment PSVI

SCHEMA_ELEMENT_DEFAULT

protected static final String SCHEMA_ELEMENT_DEFAULT
Feature identifier: send element default value via characters()

SCHEMA_FULL_CHECKING

protected static final String SCHEMA_FULL_CHECKING
Feature identifier: schema full checking

SCHEMA_LOCATION

protected static final String SCHEMA_LOCATION
Property identifier: schema location.

SCHEMA_NONS_LOCATION

protected static final String SCHEMA_NONS_LOCATION
Property identifier: no namespace schema location.

SCHEMA_VALIDATION

protected static final String SCHEMA_VALIDATION
Feature identifier: validation.

STANDARD_URI_CONFORMANT_FEATURE

protected static final String STANDARD_URI_CONFORMANT_FEATURE
Feature identifier: standard uri conformant feature.

SYMBOL_TABLE

public static final String SYMBOL_TABLE
Property identifier: symbol table.

USE_GRAMMAR_POOL_ONLY

protected static final String USE_GRAMMAR_POOL_ONLY
Feature identifier: use grammar pool only

VALIDATE_ANNOTATIONS

protected static final String VALIDATE_ANNOTATIONS
Feature identifier: validate annotations.

VALIDATION

protected static final String VALIDATION
Feature identifier: validation.

VALIDATION_MANAGER

protected static final String VALIDATION_MANAGER

XMLGRAMMAR_POOL

public static final String XMLGRAMMAR_POOL
Property identifier: grammar pool.

Constructor Detail

XMLSchemaValidator

public XMLSchemaValidator()
Default constructor.

Method Detail

activateField

public XPathMatcher activateField(Field field, int initialDepth)
Request to activate the specified field. This method returns the matcher for the field.

Parameters: field The field to activate.

characterData

public boolean characterData(String data, Augmentations augs)

characters

public void characters(XMLString text, Augmentations augs)
Character content.

Parameters: text The content. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

comment

public void comment(XMLString text, Augmentations augs)
A comment.

Parameters: text The text in the comment. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by application to signal an error.

doctypeDecl

public void doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs)
Notifies of the presence of the DOCTYPE line in the document.

Parameters: rootElement The name of the root element. publicId The public identifier if an external DTD or null if the external DTD is specified using SYSTEM. systemId The system identifier if an external DTD, null otherwise. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

elementDefault

public void elementDefault(String data)

emptyElement

public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs)
An empty element.

Parameters: element The name of the element. attributes The element attributes. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endCDATA

public void endCDATA(Augmentations augs)
The end of a CDATA section.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endDocument

public void endDocument(Augmentations augs)
The end of the document.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endElement

public void endElement(QName element, Augmentations augs)
The end of an element.

Parameters: element The name of the element. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endGeneralEntity

public void endGeneralEntity(String name, Augmentations augs)
This method notifies the end of a general entity.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: name The name of the entity. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

endValueScopeFor

public void endValueScopeFor(IdentityConstraint identityConstraint, int initialDepth)
Ends the value scope for the specified identity constraint.

Parameters: identityConstraint The identity constraint.

getDocumentHandler

public XMLDocumentHandler getDocumentHandler()
Returns the document handler

getDocumentSource

public XMLDocumentSource getDocumentSource()
Returns the document source

getFeatureDefault

public Boolean getFeatureDefault(String featureId)
Returns the default state for a feature, or null if this component does not want to report a default value for this feature.

Parameters: featureId The feature identifier.

Since: Xerces 2.2.0

getPropertyDefault

public Object getPropertyDefault(String propertyId)
Returns the default state for a property, or null if this component does not want to report a default value for this property.

Parameters: propertyId The property identifier.

Since: Xerces 2.2.0

getRecognizedFeatures

public String[] getRecognizedFeatures()
Returns a list of feature identifiers that are recognized by this component. This method may return null if no features are recognized by this component.

getRecognizedProperties

public String[] getRecognizedProperties()
Returns a list of property identifiers that are recognized by this component. This method may return null if no properties are recognized by this component.

ignorableWhitespace

public void ignorableWhitespace(XMLString text, Augmentations augs)
Ignorable whitespace. For this method to be called, the document source must have some way of determining that the text containing only whitespace characters should be considered ignorable. For example, the validator can determine if a length of whitespace characters in the document are ignorable based on the element content model.

Parameters: text The ignorable whitespace. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

mayMatch

public Boolean mayMatch(Field field)
Returns whether the given field is permitted to match a value.

Parameters: field The field that may be permitted to be matched.

Returns: Boolean indicating whether the field may be matched.

processingInstruction

public void processingInstruction(String target, XMLString data, Augmentations augs)
A processing instruction. Processing instructions consist of a target name and, optionally, text data. The data is only meaningful to the application.

Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.

Parameters: target The target. data The data or null if none specified. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

reset

public void reset(XMLComponentManager componentManager)

setDocumentHandler

public void setDocumentHandler(XMLDocumentHandler documentHandler)
Sets the document handler to receive information about the document.

setDocumentSource

public void setDocumentSource(XMLDocumentSource source)
Sets the document source

setFeature

public void setFeature(String featureId, boolean state)
Sets the state of a feature. This method is called by the component manager any time after reset when a feature changes state.

Note: Components should silently ignore features that do not affect the operation of the component.

Parameters: featureId The feature identifier. state The state of the feature.

Throws: SAXNotRecognizedException The component should not throw this exception. SAXNotSupportedException The component should not throw this exception.

setMayMatch

public void setMayMatch(Field field, Boolean state)
Sets whether the given field is permitted to match a value. This should be used to catch instance documents that try and match a field several times in the same scope.

Parameters: field The field that may be permitted to be matched. state Boolean indiciating whether the field may be matched.

setProperty

public void setProperty(String propertyId, Object value)
Sets the value of a property. This method is called by the component manager any time after reset when a property changes value.

Note: Components should silently ignore properties that do not affect the operation of the component.

Parameters: propertyId The property identifier. value The value of the property.

Throws: SAXNotRecognizedException The component should not throw this exception. SAXNotSupportedException The component should not throw this exception.

startCDATA

public void startCDATA(Augmentations augs)
The start of a CDATA section.

Parameters: augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startDocument

public void startDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs)
The start of the document.

Parameters: locator The system identifier of the entity if the entity is external, null otherwise. encoding The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader). namespaceContext The namespace context in effect at the start of this document. This object represents the current context. Implementors of this class are responsible for copying the namespace bindings from the the current context (and its parent contexts) if that information is important. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startElement

public void startElement(QName element, XMLAttributes attributes, Augmentations augs)
The start of an element.

Parameters: element The name of the element. attributes The element attributes. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startGeneralEntity

public void startGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs)
This method notifies the start of a general entity.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: name The name of the general entity. identifier The resource identifier. encoding The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader). augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

startValueScopeFor

public void startValueScopeFor(IdentityConstraint identityConstraint, int initialDepth)
Start the value scope for the specified identity constraint. This method is called when the selector matches in order to initialize the value store.

Parameters: identityConstraint The identity constraint.

textDecl

public void textDecl(String version, String encoding, Augmentations augs)
Notifies of the presence of a TextDecl line in an entity. If present, this method will be called immediately following the startEntity call.

Note: This method will never be called for the document entity; it is only called for external general entities referenced in document content.

Note: This method is not called for entity references appearing as part of attribute values.

Parameters: version The XML version, or null if not specified. encoding The IANA encoding name of the entity. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

xmlDecl

public void xmlDecl(String version, String encoding, String standalone, Augmentations augs)
Notifies of the presence of an XMLDecl line in the document. If present, this method will be called immediately following the startDocument call.

Parameters: version The XML version. encoding The IANA encoding name of the document, or null if not specified. standalone The standalone value, or null if not specified. augs Additional information that may include infoset augmentations

Throws: XNIException Thrown by handler to signal an error.

Copyright B) 1999-2005 Apache XML Project. All Rights Reserved.