XInclude 1.1 issue

Hi all,

XInclude 1.1 says:

  4.3 Attribute Copying when parse="xml"

  XInclude can introduce validity errors into a document. In
  particular, if a resource containing element information items is
  included more than once, and if any of those element information
  items have attributes of type ID, then the result infoset will
  contain multiple IDs with the same value.

  Some applications will want to attempt to resolve these sorts of
  errors and different applications will want to do so in different
  ways. In order to facilitate this kind of processing, XInclude 1.1
  introduces a new feature: attribute copying.

  Any namespace qualified attribute that appears on the xi:include
  element will be copied onto every top-level included item that is an
  element information item.

  If the element information item already has an attribute with the
  same qualified name, its value is changed to the value specified on
  the xi:include element.

Suppose file.xml consists of a single element: <doc/>, as spec'd, this
Xinclude:

  <xi:include href="file.xml" xml:base="subdir/"/>

1. Includes subdir/file.xml
2. Copies the xml:base attribute

The result is:

  <doc xml:base="subdir/"/>

which makes the base URI for the doc element

  subdir/subdir/file.xml

which is wrong.

I think, alas, that we need special rules form xml:base. Maybe the
simplest thing to do is to say that xml:base and xml:lang aren't
copied because there are separate controls for them.

Another option is to say that if xml:base is copied, the absolute
base URI is used as the attribute's value.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh
Lead Engineer
MarkLogic Corporation
Phone: +1 512 761 6676
www.marklogic.com

Received on Friday, 12 September 2014 06:52:04 UTC