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]
XPath expression which checks that all commas are escaped

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>



[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