[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] Schematron and apostrophes
- From: "Paul Spencer" <xml-dev-list@boynings.co.uk>
- To: "Michael Kay" <mike@saxonica.com>,"Xml-Dev" <xml-dev@lists.xml.org>
- Date: Thu, 18 Jan 2007 19:31:43 -0000
Thanks Michael. That is what I thought, and therefore the first thing I
tried, but it didn't work. This leaves two possibilities (a) finger trouble
(such as not saving the file before testing) and (b) parser error.
I will try again tomorrow. If this works, the problem will be that the many
Schematron files are generated directly from a spreadsheet, and there is
somewhere else that I cannot use apostrophe as the delimiter. I feel some
text processing coming on ...
Paul
> -----Original Message-----
> From: Michael Kay [mailto:mike@saxonica.com]
> Sent: 18 January 2007 18:00
> To: 'Paul Spencer'; 'Xml-Dev'
> Subject: RE: [xml-dev] Schematron and apostrophes
>
>
> For an XPath 1.0 string literal embedded in an XML attribute, the rule is:
>
> * you can include the attribute delimiter within the string
> literal by using
> an XML character reference
>
> * you can't include the string literal delimiter within the
> string literal,
> however hard you try
>
> So the simplest approach if you want to use apos within a string
> literal is
> to use apos as the attribute delimiter, quot as the string delimiter, and
> ' for the character itself.
>
> It's also possible to use the same delimiter for the attribute and for the
> string literal provided that the latter is ampersand-escaped; in this case
> you can use the other delimiter unescaped within the string to represent
> itself.
>
> In an XSLT context, you can get around this using variables, but I don't
> know if that's an option in Schematron.
>
> It becomes easier with XPath 2.0, which allows the string delimiter to be
> escaped within the string by doubling it.
>
> Michael Kay
> http://www.saxonica.com/
>
>
> > -----Original Message-----
> > From: Paul Spencer [mailto:xml-dev-list@boynings.co.uk]
> > Sent: 18 January 2007 17:47
> > To: Xml-Dev
> > Subject: [xml-dev] Schematron and apostrophes
> >
> > I have a rule in Schematron 1.5 to test for characters
> > outside those allowed in a text string (I have shortened the
> > list of characters here):
> >
> > <report test="@AddressFormat='BS7666' and
> > string-length(translate(add:*/add:Description,'?@%'&(
> > )*+,-. ','')) > 0">A BS7666 AON description must only
> > contain the specified characters</report>
> >
> > The problem I have is with the '. This is the result of
> > the transformation using skeleton1-5.xslt:
> >
> > <xsl:if test="@AddressFormat='BS7666' and
> > string-length(translate(add:*/add:Description,'?@%'&()*+,-
> > . ','')) > 0">
> >
> > The problem is that the apostrophe entity has been resolved.
> > I had wondered whether I need to escape it again
> > (&apos;), but the ampersand entity is not resolved, so
> > this does not work either. Swapping the apostrophe and quote
> > delimiters does not help.
> >
> > Any ideas to either fix the way I am doing this or for a
> > different way to achieve the same in Schematron? This rule
> > will be used in several systems, and I cannot control the
> > application environment. As far as I know, everyone is using
> > MSXML, but whatever I end up with should not be
> > XSLT-processor dependent.
> >
> > Regards
> >
> > Paul Spencer
> >
> >
> > ______________________________________________________________
> > _________
> >
> > XML-DEV is a publicly archived, unmoderated list hosted by
> > OASIS to support XML implementation and development. To
> > minimize spam in the archives, you must subscribe before posting.
> >
> > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> > Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> > subscribe: xml-dev-subscribe@lists.xml.org List archive:
> > http://lists.xml.org/archives/xml-dev/
> > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> >
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]