sheesh!  turned out to be a stupid error on my part (i should've posted the
whole xml file and you probably would've found it right away).  thanks for
helping!  here's what works:

<?xml version="1.0" ?>
<schema ns="http://xml.apache.cocoon/xmlform";
        xmlns="http://www.ascc.net/xml/schematron";>
        <title>Schema for the Password Form</title>
        <phase id="passwordView">
                <p>For password information.</p>
                <active pattern="password"/>
        </phase>
        <pattern name="Password Validation Pattern" id="password">
                <rule context="/password">
                        <assert test="string-length(.) &gt; 3">Password
                                should be at least 4 characters.</assert>
                        <assert test="string-length(.) &lt; 60">Password
should be less
                                than 60 characters.</assert>
                        <assert
test="string(.)=string(../password2)">Passwords do not match!</assert>
                </rule>
                <rule context="/password2">
                        <assert test="string-length(.) &gt; 3">Password
                                should be at least 4 characters.</assert>
                </rule>
        </pattern>
</schema>


> -----Original Message-----
> From: Joerg Heinicke [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 26, 2003 10:58 AM
> To: [EMAIL PROTECTED]
> Subject: Re: XMLForm Schematron question
> 
> 
> Hi Delis,
> 
> for an XML like
> 
> <root>
>    <password>mypassword</password>
>    <password2>mypassword</password2>
> </root>
> 
> I would use the following schematron:
> 
> <rule context="/root">
>    <assert test="string-length(password) > 5">must be > 5</assert>
>    <assert test="string-length(password) &lt; 60">must be 
> &lt; 60</assert>
>    <assert test="password = password2">password != password2</assert>
> </rule>
> 
> I didn't test it, but the above looks logical to me ;-) 
> Everything is pure 
> XSLT. But what you tried (../password2), should work also (if 
> context is 
> password). I guess there must something else wrong. E.g. 
> /password AND 
> /password2? How can an XML have two root nodes?
> 
> Regards,
> 
> Joerg
> 
> 
> Delis, Christopher E. wrote:
> > on a slightly different note, how does one reference 
> another rule context.
> > i.e.:
> > 
> > let's say i have two elts, "/password" and "/password2":
> > 
> >         <pattern name="Password Validation Pattern" id="password">
> >                 <rule context="/password">
> >                         <assert test="string-length(.) &gt; 5">Name
> >                                 should be at least 6 
> characters.</assert>
> >                         <assert test="string-length(.) &lt; 
> 60">Password
> > should be less
> >                                 than 60 characters.</assert>
> >                 </rule>
> >                 <rule context="/password2">
> >                         <assert test="string-length(.) &gt; 5">Name
> >                                 should be at least 6 
> characters.</assert>
> >                 </rule>
> >         </pattern>
> > 
> > ...how can i validate that "/password" and "/password2" are 
> equal in the
> > rule for "/password"?  i could use a predicate, but that 
> won't give the user
> > an error message (from an assert test).  perhaps, this 
> solution is just as
> > simple (i hope)? =-)  [i'm pretty sure i tried referencing 
> (../password2)
> > but it didn't seem to work.]
> 
> -- 
> 
> System Development
> VIRBUS AG
> Fon  +49(0)341-979-7419
> Fax  +49(0)341-979-7409
> [EMAIL PROTECTED]
> www.virbus.de
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to