- From: Philip Wadler <wadler@research.bell-labs.com>
- Date: Tue, 30 May 2000 18:01:53 -0400
- To: petsa@us.ibm.com
- cc: www-xml-schema-comments@w3.org
Ashok,
Thanks for your message, sorry to be so long in replying (all free
time has gone to hammering out the algebra).
You suggest that xsi:type might be useful in data integration.
(In fact, the same point had occurred to me, so I am softening
a little with regard to xsi:type.) However, I'm confused by one
thing. Here's the last example you give:
<authors>
<author xsi:type='firstAuthor'>Peter Buneman</author>
<author xsi:type='secondAuthor'><first>Dan</first><last>Suciu</last><author>
<authors>
Does this work in Schema? I thought that Schema disallowed two
sibling elements to have the same name but different types.
Cheers, -- P
> Phil:
> I'm trying to understand your concern with xsi:type and I must confess
> I'm having rather a difficult time of it. So let me try and spell out the
> syntactic options. Lets use the example Jerome had started re. two
> kinds of author elements. Assume there is an abstract author type
> and from it we define a firstAuthor type and a secondAuthor type. We then
> define firstAuthor and secondAuthor elements corresponding to the
> types. You would like to see a syntax like:
>
> <authors>
> <author>Peter Buneman</author>
> <author><first>Dan</first><last>Suciu</last><author>
> <authors>
>
> As I discussed in an earlier e-mail this makes life very difficult for the
> validator. It hits an <author> tag and knows its contents will be one of
> the subtypes
> derived from the abstract author type but does not know which one. So
> it has to search thru the types derived from author to find which subtype
> the
> specific author info matches. This is expensive and we did not want the
> performance hit.
>
> As you suggested, we could also say:
>
> <authors>
> <author>
> <firstAuthor>Peter Buneman</firstAuthor>
> </author>
> <author>
> <secondAuthor>
> <first>Dan</first><last>Suciu</last><author>
> </secondAuthor>
> <authors>
>
> I have no great problem with this. I don't like the extra level of nesting
> but
> that's a matter of taste. You could also say:
>
> <authors>
> <firstAuthor>Peter Buneman</firstAuthor>
> <secondAuthor><first>Dan</first><last>Suciu</last><secondAuthor>
> <authors>
>
> Again. I have no problem with this. The same information is conveyed.
> The argument against this is that when we write a query to find author's
> we will need to be able to educate the query engine to realise that
> fisrtAuthor and secondAuthor can be substituted for author. This is a
> problem but I am not sure its a showstopper.
>
> Then you could say as the current draft does:
>
> <authors>
> <author xsi:type='firstAuthor'>Peter Buneman</author>
> <author xsi:type='secondAuthor'><first>Dan</first><last>Suciu</last><author>
> <authors>
>
> To my mind this conveys exactly the same information as the above two
> forms. Just the syntax is different. You have to look at the special
> attribute
> to tell the exact type but I don't see a fundamental difference.
> This form does have the advanatge that when you go to look for authors
> you just have to look for <author> tags.
>
> In fact, this was a factor in our picking the above form. We were thinking
> about query :-)
>
> All the best, Ashok
>
Received on Tuesday, 30 May 2000 18:02:05 UTC