Package com.sun.msv.verifier.regexp
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,
-
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.
-
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.
-
ClassDescriptionspecial Token that matchs any element.Feeds AttributeToken to the expression and obtains the residual (content model).removes all unnecessary expressions and creates an expression that consists of required attributes and choices only.Creates an expression whose AttributeExp is completely replaced by nullSet.Creates an expression whose AttributeExp is completely replaced by epsilon.represents attribute and its value.creates "combined child content expression" and gathers "elements of concern" and its "attribute-pruned" content model.Accept that is used when more than one pattern can be applicable to the current context.base implementation of ComplexAcceptor.base implementation for SimpleAcceptor and ComplexAcceptorNon-recursive ReferenceExpRemover with a cache.Collects "elements of concern".a token that represents an XML element.
Acceptor
implementation.DocumentDeclaration
implementation Grammar object can be shared among multiple threads, but this object cannot be shared.computes regular expression derivative.Acceptor that will be used when only one ElementExp matches the start tag.calculates how character literals should be treated.chunk of string.primitive unit of XML instance.