Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

IncorrectCorrectBookstore XML extract for testing xPath Queries online


Code Block
languagexml
<categories>
	<code>01</code>
    <name>SciFi</name>
	<books>
    </books>
</categories>



Code Block
languagexml
<categories code=01 name='SciFi'>
	<books>
    </books>
</categories>



Code Block
languagexml
titleBookstore
    <bookstore name="Chapters"> 
        <bookstore-name>Chapters</bookstore-name> 
        <categories code="01" name="SciFi"> 
            <books>
                 <book name="Feersum Endjinn"/>
                 <book name="Chapters"/>
           </books>
        </categories>
        <categories code="02" name="kids" /> 
        <categories code="03" name="Chapters" /> 
    </bookstore>



Open Issues & Decision

#SloganNotes
1is there and xPath expression to 'include all descendants'Alternatively client can pass an enum option

Queries

Scope of queries

  1. The assumes scope for all below Queries is one Dataspace and oen Anchor. 
  2. It will be relatively easy to extend the scope to multiple anchors in a later user story.
  3. There is no need to extend the scope beyond one Dataspace

...


SlogancpsPathJiraNotesPriority / When do we need this? 
1get (list element) by xpath/bookstore/categories[@code='01']

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-71

This is not really a query as code is the key attributes and this xpath is stored with the target fragmentAlready implemented
2filter list element by other (then key) leaf value/bookstore/categories[@name='SciFi']

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-231

Compare to #1, notice how from a cpsPath perspective it is not clear which is a get and which is a query. The customer might not know either! See issue #1Required for E2E Slicing see CPS-200 study
3xpath ending (with possible refernce to list key)

//book
//categories[@code=01]


Client ignore/does not care/does not know the preceding xpathInvestigate if needed for E2E Slicing. 
4xpath ending combined with leafvalue filter//categories[@name='SciFi']


5filter on leaf value without any path//*[@name='Chapters']
This will return anything with that name, might be useful when working with small models
6allow any element from list ie. find something under any possible list entry/bookstore/categories/books/book[@name='Chapters']
Not obvious but since /categories is not indexed  (no key defined using [@...] notation)  it will return a book from any categories
7partial xpath, wildcard in the middle of the path . Could be seen as combination of starts-with and end-with/bookstore/categories//book[@name='Chapters']
using // in the middle of a path is like a wildcard for any containers or lists between /categories and /book
8

combining several leaf values (and, or etc.)

Can bee seen too for composite list-keys and does work in scenario #1 above (but is order dependent)

[@id1 =  x and @id2 = y]
just for illustration purposes
9(string) leave value contains something[contains()]
just for illustration purposes

...