[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • Date: Fri, 3 Nov 2017 18:40:53 +0000

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]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member