cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Turner <j...@socialchange.net.au>
Subject Re: [VOTE] Schematron validator in Anteater (and Cocoon validating Transformer)
Date Sun, 09 Jun 2002 06:09:44 GMT
Hi Ivelin,

On Fri, Jun 07, 2002 at 06:51:09PM -0500, Ivelin Ivanov wrote:
...
> The ideas is to use references to schema documents of standard XML languages
> (like Schematron, DTD, XML Schema, Relax NG) for response validation,
> instead of supporting a proprietary grammar.

Adding a Schematron validator would be great. It would be a superset of
functionality provided by our existing <xpath> validator. I'd also like
to add a Relax NG validator at some stage.

> I suggest that we use the org.apache.cocoon.components.validation package
> which is an independent component in Cocoon's main tree and is used by
> XMLForm.
>
> The Schematron implementation is already available and I think it is quite
> suitable for Anteater, because Schematron is a superset of Anteater's match
> element.
> To be precise it is a superset of the validating use, i.e the cases when
> match is used to assign value to a "result" property. Asigning values within
> <match/> to other properties which are used for subsequent requests is a
> separate concern.

So..

Latka has it's Validator interface, consisting of:

public abstract void validate(Response response) throws ValidationException;
     // throw an exception on validation failure

Anteater has a MatcherTest abstract class:

  public void setObjectModel(HashMap objectModel);
  public abstract boolean validate() throws BuildException;
  public boolean getResult();

And Cocoon has another Validator interface:

  public abstract void validate(Response response) throws ValidationException;
  public void setProperty(java.lang.String property, java.lang.Object value);
  public java.lang.Object getProperty(java.lang.String property);

Here are the validators currently available:

ByteLengthValidator (Latka)
CookieValidator (Latka, Anteater)
ContentEquals (compare contents vs. file) (Latka, Anteater)
MaxRequestTimeValidator (Latka)
RegexpValidator (Latka, Anteater, Webtest)
StatusCodeValidator (Latka, Anteater)
XPathValidator (Latka, Anteater)
SchematronValidator (Cocoon)

It would be good if we could come up with a common API that everyone
could implement. Eg, adopt Latka or Cocoon's Request/Response
abstraction, plus Anteater/Cocoon's ability to pass an 'object model'
(aka Avalon Context). Plus I'd like some way to record what's been done,
for later reporting.

But anyway, that's for down the road. There are few enough validators
currently that it's less effort just to modify the code for each testing
framework.


<snip schematron goodness/>

Schematron looks very cool. Another even easier-to-use possibility would
be Examplotron (http://examplotron.org/).

<rant>
We live in dark days where the majority of Apache is unthinkingly
adopting XML Schema, despite it's inferiority, simply because it's from
the W3C. Kimbro Staken said it best:
http://radio.weblogs.com/0100213/2002/06/06.html#a392
</rant>

> The violations can be then nicely integrated in the JUnit reporting
> package.

I have JUnit formatting integration minimally working here, will clean
up, check in and announce it tomorrow probably.

> If there are enough votes I'll contribute some of the work myself.
> Help would be certainly appreciated.

+1 :)

If any Cocoon developers are interested, and want to help or just lurk,
the relevant list to join is:

http://lists.sourceforge.net/lists/listinfo/aft-devel

And the project page is:

http://www.sourceforge.net/projects/aft/


--Jeff

> 
> -= Ivelin =-

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message