abstract grammar model(AGM): common part.
See: Description
Interface Summary | |
---|---|
DataOrValueExp | The common interface for DataExp and ValueExp |
ExpressionVisitor | Visitor interface for Expression and its derived types. |
ExpressionVisitorBoolean | ExpressionVisitor that returns boolean. |
ExpressionVisitorExpression | ExpressionVisitor that returns Expression object. |
ExpressionVisitorVoid | ExpressionVisitor that returns void. |
Grammar | base interface of the "grammar". |
IDContextProvider | ValidationContextProvider that supports limited ID/IDREF implementation. |
IDContextProvider2 | ValidationContextProvider that supports limited ID/IDREF implementation. |
NameClassAndExpression | common interface of AttributeExp and ElementExp. |
NameClassVisitor | Visitor interface for NameClass. |
Class Summary | |
---|---|
AnyNameClass | a NameClass that matches any name. |
AttributeExp | Attribute declaration. |
BinaryExp | Base implementation for those expression which has two child expressions. |
ChoiceExp | A|B. |
ChoiceNameClass | Union of two NameClasses. |
ConcurExp | <concur> pattern of TREX. |
DataExp | Expression that matchs characters of the particular Datatype. |
DifferenceNameClass | <difference> name class. |
ElementExp | Element declaration. |
Expression | Primitive of the tree regular expression. most of the derived class is immutable (except ReferenceExp, ElementExp and OtherExp). |
ExpressionCloner | clones an expression. |
ExpressionPool | Creates a new Expression by combining existing expressions. all expressions are memorized and unified so that every subexpression will be shared and reused. |
ExpressionPool.ClosedHash | expression cache by closed hash. |
InterleaveExp | <interleave> pattern of TREX, or <all> particle of XML Schema. |
ListExp | <list> of RELAX NG. |
MixedExp | <mixed> of RELAX. |
NameClass | validator of (namespaceURI,localPart) pair. |
NamespaceNameClass | NameClass that matchs any names in a particular namespace. |
NotNameClass | NameClass that acts a not operator. |
OneOrMoreExp | A+. |
OtherExp | Base class for application-specific AGM annotation. |
ReferenceContainer | Container of ReferenceExp. a map from name to ReferenceExp. |
ReferenceExp | Reference to the other expression. |
SequenceExp | A,B. concatenation operator of the regular expression. |
SimpleNameClass | a NameClass that accepts only one fixed name. |
UnaryExp | Base implementation for those expression who has one child expresison. |
ValueExp | Expression that matchs a particular value of a Datatype. |
abstract grammar model(AGM): common part.
Support for 'ID' and 'IDREF' types are implemented in this package, due to the restriction of the implementation.
The implementation in this package works as follows:
This implementation implies very severe limitations. For example, consider the following TREX pattern.
<element name="foo">
<choice>
<attribute name="bar" type="ID" />
<attribute name="bar" type="string" />
</choice>
<element name="child">
<attribute name="id" type="ID" />
</element>
</element>
And the following XML fragment.
<foo bar="xyz"> <child id="xyz" /> </foo>
This implementation cannot validate the above fragment, because "xyz" is registered as an ID when "bar" attribute is tested against "ID" type. IDREF type also has similar problems.
Note that RELAX prohibits these "abuse" of ID/IDREF in the way that this implementation works.