[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Is an XPath processor responsible for catching misspel

Subject: Is an XPath processor responsible for catching misspelled tag names when there is an associated Schema?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Thu, 21 Feb 2008 08:14:25 -0500
 Is an XPath processor responsible for catching misspel
Hi Folks,

Consider this XML document:

<?xml version="1.0"?>
<Book>
    <Title>My Life and Times</Title>
    <Author>Paul McCartney</Author>
    <Date>1998</Date>
    <ISBN>1-56592-235-2</ISBN>
    <Publisher>McMillan Publishing</Publisher>
</Book>

Here is an XPath expression to count the number of <Author> elements:

    count(/Book/Authr)

Notice that Author has been accidentally misspelled in the XPath
expression.

The XML document conforms to this XML Schema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">
    <xs:element name="Book">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Title" />
                <xs:element ref="Author"  minOccurs="0"
maxOccurs="unbounded" />
                <xs:element ref="Date" />
                <xs:element ref="ISBN" />
                <xs:element ref="Publisher" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Title" type="xs:string"/>
    <xs:element name="Author" type="xs:string"/>
    <xs:element name="Date" type="xs:string"/>
    <xs:element name="ISBN" type="xs:string"/>
    <xs:element name="Publisher" type="xs:string"/>
</xs:schema>

I executed the XPath using the non-schema-aware version of SAXON and
got the result: 0

   That is what I expected.

Then I executed the XPath using the schema-aware version of SAXON and
got the same result.

   That is NOT what I expected.

I expected SAXON to detect, by consulting the XML Schema, that Authr is
not a legal child of Book and generate an error at compile-time.

Note that this is a particularly troubling problem, since the XML
Schema declares the number of occurrences of the <Author> element to be
0-to-unbounded; thus, a result of 0 is a legitimate value and the
misspelling error may go undetected for a long time.

QUESTIONS

1. Is it the responsibility of a schema-aware processor to catch
misspelled tag names in XPath expressions?

2. Is there a flag that I can set in SAXON to tell it to catch such
misspelling errors?

3. Are there any XSLT/XPath 2.0 processors that will match such
misspelling errors?

4. Let me assume the answers to the three questions are No.  Then ...

4.1 Is there a way to redesign the XPath such that the misspelling
error would be caught?

4.2 Is there a way to redesign the XPath such that the misspelling
error would be caught, regardless of whether a schema-aware or
non-schema-aware processor is being used?

Thanks!

/Roger

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.