Skip to content

SchemaWalker for 1.0.2 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
fge opened this issue Mar 2, 2013 · 1 comment
Closed

SchemaWalker for 1.0.2 #3

fge opened this issue Mar 2, 2013 · 1 comment

Comments

@fge
Copy link
Collaborator

fge commented Mar 2, 2013

Enhancement to the core library, primarily motivated by two things:

The proposed code is build around three classes:

  • PointerCollector: its implementations are dependent upon the schema version being used; an implementation collects relative pointers to be used by a
  • SchemaWalker: dispatches subschema collections to PointerCollector instances, and when appropriate, calls upon a
  • SchemaListener: hooks into a SchemaWalker at several points; these points are: walker initialization and exit, pushd/popd, walk of current node, schema tree substitution.

Integrating this into the core has required that ALL of syntax validation be moved in there as well -- but then I wanted to do this as well --, but also all the loading mechanism -- which I wanted to do as well.

Right now:

  • the SimpleSchemaWalker, which does not resolve references, works OK;
  • the RecursiveSchemaWalker works only in a limited subset of cases.

Immediate goal: make RecursiveSchemaWalker handle loops. RefResolver already does, but here it is more complicated than that: the latter doesn't need to be stateful, the former needs to be.

@fge
Copy link
Collaborator Author

fge commented Mar 4, 2013

Done, released.

@fge fge closed this as completed Mar 4, 2013
huggsboson added a commit that referenced this issue Jun 2, 2017
Removing configurable cache size by env variable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant