XPATH doesnt support dots in names (treats them as indices)
-----------------------------------------------------------
Key: TUSCANY-663
URL: http://issues.apache.org/jira/browse/TUSCANY-663
Project: Tuscany
Issue Type: Bug
Components: C++ SDO
Affects Versions: Cpp-current
Reporter: Ed Slattery
The XPATH subset from the specification uses NCname for names, so in theory
"www.xxx.yyy.zzz is a vaild name, which may either be a field called
"www.xxx.yyy.zzz" or a many valued
field called "www.xxx.yyy" at offset "zzz"
The C++ implementation restricts this and assumes all [] or "." are indices.
Fix this by parsing the XPATH token, then checking if the token is a valid
property name for the object, then
if not, looking for the last "." or "[" to see if theres an index.
Heres the details of the grammar...
path ::= (scheme ':')? '/'? (step '/')* step
scheme ::= [^:]
step ::= '@'? property
| property '[' index_from_1 ']'
| property '.' index_from_0
| reference '[' attribute '=' value ']'
| ".."
property ::= NCName ;; may be simple or complex type
attribute ::= NCName ;; must be simple type
reference :: NCName ;; must be DataObject type
index_from_0 ::= Digits
index_from_1 ::= NotZero (Digits)?
value ::= Literal
| Number
| Boolean
Literal ::= '"' [^"]* '"'
| "'" [^']* "'"
Number ::= Digits ('.' Digits?)?
| '.' Digits
Boolean ::= true
| false
NotZero ::= [1-9]
Digits ::= [0-9]+
;; leading '/' begins at the root
;; ".." is the containing DataObject, using containment properties
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]