docbook-apps

  • 1.  WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-14-2013 14:13
    Hello,

    since a while I get the following warning during the transformation with
    the docbook distribution:

    WARNING: cannot add @xml:base to node set root element. Relative paths may
    not work.

    I'm not sure what triggers this warning, a Google search resulted in hints
    about Docbook V5.0 but I'm still using Docbook 4.5.

    I'm currently using the docbook-xsl-1.77.1 distribution and I think (but
    I'm not sure) that I have this warning since I upgraded from 1.76. The
    output looks ok to me, but this warning does not create a warm fussy
    feeling. ;-)

    Any hint how to get rid of this warning?

    Best regards, Lars



  • 2.  Re: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-14-2013 16:02
    Hi Lars,
    You should get that message only when two conditions are met:

    1. You are processing a DocBook 5 document with the non-namespaced stylesheets.
    or
    You are single-step profiling by using profile-docbook.xsl (probably your case).

    and

    2. You are using xsltproc (which lacks an extension function to get the name of the current directory).

    With either condition in (1), the document is preprocessed into an internal nodeset (a nodeset held in memory) before being processed by the stylesheets. The internal nodeset loses all contact with the filesystem where the files originated, so the preprocessing template tries to add relative directory references into the internal nodeset by adding xml:base attributes to preserve the relative locations. It uses an extension function to get the original base directory of the document, but xsltproc does not have a function to fetch that information, while Saxon and Xalan do.

    So if you use modular doc and the modules are in various directories, that directory structure information gets lost in the internal subset. If your documents don't need such xml:base attributes, then it has no effect on your output.

    You can avoid it by either using Saxon, or by using two-step profiling.

    Bob Stayton
    Sagehill Enterprises
    bobs@sagehill.net


    From: Lars Vogel
    Sent: Tuesday, May 14, 2013 7:13 AM
    To: DocBook Apps
    Subject: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.


    Hello,


    since a while I get the following warning during the transformation with the docbook distribution:


    WARNING: cannot add @xml:base to node set root element. Relative paths may not work.



    I'm not sure what triggers this warning, a Google search resulted in hints about Docbook V5.0 but I'm still using Docbook 4.5.


    I'm currently using the docbook-xsl-1.77.1 distribution and I think (but I'm not sure) that I have this warning since I upgraded from 1.76. The output looks ok to me, but this warning does not create a warm fussy feeling. ;-)


    Any hint how to get rid of this warning?



    Best regards, Lars


  • 3.  Re: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-14-2013 17:26
    Hi Lars, Bob,

    Just one point: xsltproc does xml:base fixup on nodesets included through
    XInclude, so inside the document there are xml:base elements added properly.
    However, Bob's point still stands: if the top-level document is in non-current
    directory, it will break the external references.

    Speaking of Saxon, I am not sure if it does xml:base fixup properly on
    XIncluded modular documents from different directories. Originally, I was
    investigating a bug in libxml2 regarding xml:base fixup (pushed to master,
    will be in the next release), but I also tried Saxon. Here is a link to the
    thread on libxml2 mailing list (which has a small test case attached):

    https://mail.gnome.org/archives/xml/2013-April/msg00024.html

    In brief, Saxon seems to emit xml:base relative to top-level document rather
    than to the most recent point of inclusion. DocBook stylesheets (at least,
    1.78.0 that I used) assume the location relative to the base of the including
    nodeset. xsltproc conforms to the expectations of DocBook stylesheets, and as
    far as I understand, to the XInclude specification.

    Regards,
    Alexey.

    On Tuesday, May 14, 2013 09:01:37 am Bob Stayton wrote:
    > Hi Lars,
    > You should get that message only when two conditions are met:
    >
    > 1. You are processing a DocBook 5 document with the non-namespaced
    > stylesheets. or
    > You are single-step profiling by using profile-docbook.xsl (probably
    > your case).
    >
    > and
    >
    > 2. You are using xsltproc (which lacks an extension function to get the
    > name of the current directory).
    >
    > With either condition in (1), the document is preprocessed into an internal
    > nodeset (a nodeset held in memory) before being processed by the
    > stylesheets. The internal nodeset loses all contact with the filesystem
    > where the files originated, so the preprocessing template tries to add
    > relative directory references into the internal nodeset by adding xml:base
    > attributes to preserve the relative locations. It uses an extension
    > function to get the original base directory of the document, but xsltproc
    > does not have a function to fetch that information, while Saxon and Xalan
    > do.
    >
    > So if you use modular doc and the modules are in various directories, that
    > directory structure information gets lost in the internal subset. If
    > your documents don't need such xml:base attributes, then it has no effect
    > on your output.
    >
    > You can avoid it by either using Saxon, or by using two-step profiling.
    >
    > Bob Stayton
    > Sagehill Enterprises
    > bobs@sagehill.net
    >
    >
    > From: Lars Vogel
    > Sent: Tuesday, May 14, 2013 7:13 AM
    > To: DocBook Apps
    > Subject: [docbook-apps] WARNING: cannot add @xml:base to node set root
    > element. Relative paths may not work.
    >
    >
    > Hello,
    >
    >
    > since a while I get the following warning during the transformation with
    > the docbook distribution:
    >
    >
    > WARNING: cannot add @xml:base to node set root element. Relative paths may
    > not work.
    >
    >
    >
    > I'm not sure what triggers this warning, a Google search resulted in hints
    > about Docbook V5.0 but I'm still using Docbook 4.5.
    >
    >
    > I'm currently using the docbook-xsl-1.77.1 distribution and I think (but
    > I'm not sure) that I have this warning since I upgraded from 1.76. The
    > output looks ok to me, but this warning does not create a warm fussy
    > feeling. ;-)
    >
    >
    > Any hint how to get rid of this warning?
    >
    >
    >
    > Best regards, Lars



  • 4.  Re: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-14-2013 19:01
    I don't think Saxon itself supports XIncludes. Saxon uses the Xerces parser
    with the XInclude function turned on:

    http://www.saxonica.com/documentation/sourcedocs/controlling-parsing.html

    The XInclude spec says that xml:base attributes must be relative to the
    closest ancestor xml:base. I'm pretty sure that is how Saxon 6 behaves. If
    Saxon9 is generating xml:base attributes always relative to the top level,
    then that is not what the XInclude spec says, nor what the DocBook
    stylesheet expects.

    Bob Stayton
    Sagehill Enterprises
    bobs@sagehill.net

    --------------------------------------------------
    From: "Alexey Neyman" <stilor@att.net>
    Sent: Tuesday, May 14, 2013 10:25 AM
    To: <docbook-apps@lists.oasis-open.org>
    Cc: "Bob Stayton" <bobs@sagehill.net>; "Lars Vogel" <lars.vogel@gmail.com>
    Subject: Re: [docbook-apps] WARNING: cannot add @xml:base to node set root
    element. Relative paths may not work.

    > Hi Lars, Bob,
    >
    > Just one point: xsltproc does xml:base fixup on nodesets included through
    > XInclude, so inside the document there are xml:base elements added
    > properly.
    > However, Bob's point still stands: if the top-level document is in
    > non-current
    > directory, it will break the external references.
    >
    > Speaking of Saxon, I am not sure if it does xml:base fixup properly on
    > XIncluded modular documents from different directories. Originally, I was
    > investigating a bug in libxml2 regarding xml:base fixup (pushed to master,
    > will be in the next release), but I also tried Saxon. Here is a link to
    > the
    > thread on libxml2 mailing list (which has a small test case attached):
    >
    > https://mail.gnome.org/archives/xml/2013-April/msg00024.html
    >
    > In brief, Saxon seems to emit xml:base relative to top-level document
    > rather
    > than to the most recent point of inclusion. DocBook stylesheets (at least,
    > 1.78.0 that I used) assume the location relative to the base of the
    > including
    > nodeset. xsltproc conforms to the expectations of DocBook stylesheets, and
    > as
    > far as I understand, to the XInclude specification.
    >
    > Regards,
    > Alexey.
    >
    > On Tuesday, May 14, 2013 09:01:37 am Bob Stayton wrote:
    >> Hi Lars,
    >> You should get that message only when two conditions are met:
    >>
    >> 1. You are processing a DocBook 5 document with the non-namespaced
    >> stylesheets. or
    >> You are single-step profiling by using profile-docbook.xsl (probably
    >> your case).
    >>
    >> and
    >>
    >> 2. You are using xsltproc (which lacks an extension function to get the
    >> name of the current directory).
    >>
    >> With either condition in (1), the document is preprocessed into an
    >> internal
    >> nodeset (a nodeset held in memory) before being processed by the
    >> stylesheets. The internal nodeset loses all contact with the filesystem
    >> where the files originated, so the preprocessing template tries to add
    >> relative directory references into the internal nodeset by adding
    >> xml:base
    >> attributes to preserve the relative locations. It uses an extension
    >> function to get the original base directory of the document, but xsltproc
    >> does not have a function to fetch that information, while Saxon and Xalan
    >> do.
    >>
    >> So if you use modular doc and the modules are in various directories,
    >> that
    >> directory structure information gets lost in the internal subset. If
    >> your documents don't need such xml:base attributes, then it has no effect
    >> on your output.
    >>
    >> You can avoid it by either using Saxon, or by using two-step profiling.
    >>
    >> Bob Stayton
    >> Sagehill Enterprises
    >> bobs@sagehill.net
    >>
    >>
    >> From: Lars Vogel
    >> Sent: Tuesday, May 14, 2013 7:13 AM
    >> To: DocBook Apps
    >> Subject: [docbook-apps] WARNING: cannot add @xml:base to node set root
    >> element. Relative paths may not work.
    >>
    >>
    >> Hello,
    >>
    >>
    >> since a while I get the following warning during the transformation with
    >> the docbook distribution:
    >>
    >>
    >> WARNING: cannot add @xml:base to node set root element. Relative paths
    >> may
    >> not work.
    >>
    >>
    >>
    >> I'm not sure what triggers this warning, a Google search resulted in
    >> hints
    >> about Docbook V5.0 but I'm still using Docbook 4.5.
    >>
    >>
    >> I'm currently using the docbook-xsl-1.77.1 distribution and I think (but
    >> I'm not sure) that I have this warning since I upgraded from 1.76. The
    >> output looks ok to me, but this warning does not create a warm fussy
    >> feeling. ;-)
    >>
    >>
    >> Any hint how to get rid of this warning?
    >>
    >>
    >>
    >> Best regards, Lars
    >
    >



  • 5.  Re: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-14-2013 19:55
    Indeed, I've just checked and Xerxes seems to have the same issue.

    So, this is one caveat to keep in mind when processing modular DocBook
    documents with Saxon/Xerxes.

    Regards,
    Alexey.

    On Tuesday, May 14, 2013 12:00:50 pm Bob Stayton wrote:
    > I don't think Saxon itself supports XIncludes. Saxon uses the Xerces
    > parser with the XInclude function turned on:
    >
    > http://www.saxonica.com/documentation/sourcedocs/controlling-parsing.html
    >
    > The XInclude spec says that xml:base attributes must be relative to the
    > closest ancestor xml:base. I'm pretty sure that is how Saxon 6 behaves. If
    > Saxon9 is generating xml:base attributes always relative to the top level,
    > then that is not what the XInclude spec says, nor what the DocBook
    > stylesheet expects.
    >
    > Bob Stayton
    > Sagehill Enterprises
    > bobs@sagehill.net
    >
    > --------------------------------------------------
    > From: "Alexey Neyman" <stilor@att.net>
    > Sent: Tuesday, May 14, 2013 10:25 AM
    > To: <docbook-apps@lists.oasis-open.org>
    > Cc: "Bob Stayton" <bobs@sagehill.net>; "Lars Vogel" <lars.vogel@gmail.com>
    > Subject: Re: [docbook-apps] WARNING: cannot add @xml:base to node set root
    > element. Relative paths may not work.
    >
    > > Hi Lars, Bob,
    > >
    > > Just one point: xsltproc does xml:base fixup on nodesets included through
    > > XInclude, so inside the document there are xml:base elements added
    > > properly.
    > > However, Bob's point still stands: if the top-level document is in
    > > non-current
    > > directory, it will break the external references.
    > >
    > > Speaking of Saxon, I am not sure if it does xml:base fixup properly on
    > > XIncluded modular documents from different directories. Originally, I was
    > > investigating a bug in libxml2 regarding xml:base fixup (pushed to
    > > master, will be in the next release), but I also tried Saxon. Here is a
    > > link to the
    > >
    > > thread on libxml2 mailing list (which has a small test case attached):
    > > https://mail.gnome.org/archives/xml/2013-April/msg00024.html
    > >
    > > In brief, Saxon seems to emit xml:base relative to top-level document
    > > rather
    > > than to the most recent point of inclusion. DocBook stylesheets (at
    > > least, 1.78.0 that I used) assume the location relative to the base of
    > > the including
    > > nodeset. xsltproc conforms to the expectations of DocBook stylesheets,
    > > and as
    > > far as I understand, to the XInclude specification.
    > >
    > > Regards,
    > > Alexey.
    > >
    > > On Tuesday, May 14, 2013 09:01:37 am Bob Stayton wrote:
    > >> Hi Lars,
    > >> You should get that message only when two conditions are met:
    > >>
    > >> 1. You are processing a DocBook 5 document with the non-namespaced
    > >> stylesheets. or
    > >>
    > >> You are single-step profiling by using profile-docbook.xsl (probably
    > >>
    > >> your case).
    > >>
    > >> and
    > >>
    > >> 2. You are using xsltproc (which lacks an extension function to get the
    > >> name of the current directory).
    > >>
    > >> With either condition in (1), the document is preprocessed into an
    > >> internal
    > >> nodeset (a nodeset held in memory) before being processed by the
    > >> stylesheets. The internal nodeset loses all contact with the filesystem
    > >> where the files originated, so the preprocessing template tries to add
    > >> relative directory references into the internal nodeset by adding
    > >> xml:base
    > >> attributes to preserve the relative locations. It uses an extension
    > >> function to get the original base directory of the document, but
    > >> xsltproc does not have a function to fetch that information, while
    > >> Saxon and Xalan do.
    > >>
    > >> So if you use modular doc and the modules are in various directories,
    > >> that
    > >> directory structure information gets lost in the internal subset. If
    > >> your documents don't need such xml:base attributes, then it has no
    > >> effect on your output.
    > >>
    > >> You can avoid it by either using Saxon, or by using two-step profiling.
    > >>
    > >> Bob Stayton
    > >> Sagehill Enterprises
    > >> bobs@sagehill.net
    > >>
    > >>
    > >> From: Lars Vogel
    > >> Sent: Tuesday, May 14, 2013 7:13 AM
    > >> To: DocBook Apps
    > >> Subject: [docbook-apps] WARNING: cannot add @xml:base to node set root
    > >> element. Relative paths may not work.
    > >>
    > >>
    > >> Hello,
    > >>
    > >>
    > >> since a while I get the following warning during the transformation with
    > >> the docbook distribution:
    > >>
    > >>
    > >> WARNING: cannot add @xml:base to node set root element. Relative paths
    > >> may
    > >> not work.
    > >>
    > >>
    > >>
    > >> I'm not sure what triggers this warning, a Google search resulted in
    > >> hints
    > >> about Docbook V5.0 but I'm still using Docbook 4.5.
    > >>
    > >>
    > >> I'm currently using the docbook-xsl-1.77.1 distribution and I think (but
    > >> I'm not sure) that I have this warning since I upgraded from 1.76. The
    > >> output looks ok to me, but this warning does not create a warm fussy
    > >> feeling. ;-)
    > >>
    > >>
    > >> Any hint how to get rid of this warning?
    > >>
    > >>
    > >>
    > >> Best regards, Lars
    >
    > ---------------------------------------------------------------------
    > To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
    > For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org



  • 6.  Re: [docbook-apps] WARNING: cannot add @xml:base to node set root element. Relative paths may not work.

    Posted 05-15-2013 09:47
    Thanks everyone for the reply. I'm not using Docbook 5 nor do I use
    profile-docbook.xsl.
    I'm also using saxon6.5.5 and the Docbook I'm processing is one big file
    which I preprocessed with an XInclude Ant tasks.

    I will try to investigate further and if I find out more, I post this to
    the this group.

    Thanks again everyone, Lars




    2013/5/14 Alexey Neyman <stilor@att.net>

    > Indeed, I've just checked and Xerxes seems to have the same issue.
    >
    > So, this is one caveat to keep in mind when processing modular DocBook
    > documents with Saxon/Xerxes.
    >
    > Regards,
    > Alexey.
    >
    > On Tuesday, May 14, 2013 12:00:50 pm Bob Stayton wrote:
    > > I don't think Saxon itself supports XIncludes. Saxon uses the Xerces
    > > parser with the XInclude function turned on:
    > >
    > >
    > http://www.saxonica.com/documentation/sourcedocs/controlling-parsing.html
    > >
    > > The XInclude spec says that xml:base attributes must be relative to the
    > > closest ancestor xml:base. I'm pretty sure that is how Saxon 6 behaves.
    > If
    > > Saxon9 is generating xml:base attributes always relative to the top
    > level,
    > > then that is not what the XInclude spec says, nor what the DocBook
    > > stylesheet expects.
    > >
    > > Bob Stayton
    > > Sagehill Enterprises
    > > bobs@sagehill.net
    > >
    > > --------------------------------------------------
    > > From: "Alexey Neyman" <stilor@att.net>
    > > Sent: Tuesday, May 14, 2013 10:25 AM
    > > To: <docbook-apps@lists.oasis-open.org>
    > > Cc: "Bob Stayton" <bobs@sagehill.net>; "Lars Vogel" <
    > lars.vogel@gmail.com>
    > > Subject: Re: [docbook-apps] WARNING: cannot add @xml:base to node set
    > root
    > > element. Relative paths may not work.
    > >
    > > > Hi Lars, Bob,
    > > >
    > > > Just one point: xsltproc does xml:base fixup on nodesets included
    > through
    > > > XInclude, so inside the document there are xml:base elements added
    > > > properly.
    > > > However, Bob's point still stands: if the top-level document is in
    > > > non-current
    > > > directory, it will break the external references.
    > > >
    > > > Speaking of Saxon, I am not sure if it does xml:base fixup properly on
    > > > XIncluded modular documents from different directories. Originally, I
    > was
    > > > investigating a bug in libxml2 regarding xml:base fixup (pushed to
    > > > master, will be in the next release), but I also tried Saxon. Here is a
    > > > link to the
    > > >
    > > > thread on libxml2 mailing list (which has a small test case attached):
    > > > https://mail.gnome.org/archives/xml/2013-April/msg00024.html
    > > >
    > > > In brief, Saxon seems to emit xml:base relative to top-level document
    > > > rather
    > > > than to the most recent point of inclusion. DocBook stylesheets (at
    > > > least, 1.78.0 that I used) assume the location relative to the base of
    > > > the including
    > > > nodeset. xsltproc conforms to the expectations of DocBook stylesheets,
    > > > and as
    > > > far as I understand, to the XInclude specification.
    > > >
    > > > Regards,
    > > > Alexey.
    > > >
    > > > On Tuesday, May 14, 2013 09:01:37 am Bob Stayton wrote:
    > > >> Hi Lars,
    > > >> You should get that message only when two conditions are met:
    > > >>
    > > >> 1. You are processing a DocBook 5 document with the non-namespaced
    > > >> stylesheets. or
    > > >>
    > > >> You are single-step profiling by using profile-docbook.xsl
    > (probably
    > > >>
    > > >> your case).
    > > >>
    > > >> and
    > > >>
    > > >> 2. You are using xsltproc (which lacks an extension function to get
    > the
    > > >> name of the current directory).
    > > >>
    > > >> With either condition in (1), the document is preprocessed into an
    > > >> internal
    > > >> nodeset (a nodeset held in memory) before being processed by the
    > > >> stylesheets. The internal nodeset loses all contact with the
    > filesystem
    > > >> where the files originated, so the preprocessing template tries to add
    > > >> relative directory references into the internal nodeset by adding
    > > >> xml:base
    > > >> attributes to preserve the relative locations. It uses an extension
    > > >> function to get the original base directory of the document, but
    > > >> xsltproc does not have a function to fetch that information, while
    > > >> Saxon and Xalan do.
    > > >>
    > > >> So if you use modular doc and the modules are in various directories,
    > > >> that
    > > >> directory structure information gets lost in the internal subset. If
    > > >> your documents don't need such xml:base attributes, then it has no
    > > >> effect on your output.
    > > >>
    > > >> You can avoid it by either using Saxon, or by using two-step
    > profiling.
    > > >>
    > > >> Bob Stayton
    > > >> Sagehill Enterprises
    > > >> bobs@sagehill.net
    > > >>
    > > >>
    > > >> From: Lars Vogel
    > > >> Sent: Tuesday, May 14, 2013 7:13 AM
    > > >> To: DocBook Apps
    > > >> Subject: [docbook-apps] WARNING: cannot add @xml:base to node set root
    > > >> element. Relative paths may not work.
    > > >>
    > > >>
    > > >> Hello,
    > > >>
    > > >>
    > > >> since a while I get the following warning during the transformation
    > with
    > > >> the docbook distribution:
    > > >>
    > > >>
    > > >> WARNING: cannot add @xml:base to node set root element. Relative
    > paths
    > > >> may
    > > >> not work.
    > > >>
    > > >>
    > > >>
    > > >> I'm not sure what triggers this warning, a Google search resulted in
    > > >> hints
    > > >> about Docbook V5.0 but I'm still using Docbook 4.5.
    > > >>
    > > >>
    > > >> I'm currently using the docbook-xsl-1.77.1 distribution and I think
    > (but
    > > >> I'm not sure) that I have this warning since I upgraded from 1.76. The
    > > >> output looks ok to me, but this warning does not create a warm fussy
    > > >> feeling. ;-)
    > > >>
    > > >>
    > > >> Any hint how to get rid of this warning?
    > > >>
    > > >>
    > > >>
    > > >> Best regards, Lars
    > >
    > > ---------------------------------------------------------------------
    > > To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
    > > For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
    >