Hi,

The idea below was by Leo Simons in a private discussion, I mention also 
my remarks on it, to ask your opinions on this

If we would have produced this XML from a dataset:
<?xml version="1.0" encoding="UTF-8"?>
<cluster xmlns="http://schemas.openehr.org/v1";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="http://schemas.openehr.org/v1 file:Structure.xsd" 
archetype_node_id="openEHR-EHR-CLUSTER.bert.v1">
         <items archetype_node_id="at0008">
             <value>
                 <value xsi:type="DV_TEXT">Jan</value>
             </value>
         </items>
         <items xsi:type="ELEMENT" archetype_node_id="at0008">
             <value xsi:type="DV_TEXT">
                 <value>Peter</value>
             </value>
         </items>
         <items xsi:type="ELEMENT" archetype_node_id="at0009">
             <value xsi:type="DV_TEXT">
                 <value>Balkenende</value>
             </value>
         </items>
</cluster>

The XPaths would look like:

/cluster[@archetype_id='openEHR-EHR-CLUSTER.bert.v1' and 
@archetype_node_id='at0007']/items[position()=1 and 
@archetype_node_id='at0008']/value/value=Jan
/cluster[@archetype_id='openEHR-EHR-CLUSTER.bert.v1' and 
@archetype_node_id='at0007']/items[position()=2 and 
@archetype_node_id='at0008']/value/value=Peter
/cluster[@archetype_id='openEHR-EHR-CLUSTER.bert.v1' and 
@archetype_node_id='at0007']/items[position()=3 and 
@archetype_node_id='at0009']/value/value=Balkenende

As you can see, I use the attribute archetype_id, which is not in the 
specifications, but also I filed an JIRA for that
http://www.openehr.org/issues/browse/SPECPR-92

But apart from that
There are a few things that I don't like about this XPath notation for 
non-query-purpose.

First is the connecting operator "and" (in position()=1 and 
@archetype_node_id='at0008'), it is meaningless, because I am not 
defining a logical condition.
The second thing is that items which are different (in 
archetype_node_id) also gets an index-notation, following on the 
previous. (3 in this case)

The problem is that the feel-weight (like we build up over the years) of 
elements with a different archetype_node_id is that it is a completely 
different element, although belonging to the same items-list in code.
In the OpenEHR culture, we tend to omit an index-notation, when the 
element is unique because of its archetype_node_id, but I wonder, is 
that the right thing to do?

So I wonder, is X Path-compatibility the right answer to this?

So, summarizing
three problems with xPath:
- the logical operator "and" while it is not a query
- the index still counting while different archetype_node_id
- there was one more, but it slipped from my mind, and I have to leave 
right now in a hurry.

Maybe not following xPath-like path-notation is a better idea?

I will reply later to the other mails regarding this

Thank you all very much
Bert





On 11/19/2013 10:23 PM, Thomas Beale wrote:
> On 19/11/2013 20:08, Bert Verhees wrote:
>> Hi Alessandro,
>>
>> I think you propose this?
>>
>>  /items[at0008,1]/value/value = Mark
>>  /items[at0009,2]/value/value = Rutte
>
> Either this or Bert's original (if it's legal Xpath) is correct, 
> assuming the data look something like (I just added the outer 
> <cluster> bit and header to make it work in a tool):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     archetype_node_id="openEHR-EHR-CLUSTER.bert.v1"
>     xmlns="http://schemas.openehr.org/v1";>
>     <items xsi:type="CLUSTER" archetype_node_id="at0007">
>         <items xsi:type="ELEMENT" archetype_node_id="at0008">
>             <value xsi:type="DV_TEXT">
>                 <value>Jan</value>
>             </value>
>         </items>
>         <items xsi:type="ELEMENT" archetype_node_id="at0008">
>             <value xsi:type="DV_TEXT">
>                 <value>Peter</value>
>             </value>
>         </items>
>         <items xsi:type="ELEMENT" archetype_node_id="at0009">
>             <value xsi:type="DV_TEXT">
>                 <value>Balkenende</value>
>             </value>
>         </items>
>     </items>
> </cluster>
>
> I'm just messing around in Oxygen with some Xqueries and Xpaths.
>
> - thomas
>
>
>
> _______________________________________________
> openEHR-technical mailing list
> openEHR-technical at lists.openehr.org
> http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20131120/5ac202d6/attachment.html>

Reply via email to