XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] 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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS