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] Using Saxon 9 as a Schematron 1.5 back end

Dave Pawson a écrit :
> Michael Kay wrote:
> 
>> Having said that, there's a reason Saxon doesn't give you column numbers,
>> which is that the column number reported by the SAX parser is usually not
>> very meaningful. 
> 
> This problem is repeated sufficiently often I'm surprised other 
> alternatives aren't available.
> 
> The best offering I've seen was from a Schematron process that generated
> an html version of the source 'highlighting' (as appropriate) the source
> of the problem, given an xpath location. I think it was from David 
> Carlisle on the html accessibility guidelines. Rick? Anyone?
> 
> Agreed it's likely that the eventual target is likely to be an editor
> on the source file, but a better way of finding it is surely more
> effective than a misleading column number (even worse for non 
> pretty-printed XML all on one line).

A useful output is what I called a canonical path, a structure composed 
of 2 parts :
-an XPath expression that starts from the root and descend from node to 
node by naming them and index them
-a mapping of the prefixes involved in the XPath expressions

example :
/foo:bar/FOO:BAR[3]/@foobar
foo -> http://foo.com
FOO -> urn:FOO:FOO

Other people already suggest to express the same things with another 
notation :
/{http://foo.com}:bar/{urn:FOO:FOO}:BAR[3]/@foobar
unfortunately it isn't a correct XPath expression although it is 
certainly not so hard to make a specific parser

You can use this canonical path for highlighting the pointed node in the 
source document ; just use your favorite XPath parser (most of them can 
compile an XPath expression from a string representation and a mapping 
of the prefixes)

I've got a class that does the job in RefleX :
http://reflex.gforge.inria.fr/javadoc/org/inria/ns/reflex/xml/CanonicalPath.html
it takes care of the prefixes used if some are remapped in the tree, and 
have convenience methods for displaying it or for adding it for example 
as an attribute hosted in an element (in this case it will use the ns 
URI declared in the element or its ancestor if any)

I use this class for example in XUnit test suites when I have to build 
an XML report that localize errors in source files ; I don't use it yet 
for highlighting the node in fault, but just for displaying it, as shown 
in this example :
http://reflex.gforge.inria.fr/xunit.html#checkingTheErrorReport
(scroll down until the table an click on [Display errors])

-- 
Cordialement,

               ///
              (. .)
  --------ooO--(_)--Ooo--------
|      Philippe Poulard       |
  -----------------------------
  http://reflex.gforge.inria.fr/
        Have the RefleX !


[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