xsl-list
[Top] [All Lists]

Re: [xsl] Intersection of two sets based on a subset of fields?

2020-05-21 09:23:55
if $set1 is a your sequence of books and $set2 is your sequence of Music
then you seem to want

$set1[concat(Author,'#',Country)=$m/concat(Author,'#',Country) ]

assuming # doesn't appear in Author or Country names.

David


On Thu, 21 May 2020 at 15:16, Roger L Costello costello(_at_)mitre(_dot_)org <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi Folks,

I have a set of Book instances. I call this Set #1. Here are two instances:

<Book>
    <Title>ABC</Title>
    <Author>John Doe</Author>
    <Country>USA</Country>
    <Binding>hardcover</Binding>
</Book>

<Book>
    <Title>XYZ</Title>
    <Author>Mary Sue</Author>
    <Country>CAN</Country>
    <Binding>hardcover</Binding>
</Book>

I have a set of Music instances. I call this Set #2. Here is one instance:

<Music>
    <Genre>Classical</Genre>
    <Author>John Doe</Author>
    <Country>USA</Country>
    <Cost>9.95</Cost>
</Music>

Query: Find the subset of Set #1 that intersects with Set #2 at the
<Author> and <Country> elements.

If Set #1 consists of the two instances shown above and Set #2 consists of
the one instance shown above, then the result of the query is the following:

<Book>
    <Title>ABC</Title>
    <Author>John Doe</Author>
    <Country>USA</Country>
    <Binding>hardcover</Binding>
</Book>

That Book instance has an <Author> and <Country> that intersects with the
<Author> and <Country> in the Music instance.

I view this as an intersection problem. However, it is an intersection at
specific fields (the Author and Country fields). Do you view it as an
intersection problem?

If it is viewed as an intersection problem, then is there a nice XPath
expression that does intersection-at-specific-fields?

If it is better viewed not as an intersection problem, then how is it
better viewed? is there a nice XPath expression for that view?

/Roger


--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>