XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Vinayak SapreSubject: schema pattern to restrict words
Author: Vinayak Sapre
Date: 09 Mar 2003 01:54 AM
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

Postnext
Lee HumphriesSubject: 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.

Postnext
Ivan PedruzziSubject: RE: schema pattern to restrict words
Author: Ivan Pedruzzi
Date: 09 Mar 2003 10:59 PM
If I understood correctly you want to refuse urls with parameters.

Assuming this document is the input

{?xml version="1.0"?}
{root
xsi:noNamespaceSchemaLocation="myurl.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"}

{!--valid--}
{url}/a/test.jsp{/url}

{!--invalid--}
{url}a/test.jsp{/url}
{url}/data/subdir/test.jsp?param=10&xyz=20{/ur}

{/root}


The following schema should do it

-- myurl.xsd --

{?xml version="1.0"?}
{xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"}
{xsd:simpleType name="MyUrl"}
{xsd:restriction base="xsd:string"}
{xsd:pattern value="/[\p{N}\p{L}\./]*.jsp"/}
{/xsd:restriction}
{/xsd:simpleType}
{xsd:element name="root"}
{xsd:complexType}
{xsd:sequence maxOccurs="unbounded"}
{xsd:element name="url" type="MyUrl"/}
{/xsd:sequence}
{/xsd:complexType}
{/xsd:element}
{/xsd:schema}


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.


[1]http://www.ascc.net/xml/resource/schematron/schematron.html
[2]http://www.ascc.net/xml/schematron/1.5/conformance1-5.xsl

Ivan Pedruzzi
Progress Software
http://www.stylusstudio.com


> -----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
>

Posttop
Vinayak SapreSubject: 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.

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.