Subject:schema pattern to restrict words Author:Lee Humphries Date:09 Mar 2003 06:25 PM
It sounds like you need to set up a Regex pattern restriction (i.e. use xsd:pattern).
A regex of "/.*" will only accept strings that start with a "/".
If you extend that to "/.*(param|xyz).*" that will require a string that starts with a "/" and must contain either "param" or "xyz" within it. The "^" metacharacter should be able to negate that for you, but unfortunately I can't remember how to get it just right.
You may interested in this alternative solution using Schematron[1]
{?xml version="1.0"?}
{schema xmlns="http://www.ascc.net/xml/schematron"}
{pattern name="param is forbidden"}
{rule context="/root/url"}
{assert test="starts-with(., '/')"}
Text in element "" must start with /
{/assert}
{assert test="not(contains(.,'param'))"}
Text in element "" must not contain param
{/assert}
{/rule}
{/pattern}
{/schema}
Schematron works asserting Xpath expressions.
It is implemented as a stylesheet[2]that takes in input a schematron
schema and generates a stylesheet as ouput.
The generated stylesheet is used to validate your documents.
> -----Original Message-----
> From: stylus-studio-tech Listmanager
> [mailto:listmanager@edn.exln.com]
> Sent: Sunday, March 09, 2003 2:13 AM
> To: Recipients of 'stylus-studio-tech' suppressed
> Subject: schema pattern to restrict words
>
>
> From: "Vinayak Sapre"
>
> This is not really question about Stylus Studio. Apologies in
> advance if it is inappropriate.
>
> I want to define a Simple Type based on xsd:string so that
> the valid value MUST start with / (easy part) and DOES NOT
> contain word param and xyz.
>
> So /data/subdir/test.jsp is valid.
>
> And
> /data/subdir/test.jsp?param=10&xyz=20
> /data/subdir/test.jsp?param=10
> /data/subdir/test.jsp?xyz=20
>
> are all invalid.
>
>
> Thanks
>
>
>
> To reply: mailto:stylus-studio-tech.6427@edn.exln.com
> To start a new topic: mailto:stylus-studio-tech@edn.exln.com
> To login: http://edn.exln.com/~SSDN
>
Subject:RE: schema pattern to restrict words Author:Vinayak Sapre Date:10 Mar 2003 04:56 PM
Thanks to both of you for the reply.
Lee, I ran into same problem. I don't know how to negate.
Ivan, the schematron version looks more accurate to what I need. But I cannot use that unless every validator supports that. Our system uses different validators at different stages. So I would prefer to stick to just schema syntax.
The first version relies on the fact that url ends with jsp extension. Actually I want to ensure certain parameters are not authored in a url. But there could be some others that are allowed. Sorry for not stating my problem correctly.