[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] XPath expression which checks that all commas are escaped
- From: Dimitre Novatchev <dnovatchev@gmail.com>
- To: "Costello, Roger L." <costello@mitre.org>
- Date: Fri, 3 Nov 2017 12:14:51 -0700
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]