[
https://issues.apache.org/jira/browse/DAFFODIL-3013?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Lawrence resolved DAFFODIL-3013.
--------------------------------------
Resolution: Fixed
Fixed in commit 0811512580493aceca4b7b536790d792178f9b90
> Consider simplified Validator API
> ---------------------------------
>
> Key: DAFFODIL-3013
> URL: https://issues.apache.org/jira/browse/DAFFODIL-3013
> Project: Daffodil
> Issue Type: Bug
> Components: API
> Affects Versions: 4.0.0
> Reporter: Steve Lawrence
> Priority: Major
> Fix For: 4.0.0
>
>
> The new Validator API provides all the necessary functionality to create and
> configure custom validators in a consistent way. But with it comes extra
> complexity for API users--they must create a validator factory, create a
> Properties instance with the correct values, and make the validator. While
> this design is probably the right approach to support custom/pluggable
> validators, much of this complexity can probably be hidden behind the scenes
> for API users.
> For example, ideal examples of ways to set a validator could look like this:
> DataProcessor.withValidator("limited")
> DataProcessor.withValidator("xerces", new URI(".../path/to/schema.dfdl.xsd")))
> DataProcessor.withValidator("schematron", new
> URI(".../path/to/schematron.sch")
> DataProcessor.withValidator("customValidator", new
> URI(".../path/to/file.properties")
> If the uri parameter ends in .properties or .config, we use Properties.load()
> to create a Properties instance. Otherwise we create a new Properties
> instance and call setProperty(name, uri.toString).
> Then we call Validator.get(name).make(properties) to create the validator,
> and finally call DataProcessor.withValidator(validator) to actually set the
> validator.
> If we want we can still have the DataProcessor.withValidator(Validator) API
> variant be public for those that really want to do it all manually, but it
> probably wouldn't be the usual way for most API users, since the other
> functions are simpler and provide basically the same functionality.
> This is also nice since it should move some of the logic to create Validators
> out of the CLI and into the API, simplifying the CLI a bit. This also could
> simplify the TDMLRunner, which also has similar logic for creating Validators.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)