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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + DBF converter with the Cyrilli... (3)
-> + Stylus Studio caching document... (3)
-> + Stylus Studio Online help inst... (9)
-> + specific colors (2)
-> + Formatting problems when creat... (2)
-> - Headers and Footers (1)
-> + XML output's a URL in Browser ... (2)
-> + Generating Java Code for XML (3)
-> + format dates in publisher (2)
-> + grouping in Stylus Studio Publ... (5)
-> + Can schema documentation title... (3)
-> + Stylus can not find the right ... (2)
-> + Problem to create Schema from ... (5)
-> - Design a DTD to represent the ... (1)
-> + Surround SCM integration (3)
-> + Converting a csv file to xml u... (5)
-> + Legacy Format Handling (3)
-> + Size limit for XML documents (2)
-> + Can Stylus Studio easily expor... (3)
-> + Problem convert excel to xml (5)
-> + convert X12 EDI into XML in a... (2)
-> + Capturing the return data for ... (3)
-> + stamps.com wsdl issues (3)
-> + Preview issues (2)
-> + Stylus Studio X14 - XML to EDI... (3)
-> + Stylus Studio X14 - Overrides ... (4)
-> + Anyway to specify namespace pr... (6)
-> + StylusStudio 2010 crashes when... (6)
-> + Version Upgrade (2)
-> + How to write a if -else statem... (4)
-> + URGENT URGENT URGENT ! (EDIF... (3)
-> + X14 Saxon document uri problem (5)
-> + namespace problem on XML gener... (7)
-> + Stylus Studio Tool Bars (2)
-> + X14 Enterprise - Web Services ... (3)
-> + Saxon edition in X14 Enterpris... (2)
-> + How to create PDF documents wi... (2)
-> + WSCall doesn't work from xquer... (4)
-> + Issues with converter (8)
-> + xsd null strings - option to i... (2)
-> + wrapping table rows and mismat... (3)
-> + Report Designer: Is it possibl... (4)
-> + Message Baplie 1.5 with 1.911 ... (2)
-> + saved merged view in diff engi... (2)
-> + Cannot see needed element to m... (2)
-> - Matching problem in function (3)
-> ->Matching problem in funct...
-> ->Matching problem in funct...
-> - Funny warning message (1)
-> - Missing rows and text when con... (1)
-> + Another JSON problem (2)
-> + JSON problem (8)
-> + WebDav Custom properties (2)
-> + jvm not registering in the too... (2)
-> + How to turn off error about mi... (6)
-> + XML Attribute Element output f... (2)
-> + ddtek:wscall not returning all... (7)
-> - Trial Only Lasted 7 of the 14 ... (1)
-> + tree view without leaves (fiel... (3)
-> + XML to Text File (2)
-> + Stylus Studio Processor Debugg... (3)
-> + Java XMLPipeline result to str... (6)
-> + Attribute - XSD, DataDirect, X... (7)
-> + .NET XslCompliedTransform pro... (3)
-> + How to increase JVM Heap Size? (10)
-> + How in XSD do I reference the ... (2)
-> + Conversion of negative numbers (2)
-> + XSLT mapper (2)
-> - Converting csv file with embed... (1)
-> + WSDL completion inquiry (2)
-> - Move License (1)
-> + XML to Excel conversion and vi... (8)
-> + “spell checker” and “well-form... (2)
-> + Relational DB Icon Not appeari... (2)
-> + How come AUP doesn't respond (4)
-> - Software activation does not w... (1)
-> + Stylus studio continually cras... (2)
-> + Error running on Windows 7 (3)
-> + Creating xml start and end tag... (4)
-> + Keeping track of position afte... (3)
-> + splitting a row into multiple ... (3)
-> + Where is Convert to XML? (2)
-> + Built-In XSLT Processor Missin... (4)
-> - Converting XSL to XSL-FO (1)
-> - Can we compare two XML Schema ... (1)
-> - Stylus Studio EDI Conversion /... (1)
-> + Installation Issue Windows XP ... (2)
-> + Converting CSV with component ... (2)
-> - how to edit a xsl file, so tha... (1)
-> - Cannot save file to Webdav (1)
-> + How to copy Column Names on Gr... (3)
-> - XML when to use (1)
-> - Attribute vs data elements (1)
-> - Attribute Group (1)
-> - EDI conversion from command li... (1)
-> - WSDL schema - import of xsd (1)
-> + Get Date (2)
-> + help calling https web service (5)
-> - Newbie looking out for BizTalk... (1)
-> + Publishing XML pipeline as Web... (2)
-> - annotation within sequence ele... (1)
-> - backmapping using Saxonica 9.1... (1)
-- Previous [301-320] [321-340] [341-360] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Roel van der HoevenSubject: Matching problem in function
Author: Roel van der Hoeven
Date: 19 Oct 2011 05:31 AM
Hi,

I'm trying to write a simple function which strips a string from certain characters and then check if it has the correct format.
Code:

declare function local:checkContainerNumber($containerNumber as xs:string)
{
let $cleanContainerNumber := replace(replace(replace(replace(replace(replace(replace($containerNumber," ",""),"-",""),"/",""),"_",""),"\\",""),"\.",""),"\|","")
return
if(matches($cleanContainerNumber, "[A-Z]{4}[0-9]{7}"))
then
$cleanContainerNumber
else
error(xs:QName("Error"),concat(" Container number has wrong format, allowed format is 4 letters followed by 7 digits, IE: ABCD1234567, current: ",$containerNumber))
}
;

When I pass the string ABCD123456-7 to the function it strips the dash (-) and then returns the clean containernumber ABCD1234567. But whenever I feed an incorrect string (like ABCDE1234567777777) it returns that value in stead of throwing the error I defined.

Am I missing something here?

Postnext
Ivan PedruzziSubject: Matching problem in function
Author: Ivan Pedruzzi
Date: 19 Oct 2011 09:33 AM
Hi Roel,

The regular expression in XPath 2.0 requires the meta character ^ to indicate that you want to match the start of the string and $ to match the end of the string.
http://www.w3.org/TR/xpath-functions/#regex-syntax

If you need to replace a set of characters you could use translate
, it may be easier to read.

Hope this helps
Ivan Pedruzzi
Stylus Studio Team



declare function local:checkContainerNumber($containerNumber as xs:string)
{
let $cleanContainerNumber := translate($containerNumber, " -/_\.|", "")
return
if(matches($cleanContainerNumber, "^[A-Z]{4}[0-9]{7}$")) then
$cleanContainerNumber
else
error(xs:QName("Error"),concat(" Container number has wrong format, allowed format is 4 letters followed by 7 digits, IE: ABCD1234567, current: ",$containerNumber))
};

Posttop
Roel van der HoevenSubject: Matching problem in function
Author: Roel van der Hoeven
Date: 19 Oct 2011 09:36 AM
As always you've answered quickly and helped me alot ^^

As for the translate, I was just looking into an easier way to do multiple replaces, thx :)

   
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.