[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XPath expression which checks that all commas are escaped
not(contains(replace(., '\\,', ''), ',')) On Fri, Nov 3, 2017 at 11:40 AM, Costello, Roger L. <costello@mitre.org> wrote: > Hi Folks, > > Do you deal with Request for Comments (RFCs)? Then the following might come > in handy someday. > > Note: Thanks to Martin Honnen for helping me with the XPath expression > (below). > > Some RFCs (e.g., vCard) have this rule: > > > > Each comma in a value must be escaped with a backslash. > > > > Examples: > > > > This value is good: > > > > A\, B > > > > This value is bad: > > > > A, B > > > > This value is also bad, because one comma is escaped but the other is not: > > > > A\, B, C > > > > Suppose the RFC has an XML representation. Or, you have used something like > DFDL to convert the data to XML. > > Then, this XPath expression checks to see that each comma is properly > escaped: > > every $token in tokenize(., ',')[position() lt last()] satisfies > ends-with($token, '\') > > > > That XPath expression can be used in Schematron like this: > > <sch:pattern id="Escaping-Rules"> > > <sch:rule context="value"> > > <sch:assert test="every $token in tokenize(., ',')[position() lt > last()] satisfies ends-with($token, '\')"> > A COMMA character in a value MUST be escaped with > a BACKSLASH character (U+005C). > </sch:assert> > > </sch:rule> > > </sch:pattern> -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- Sanity is madness put to good use. ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|