com.sun.msv.grammar.xmlschema

Class LaxDefaultNameClass

public class LaxDefaultNameClass extends NameClass

Special name class implementation used for the wild card of the "lax" mode.

In "lax" mode, we need a name class that matches all undefined names. Although it is possible to use DifferenceNameClass for this purpose, it is not a cost-efficient way because typically it becomes very large. (If there are twenty element declarations, we'll need twenty DifferenceNameClass to exclude all defined names).

This name class uses a {@link Set} to hold multiple names. If a name is contained in that set, it'll be rejected. If a name is not contained, it'll be accepted.

Special care is taken to make this NC as seamless as possible. When the visit method is called, the equivalent name class is constructed internally and the visitor will visit that name class. In this way, the visitors won't notice the existance of this "special" name class.

Author: Kohsuke KAWAGUCHI

Constructor Summary
LaxDefaultNameClass(NameClass _base)
Method Summary
booleanaccepts(String namespaceURI, String localName)
voidaddName(String namespaceURI, String localName)
add a name so that this name will be rejected by the accepts method.
Objectvisit(NameClassVisitor visitor)

Constructor Detail

LaxDefaultNameClass

public LaxDefaultNameClass(NameClass _base)

Parameters: _base this name class accepts a name if

  1. it's in the 'base" name class and
  2. it's not one of those excluded names

Method Detail

accepts

public boolean accepts(String namespaceURI, String localName)

addName

public void addName(String namespaceURI, String localName)
add a name so that this name will be rejected by the accepts method.

visit

public Object visit(NameClassVisitor visitor)