- From: Jonathan Marsh <jmarsh@microsoft.com>
- Date: Sat, 6 Apr 2002 08:29:40 -0800
- To: "Roger L. Costello" <costello@mitre.org>, <www-xml-xinclude-comments@w3.org>
Response below.
> -----Original Message-----
> From: Roger L. Costello [mailto:costello@mitre.org]
> Sent: Saturday, March 30, 2002 11:04 AM
> To: www-xml-xinclude-comments@w3.org
> Cc: costello@mitre.org
> Subject: Resolving ID/IDREF conflicts
>
> I am trying real hard to understand the proposed method for resolving
> ID and IDREF conflicts [section 4.5.3]. Alas, after many, many
rereads
> I do not understand. I understand best when I see a concrete example,
> so please allow me to consider this example of a <Library> containing
a
> <BookCatalogue> section and a <GuestAuthors> section:
>
> <?xml version="1.0"?>
> <Library>
> <BookCatalogue>
> <Book isbn="_94303-12021-43892">
> <Title>My Life and Times</Title>
> <Author>Paul McCartney</Author>
> <Date>1998</Date>
> <Publisher>McMillin Publishing</Publisher>
> </Book>
> <Book isbn="_0-440-34319-4">
> <Title>Illusions The Adventures of a Reluctant
> Messiah</Title>
> <Author>Richard Bach</Author>
> <Date>1977</Date>
> <Publisher>Dell Publishing Co.</Publisher>
> </Book>
> <Book isbn="_0-06-064831-7">
> <Title>The First and Last Freedom</Title>
> <Author>J. Krishnamurti</Author>
> <Date>1954</Date>
> <Publisher>Harper & Row</Publisher>
> </Book>
> </BookCatalogue>
> <GuestAuthors>
> <GuestAuthor>
> <Name>Richard Bach</Name>
> <BookForSigning isbn_ref="_0-440-34319-4">
> <Title>Illusions The Adventures of a Reluctant
> Messiah</Title>
> </BookForSigning>
> </GuestAuthor>
> </GuestAuthors>
> </Library>
>
> The isbn_ref attribute on the <BookForSigning> element is of type
> IDREF. Its purpose is to point to the corresponding <Book> in the
> <BookCatalogue> section. Each <Book> has an ID attribute, isbn.
>
> First Question:
>
> Suppose that the library has another document that includes the
> <BookForSigning> element. Here's the include element:
>
> <LibraryYearlySummary>
> <xi:include
> href="Library.xml#xpointer(/Library/.../BookForSigning)"/>
> </LibraryYearlySummary>
>
> What would the resulting document look like? Is the isbnRef
> attribute's
> value left dangling in the result document?
Following the last paragraph in 4.5.3, we see that the [references]
property has no value. The [attribute type] property remains as IDREF.
So yes, the attribute's value is left dangling.
> Second Question:
>
> Suppose that instead of including the <BookForSigning> element I
> include
> one of the <Book> elements. Note that each <Book> element has an ID
> attribute, isbn. Suppose that the including document already has an
> element with the same ID value:
>
> <MyBookCatalogue>
> <foo id="_94303-12021-43892"/>
> <xi:include
> href="Library.xml#xpointer(/Library/.../Book[1])"/>
> </MyBookCatalogue>
>
> What will the resulting document look like?
The last paragraph in 4.5.3 says that the first element is chosen for
the [references] property. The resulting document would look like:
<MyBookCatalogue>
<foo id="_94303-12021-43892"/>
<Book isbn="_94303-12021-43892">
<Title>My Life and Times</Title>
<Author>Paul McCartney</Author>
<Date>1998</Date>
<Publisher>McMillin Publishing</Publisher>
</Book>
</MyBookCatalogue>
There will be two attributes of type ID. Any [references] to these ids
will point to the first one. In this case, there are no such
references.
I think the crux of your question is whether XInclude guarantees that
inclusion of valid documents results in a valid document. The answer of
course must be no, and IDs are no exception to this rule.
> /Roger
Received on Saturday, 6 April 2002 11:29:42 UTC