Top Description Classes
[default module]

Package com.sun.msv.verifier.regexp


VGM implementation by using regular expression derivation algorithm.

This implementation bridges a gap between neutral grammar model (com.sun.msv.grammar) and Verifier grammar model (com.sun.msv.verifier).

Performance Analysis

This bridge is tuned for client-side use, where MSV is repeatedly invoked from command line. Particularly,

  1. No preprocessing of grammar is necessary. Abstract grammar model can be directly used. This results in faster schema loading, at the expense of slower validation.
  2. Extensive error recovery and detailed error diagnosis is provided.

Also, this bridge covers full expressiveness of RELAX and TREX.

Algorithm

Those who are interested in the algorithm of this package may want to see the following resources.

regexp.tar.gz
regular expression matching algorithm by Mark Hopkins.
How to validate XML
A brief introduction of the above algorithm by Joe English
TREX implementation
This implementation by James Clark employs the algorithm of Mark Hopkins.

Class Summary

Modifier and TypeClass and Description
public class
AnyElementToken

special Token that matchs any element.

public class
AttributeFeeder

Feeds AttributeToken to the expression and obtains the residual (content model).

public class
AttributePicker

removes all unnecessary expressions and creates an expression that consists of required attributes and choices only.

public class
AttributePruner

Creates an expression whose AttributeExp is completely replaced by nullSet.

pack-priv class
AttributeRecoveryToken

special AttributeToken that memorizes AttributeExp that fails to validate itself.

public class
AttributeRemover

Creates an expression whose AttributeExp is completely replaced by epsilon.

public class
AttributeToken

represents attribute and its value.

public class
CombinedChildContentExpCreator

creates "combined child content expression" and gathers "elements of concern" and its "attribute-pruned" content model.

public class
ComplexAcceptor

Accept that is used when more than one pattern can be applicable to the current context.

public abstract class
ComplexAcceptorBaseImpl

base implementation of ComplexAcceptor.

public abstract class
ContentModelAcceptor

base implementation for SimpleAcceptor and ComplexAcceptor

public class
ContentModelRefExpRemover

Non-recursive ReferenceExpRemover with a cache.

public class
ElementsOfConcernCollector

Collects "elements of concern".

public class
ElementToken

a token that represents an XML element.

public abstract class
pack-priv class
OptimizationTag

this object will be added to Expression.verifierTag to speed up typical validation.

public class
REDocumentDeclaration

DocumentDeclaration implementation Grammar object can be shared among multiple threads, but this object cannot be shared.

public class
ResidualCalculator

computes regular expression derivative.

public class
SimpleAcceptor

Acceptor that will be used when only one ElementExp matches the start tag.

public class
StringCareLevelCalculator

calculates how character literals should be treated.

pack-priv class
StringRecoveryToken

special StringToken that acts as a wild card.

public class
StringToken

chunk of string.

public abstract class
Token

primitive unit of XML instance.