- From: Steve Condas <scondas@yahoo.com>
- Date: Tue, 5 Oct 2004 12:02:32 -0700 (PDT)
- To: www-ql@w3.org
- Message-ID: <20041005190232.31332.qmail@web52601.mail.yahoo.com>
I am new to XPath/XQuery, so please forgive my ignorance. I am caught between multiple interpretations of XPath/XQuery StringLiteral that are causing be development difficulties. I have an XML element that contains an entity (e.g. <Railroad>B&O</Railroad>), and I am trying to find that element using two different tools. In one tool, Java/Jaxen, I must use a predicate of the form [. = 'B&O'] to select the node. In another tool, NeoCore XMS I must use a predicate of the form [. = 'B&O'] to select the node. Finally, I have found that the Mark Logic XQuery engine will accept either predicate phrasing and return the desired node. I have examined the EBNF for XPath 1.0, XPath 2.0 (Draft), and XQuery 1.0 (Draft). For the two XPath specs, the EBNF for StringLiteral is: ('"' (('"' '"') | [^"])* '"') | ("'" (("'" "'") | [^'])* "'") The XQuery EBNF is: ('"' (PredefinedEntityRef | CharRef | ('"' '"') | [^"&])* '"') | ("'" (PredefinedEntityRef | CharRef | ("'" "'") | [^'&])* "'") Should the XPath 2.0 and XQuery 1.0 EBNF for StringLiteral be identical? Which of my three tools (Jaxen, NeoCore, MarkLogic) is implementing the target spec correctly? From a developers perspective, it seems as though the Mark Logic implmentation is the ideal behavior since I don't have to expand entities to entity references before submitting my query. Thanks in advance, Steve Condas
Received on Tuesday, 5 October 2004 19:03:02 UTC